Re: [PATCH 3/4] x86/asm/entry/64: use smaller insns

From: Ingo Molnar
Date: Thu Mar 26 2015 - 05:31:04 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Wed, Mar 25, 2015 at 10:18 AM, Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:
> > The $AUDIT_ARCH_X86_64 parameter to syscall_trace_enter_phase1/2
> > is a 32-bit constant, loading it with 32-bit MOV produces 5-byte insn
> > instead of 10-byte one.
>
> Side note: has anybody talked to the assembler people? This would
> seem to be very much something that the assembler could have noticed
> and done on its own. [...]

Maybe GCC already picks a 32-bit opcode in these small-constant cases,
so there was little incentive to optimize on the GAS side, other than
making it correct.

> [...] It's a bit sad that we need to overspecify these things..

Yeah, that's sad.

Yesterday when I have read Denys's patch I double checked that there's
no other similar (easily identifiable ...) movq opcode left in the
64-bit entry code, so we seem to have squashed most of them.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/