summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlain Frisch <alain@frisch.fr>2013-11-19 18:01:05 +0000
committerAlain Frisch <alain@frisch.fr>2013-11-19 18:01:05 +0000
commit7335d5f68f8cc1f85c5e2134f41a46de6546a376 (patch)
tree194adb3b70edcde0ce82be708a1985e13a4d7b22
parent9b974c162f422fb0ad9e8ab3a0b54580c93862db (diff)
downloadocaml-7335d5f68f8cc1f85c5e2134f41a46de6546a376.tar.gz
caml_backtrace_pos is a 32-bit integer under amd64.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14307 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--asmrun/amd64.S9
1 files changed, 8 insertions, 1 deletions
diff --git a/asmrun/amd64.S b/asmrun/amd64.S
index 75763d3380..1b54c4ff39 100644
--- a/asmrun/amd64.S
+++ b/asmrun/amd64.S
@@ -99,6 +99,10 @@
movq GREL(dstlabel)(%rip), %r11 ; \
movq srcreg, (%r11)
+#define STORE_VAR32(srcreg,dstlabel) \
+ movq GREL(dstlabel)(%rip), %r11 ; \
+ movl srcreg, (%r11)
+
/* Load global [srclabel] in register [dstreg]. Clobbers %r11. */
#define LOAD_VAR(srclabel,dstreg) \
movq GREL(srclabel)(%rip), %r11 ; \
@@ -144,6 +148,9 @@
#define STORE_VAR(srcreg,dstlabel) \
movq srcreg, G(dstlabel)(%rip)
+#define STORE_VAR32(srcreg,dstlabel) \
+ movl srcreg, G(dstlabel)(%rip)
+
#define LOAD_VAR(srclabel,dstreg) \
movq G(srclabel)(%rip), dstreg
@@ -532,7 +539,7 @@ CFI_STARTPROC
popq %r14
ret
LBL(110):
- STORE_VAR($0, caml_backtrace_pos)
+ STORE_VAR32($0, caml_backtrace_pos)
LBL(111):
movq %rax, %r12 /* Save exception bucket */
movq %rax, C_ARG_1 /* arg 1: exception bucket */