summaryrefslogtreecommitdiff
path: root/testasmcomp
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2000-07-18 12:05:07 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2000-07-18 12:05:07 +0000
commit9ea62fea55fb35e625f7b0bc88d4dc84ad3b7c9d (patch)
tree21050ed7bd76396dcda2a436afd60e0b4c569ed3 /testasmcomp
parentca1424bb97ff4daaa257319f3a5f0ffa52dc5261 (diff)
downloadocaml-9ea62fea55fb35e625f7b0bc88d4dc84ad3b7c9d.tar.gz
Ajout de stops explicites (le mode -xauto est trop bugge)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3238 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'testasmcomp')
-rw-r--r--testasmcomp/ia64.S127
1 files changed, 58 insertions, 69 deletions
diff --git a/testasmcomp/ia64.S b/testasmcomp/ia64.S
index 4308f79267..d003579a81 100644
--- a/testasmcomp/ia64.S
+++ b/testasmcomp/ia64.S
@@ -12,23 +12,12 @@
/* $Id$ */
-#define BROKEN_POSTINCREMENT
-
-#ifdef BROKEN_POSTINCREMENT
-#define ST8OFF(a,b,d) st8 [a] = b; add a = d, a
-#define LD8OFF(a,b,d) ld8 a = [b]; add b = d, b
-#define STFDOFF(a,b,d) stfd [a] = b; add a = d, a
-#define LDFDOFF(a,b,d) ldfd a = [b]; add b = d, b
-#define STFSPILLOFF(a,b,d) stf.spill [a] = b; add a = d, a
-#define LDFFILLOFF(a,b,d) ldf.fill a = [b]; add b = d, b
-#else
#define ST8OFF(a,b,d) st8 [a] = b, d
#define LD8OFF(a,b,d) ld8 a = [b], d
#define STFDOFF(a,b,d) stfd [a] = b, d
#define LDFDOFF(a,b,d) ldfd a = [b], d
#define STFSPILLOFF(a,b,d) stf.spill [a] = b, d
#define LDFFILLOFF(a,b,d) ldf.fill a = [b], d
-#endif
.text
.align 16
@@ -42,45 +31,45 @@ call_gen_code:
/* Save PFS, return address and GP on stack */
add sp = -368, sp
- add r2 = 16, sp
- ST8OFF(r2,r3,8)
- mov r3 = b0
- ST8OFF(r2,r3,8)
- ST8OFF(r2,gp,8)
+ add r2 = 16, sp ;;
+ ST8OFF(r2,r3,8) ;;
+ mov r3 = b0 ;;
+ ST8OFF(r2,r3,8) ;;
+ ST8OFF(r2,gp,8) ;;
/* Save predicates on stack */
- mov r3 = pr
+ mov r3 = pr ;;
st8 [r2] = r3
/* Save callee-save floating-point registers on stack */
add r2 = 48, sp
- add r3 = 64, sp
- STFSPILLOFF(r2,f2,16)
- STFSPILLOFF(r3,f3,16)
- STFSPILLOFF(r2,f4,16)
- STFSPILLOFF(r3,f5,16)
- STFSPILLOFF(r2,f16,16)
- STFSPILLOFF(r3,f17,16)
- STFSPILLOFF(r2,f18,16)
- STFSPILLOFF(r3,f19,16)
- STFSPILLOFF(r2,f20,16)
- STFSPILLOFF(r3,f21,16)
- STFSPILLOFF(r2,f22,16)
- STFSPILLOFF(r3,f23,16)
- STFSPILLOFF(r2,f24,16)
- STFSPILLOFF(r3,f25,16)
- STFSPILLOFF(r2,f26,16)
- STFSPILLOFF(r3,f27,16)
- STFSPILLOFF(r2,f28,16)
- STFSPILLOFF(r3,f29,16)
- STFSPILLOFF(r2,f30,16)
- STFSPILLOFF(r3,f31,16)
+ add r3 = 64, sp ;;
+ STFSPILLOFF(r2,f2,16) ;;
+ STFSPILLOFF(r3,f3,16) ;;
+ STFSPILLOFF(r2,f4,16) ;;
+ STFSPILLOFF(r3,f5,16) ;;
+ STFSPILLOFF(r2,f16,16) ;;
+ STFSPILLOFF(r3,f17,16) ;;
+ STFSPILLOFF(r2,f18,16) ;;
+ STFSPILLOFF(r3,f19,16) ;;
+ STFSPILLOFF(r2,f20,16) ;;
+ STFSPILLOFF(r3,f21,16) ;;
+ STFSPILLOFF(r2,f22,16) ;;
+ STFSPILLOFF(r3,f23,16) ;;
+ STFSPILLOFF(r2,f24,16) ;;
+ STFSPILLOFF(r3,f25,16) ;;
+ STFSPILLOFF(r2,f26,16) ;;
+ STFSPILLOFF(r3,f27,16) ;;
+ STFSPILLOFF(r2,f28,16) ;;
+ STFSPILLOFF(r3,f29,16) ;;
+ STFSPILLOFF(r2,f30,16) ;;
+ STFSPILLOFF(r3,f31,16) ;;
/* Recover entry point and gp from the function pointer in in0 */
- LD8OFF(r2,r32,8)
- ld8 r3 = [r32]
+ LD8OFF(r2,r32,8) ;;
+ ld8 r3 = [r32] ;;
mov b6 = r2
- mov gp = r3
+ mov gp = r3 ;;
/* Shift arguments r33 ... r35 to r32 ... r34 */
mov r32 = r33
@@ -88,42 +77,42 @@ call_gen_code:
mov r34 = r35
/* Do the call */
- br.call.sptk b0 = b6
+ br.call.sptk b0 = b6 ;;
/* Restore the saved floating-point registers */
add r2 = 48, sp
- add r3 = 64, sp
- LDFFILLOFF(f2,r2,16)
- LDFFILLOFF(f3,r3,16)
- LDFFILLOFF(f4,r2,16)
- LDFFILLOFF(f5,r3,16)
- LDFFILLOFF(f16,r2,16)
- LDFFILLOFF(f17,r3,16)
- LDFFILLOFF(f18,r2,16)
- LDFFILLOFF(f19,r3,16)
- LDFFILLOFF(f20,r2,16)
- LDFFILLOFF(f21,r3,16)
- LDFFILLOFF(f22,r2,16)
- LDFFILLOFF(f23,r3,16)
- LDFFILLOFF(f24,r2,16)
- LDFFILLOFF(f25,r3,16)
- LDFFILLOFF(f26,r2,16)
- LDFFILLOFF(f27,r3,16)
- LDFFILLOFF(f28,r2,16)
- LDFFILLOFF(f29,r3,16)
- LDFFILLOFF(f30,r2,16)
- LDFFILLOFF(f31,r3,16)
+ add r3 = 64, sp ;;
+ LDFFILLOFF(f2,r2,16) ;;
+ LDFFILLOFF(f3,r3,16) ;;
+ LDFFILLOFF(f4,r2,16) ;;
+ LDFFILLOFF(f5,r3,16) ;;
+ LDFFILLOFF(f16,r2,16) ;;
+ LDFFILLOFF(f17,r3,16) ;;
+ LDFFILLOFF(f18,r2,16) ;;
+ LDFFILLOFF(f19,r3,16) ;;
+ LDFFILLOFF(f20,r2,16) ;;
+ LDFFILLOFF(f21,r3,16) ;;
+ LDFFILLOFF(f22,r2,16) ;;
+ LDFFILLOFF(f23,r3,16) ;;
+ LDFFILLOFF(f24,r2,16) ;;
+ LDFFILLOFF(f25,r3,16) ;;
+ LDFFILLOFF(f26,r2,16) ;;
+ LDFFILLOFF(f27,r3,16) ;;
+ LDFFILLOFF(f28,r2,16) ;;
+ LDFFILLOFF(f29,r3,16) ;;
+ LDFFILLOFF(f30,r2,16) ;;
+ LDFFILLOFF(f31,r3,16) ;;
/* Restore gp, predicates and return */
- add r2 = 16, sp
- LD8OFF(r3,r2,8)
+ add r2 = 16, sp ;;
+ LD8OFF(r3,r2,8) ;;
mov ar.pfs = r3
- LD8OFF(r3,r2,8)
+ LD8OFF(r3,r2,8) ;;
mov b0 = r3
- LD8OFF(gp,r2,8)
- LD8OFF(r3,r2,8)
+ LD8OFF(gp,r2,8) ;;
+ LD8OFF(r3,r2,8) ;;
mov pr = r3, -1
- br.ret.sptk.many b0
+ br.ret.sptk.many b0 ;;
.endp call_gen_code#