wingo pushed a commit to branch lightning
in repository guile.
commit 6726b2b8f5167043a1586518440c2d2effe17482
Author: pcpa <[email protected]>
Date: Sat Apr 5 17:14:04 2014 -0300
ARM: Do not emit a nop stack adjust instruction.
lib/jit_arm-cpu.c: Only adjust stack pointer in prolog if
need stack space, that is, do not emit a nop instruction
subtracting zero from the stack pointer.
---
ChangeLog | 6 ++++++
lib/jit_arm-cpu.c | 3 ++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index f8f6cfd..936106b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-04-05 Paulo Andrade <[email protected]>
+
+ lib/jit_arm-cpu.c: Only adjust stack pointer in prolog if
+ need stack space, that is, do not emit a nop instruction
+ subtracting zero from the stack pointer.
+
2014-04-04 Paulo Andrade <[email protected]>
* lib/jit_disasm.c: Correct a crash in the doc/printf example
diff --git a/lib/jit_arm-cpu.c b/lib/jit_arm-cpu.c
index c0419c3..08db893 100644
--- a/lib/jit_arm-cpu.c
+++ b/lib/jit_arm-cpu.c
@@ -3725,7 +3725,8 @@ _prolog(jit_state_t *_jit, jit_node_t *node)
PUSH(0x3ff|(1<<_FP_REGNO)|(1<<_LR_REGNO));
}
movr(_FP_REGNO, _SP_REGNO);
- subi(_SP_REGNO, _SP_REGNO, _jitc->function->stack);
+ if (_jitc->function->stack)
+ subi(_SP_REGNO, _SP_REGNO, _jitc->function->stack);
}
static void