lkml.org 
[lkml]   [2015]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/4] x86/asm/entry/64: use smaller insns
On Thu, Mar 26, 2015 at 11:07:42AM +0100, Denys Vlasenko wrote:
> In my experiment, GAS uses 10-byte insn only for constants which
> won't work with 7-byte encoding; or if I explicitly ask for "movabs":
>
> _start: .globl _start
> mov $0x12345678,%edi # 5 bytes
> mov $0x12345678,%rdi # 7 bytes
> movq $0x12345678,%rdi # 7 bytes
> mov $0x80000000,%rdi # 10 bytes

Right, and since they're signed immediates, the AUDIT_ARCH_X86_64 thing
is 0xc000003e and does not fit in an s32, thus the 64-bit immediate with
bf opcode:

mov $0x80000000-1,%rdi
mov $0x80000000,%rdi
mov $0xc000003e,%rdi
mov $0xc000003e,%edi

...

21: 48 c7 c7 ff ff ff 7f mov $0x7fffffff,%rdi
28: 48 bf 00 00 00 80 00 movabs $0x80000000,%rdi
2f: 00 00 00
32: 48 bf 3e 00 00 c0 00 movabs $0xc000003e,%rdi
39: 00 00 00
3c: bf 3e 00 00 c0 mov $0xc000003e,%edi

Makes sense to me.

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--


\
 
 \ /
  Last update: 2015-03-26 11:41    [W:3.171 / U:0.000 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site