diff options
author | Pekka Enberg <penberg@kernel.org> | 2012-01-13 17:28:17 +0200 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2012-01-13 17:28:17 +0200 |
commit | e6550c2d844797ffeb08e90bf9f4606dd654a5a6 (patch) | |
tree | 3003e26fc89bddfafd90a3f6c9edb1b065d69db8 | |
parent | 02b74cfc656c21563dccd564d66097dd7a939c85 (diff) | |
download | jato-e6550c2d844797ffeb08e90bf9f4606dd654a5a6.tar.gz |
x86-64: Fix stack frame size in generated prolog
Same as commit 02b74cf ("x86-32: Fix stack frame size in generated prolog") but
for 64-bit x86.
Signed-off-by: Pekka Enberg <penberg@kernel.org>
-rw-r--r-- | arch/x86/emit-code.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c index c56cbfea..34107add 100644 --- a/arch/x86/emit-code.c +++ b/arch/x86/emit-code.c @@ -1958,7 +1958,7 @@ static void __emit64_pop_xmm(struct buffer *buf, enum machine_reg reg) } void emit_prolog(struct buffer *buf, struct stack_frame *frame, - unsigned long nr_locals) + unsigned long frame_size) { __emit_push_reg(buf, MACH_REG_RBP); __emit_mov_reg_reg(buf, MACH_REG_RSP, MACH_REG_RBP); @@ -1969,10 +1969,8 @@ void emit_prolog(struct buffer *buf, struct stack_frame *frame, * emit(buf, 0xFC); */ - if (nr_locals) - __emit64_sub_imm_reg(buf, - nr_locals * sizeof(unsigned long), - MACH_REG_RSP); + if (frame_size) + __emit64_sub_imm_reg(buf, frame_size, MACH_REG_RSP); __emit_push_reg(buf, MACH_REG_RBX); __emit_push_reg(buf, MACH_REG_R12); |