On Thu, Jun 13, 2019 at 06:52:24PM +0000, Song Liu wrote: > > @@ -403,11 +403,11 @@ static void emit_mov_imm64(u8 **pprog, u32 dst_reg, > > * For emitting plain u32, where sign bit must not be > > * propagated LLVM tends to load imm64 over mov32 > > * directly, so save couple of bytes by just doing > > - * 'mov %eax, imm32' instead. > > + * 'mov imm32, %eax' instead. > > */ > > emit_mov_imm32(&prog, false, dst_reg, imm32_lo); > > } else { > > - /* movabsq %rax, imm64 */ > > + /* movabs imm64, %rax */ > > ^^^^^ Should this be moveabsq? Not for AT&T syntax: ~ $ cat test.S movabs $0x1111111111111111, %rax ~ $ as test.S ~ $ objdump -d a.out a.out: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <.text>: 0: 48 b8 11 11 11 11 11 movabs $0x1111111111111111,%rax 7: 11 11 11 -- Josh