Hi,

On Mon, 20 Feb 2017, grischka wrote:

The good news:  we got debug line output with asm to create
mixed output as below.

Yeah, noticed that.  Nice :)

p0:
   movslq %eax, %rcx
  0:    48                      rex.W
  1:    48 63 c8                movslq %eax,%rcx
   mov $0x12345678,%eax
  4:    b8 78 56 34 12          mov    $0x12345678,%eax
   mov $0x12345678,%rax
  9:    48 b8 78 56 34 12 48    movabs $0xffffb84812345678,%rax
 10:    b8 ff ff
   mov $0x123456789abcdef0,%rax
 13:    ff                      (bad)
 14:    ff 90 90 90 90 90       callq  *-0x6f6f6f70(%rax)

Could you look at this?

Whoops! Avoidance of mov im32->reg64 didn't work for rax and hardcoding REX in the opcode directly defeats an generated REX prefix from operands.
This (and some other similar opcodes) fixed in mob.  Thanks for noticing.
(Interestingly the linux kernel at least doesn't trip over this, always got lucky with either not using rax or the instructions in question).


Ciao,
Michael.

_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to