diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2000-07-18 12:05:07 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2000-07-18 12:05:07 +0000 |
commit | 9ea62fea55fb35e625f7b0bc88d4dc84ad3b7c9d (patch) | |
tree | 21050ed7bd76396dcda2a436afd60e0b4c569ed3 /testasmcomp | |
parent | ca1424bb97ff4daaa257319f3a5f0ffa52dc5261 (diff) | |
download | ocaml-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.S | 127 |
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# |