MAJ code de sauvegarde des registres pour le GC.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@209 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02master
parent
441a8baaae
commit
749e4be66d
111
asmrun/alpha.asm
111
asmrun/alpha.asm
|
@ -25,32 +25,97 @@
|
||||||
.comm remembered_ptr 8
|
.comm remembered_ptr 8
|
||||||
.comm remembered_end 8
|
.comm remembered_end 8
|
||||||
|
|
||||||
#define SAVE(r) stq $/**/r, r * 8 ($24)
|
|
||||||
#define LOAD(r) ldq $/**/r, r * 8 ($24)
|
|
||||||
#define FSAVE(r) stt $f/**/r, r * 8 ($24)
|
|
||||||
#define FLOAD(r) ldt $f/**/r, r * 8 ($24)
|
|
||||||
|
|
||||||
#define SAVE_ALL_REGS \
|
#define SAVE_ALL_REGS \
|
||||||
lda $24, gc_entry_regs; \
|
lda $24, gc_entry_regs; \
|
||||||
SAVE(0); SAVE(1); SAVE(2); SAVE(3); SAVE(4); SAVE(5); SAVE(6); SAVE(7); \
|
stq $0, 0 * 8 ($24); \
|
||||||
SAVE(8); SAVE(9); SAVE(10); SAVE(11); SAVE(12); \
|
stq $1, 1 * 8 ($24); \
|
||||||
SAVE(16); SAVE(17); SAVE(18); SAVE(19); SAVE(20); SAVE(21); \
|
stq $2, 2 * 8 ($24); \
|
||||||
lda $24, gc_entry_float_regs; \
|
stq $3, 3 * 8 ($24); \
|
||||||
FSAVE(0); FSAVE(1); FSAVE(10); FSAVE(11); FSAVE(12); FSAVE(13); \
|
stq $4, 4 * 8 ($24); \
|
||||||
FSAVE(14); FSAVE(15); FSAVE(16); FSAVE(17); FSAVE(18); FSAVE(19); \
|
stq $5, 5 * 8 ($24); \
|
||||||
FSAVE(20); FSAVE(21); FSAVE(22); FSAVE(23); FSAVE(24); FSAVE(25); \
|
stq $6, 6 * 8 ($24); \
|
||||||
FSAVE(26); FSAVE(27); FSAVE(28)
|
stq $7, 7 * 8 ($24); \
|
||||||
|
stq $8, 8 * 8 ($24); \
|
||||||
|
stq $9, 9 * 8 ($24); \
|
||||||
|
stq $10, 10 * 8 ($24); \
|
||||||
|
stq $11, 11 * 8 ($24); \
|
||||||
|
stq $12, 12 * 8 ($24); \
|
||||||
|
stq $16, 16 * 8 ($24); \
|
||||||
|
stq $17, 17 * 8 ($24); \
|
||||||
|
stq $18, 18 * 8 ($24); \
|
||||||
|
stq $19, 19 * 8 ($24); \
|
||||||
|
stq $20, 20 * 8 ($24); \
|
||||||
|
stq $21, 21 * 8 ($24); \
|
||||||
|
stq $22, 22 * 8 ($24); \
|
||||||
|
lda $24, gc_entry_float_regs; \
|
||||||
|
stt $f0, 0 * 8 ($24); \
|
||||||
|
stt $f1, 1 * 8 ($24); \
|
||||||
|
stt $f10, 10 * 8 ($24); \
|
||||||
|
stt $f11, 11 * 8 ($24); \
|
||||||
|
stt $f12, 12 * 8 ($24); \
|
||||||
|
stt $f13, 13 * 8 ($24); \
|
||||||
|
stt $f14, 14 * 8 ($24); \
|
||||||
|
stt $f15, 15 * 8 ($24); \
|
||||||
|
stt $f16, 16 * 8 ($24); \
|
||||||
|
stt $f17, 17 * 8 ($24); \
|
||||||
|
stt $f18, 18 * 8 ($24); \
|
||||||
|
stt $f19, 19 * 8 ($24); \
|
||||||
|
stt $f20, 20 * 8 ($24); \
|
||||||
|
stt $f21, 21 * 8 ($24); \
|
||||||
|
stt $f22, 22 * 8 ($24); \
|
||||||
|
stt $f23, 23 * 8 ($24); \
|
||||||
|
stt $f24, 24 * 8 ($24); \
|
||||||
|
stt $f25, 25 * 8 ($24); \
|
||||||
|
stt $f26, 26 * 8 ($24); \
|
||||||
|
stt $f27, 27 * 8 ($24); \
|
||||||
|
stt $f28, 28 * 8 ($24); \
|
||||||
|
stt $f29, 29 * 8 ($24)
|
||||||
|
|
||||||
#define LOAD_ALL_REGS \
|
#define LOAD_ALL_REGS \
|
||||||
lda $24, gc_entry_regs; \
|
lda $24, gc_entry_regs; \
|
||||||
LOAD(0); LOAD(1); LOAD(2); LOAD(3); LOAD(4); LOAD(5); LOAD(6); LOAD(7); \
|
ldq $0, 0 * 8 ($24); \
|
||||||
LOAD(8); LOAD(9); LOAD(10); LOAD(11); LOAD(12); \
|
ldq $1, 1 * 8 ($24); \
|
||||||
LOAD(16); LOAD(17); LOAD(18); LOAD(19); LOAD(20); LOAD(21); \
|
ldq $2, 2 * 8 ($24); \
|
||||||
lda $24, gc_entry_float_regs; \
|
ldq $3, 3 * 8 ($24); \
|
||||||
FLOAD(0); FLOAD(1); FLOAD(10); FLOAD(11); FLOAD(12); FLOAD(13); \
|
ldq $4, 4 * 8 ($24); \
|
||||||
FLOAD(14); FLOAD(15); FLOAD(16); FLOAD(17); FLOAD(18); FLOAD(19); \
|
ldq $5, 5 * 8 ($24); \
|
||||||
FLOAD(20); FLOAD(21); FLOAD(22); FLOAD(23); FLOAD(24); FLOAD(25); \
|
ldq $6, 6 * 8 ($24); \
|
||||||
FLOAD(26); FLOAD(27); FLOAD(28)
|
ldq $7, 7 * 8 ($24); \
|
||||||
|
ldq $8, 8 * 8 ($24); \
|
||||||
|
ldq $9, 9 * 8 ($24); \
|
||||||
|
ldq $10, 10 * 8 ($24); \
|
||||||
|
ldq $11, 11 * 8 ($24); \
|
||||||
|
ldq $12, 12 * 8 ($24); \
|
||||||
|
ldq $16, 16 * 8 ($24); \
|
||||||
|
ldq $17, 17 * 8 ($24); \
|
||||||
|
ldq $18, 18 * 8 ($24); \
|
||||||
|
ldq $19, 19 * 8 ($24); \
|
||||||
|
ldq $20, 20 * 8 ($24); \
|
||||||
|
ldq $21, 21 * 8 ($24); \
|
||||||
|
ldq $22, 22 * 8 ($24); \
|
||||||
|
lda $24, gc_entry_float_regs; \
|
||||||
|
ldt $f0, 0 * 8 ($24); \
|
||||||
|
ldt $f1, 1 * 8 ($24); \
|
||||||
|
ldt $f10, 10 * 8 ($24); \
|
||||||
|
ldt $f11, 11 * 8 ($24); \
|
||||||
|
ldt $f12, 12 * 8 ($24); \
|
||||||
|
ldt $f13, 13 * 8 ($24); \
|
||||||
|
ldt $f14, 14 * 8 ($24); \
|
||||||
|
ldt $f15, 15 * 8 ($24); \
|
||||||
|
ldt $f16, 16 * 8 ($24); \
|
||||||
|
ldt $f17, 17 * 8 ($24); \
|
||||||
|
ldt $f18, 18 * 8 ($24); \
|
||||||
|
ldt $f19, 19 * 8 ($24); \
|
||||||
|
ldt $f20, 20 * 8 ($24); \
|
||||||
|
ldt $f21, 21 * 8 ($24); \
|
||||||
|
ldt $f22, 22 * 8 ($24); \
|
||||||
|
ldt $f23, 23 * 8 ($24); \
|
||||||
|
ldt $f24, 24 * 8 ($24); \
|
||||||
|
ldt $f25, 25 * 8 ($24); \
|
||||||
|
ldt $f26, 26 * 8 ($24); \
|
||||||
|
ldt $f27, 27 * 8 ($24); \
|
||||||
|
ldt $f28, 28 * 8 ($24); \
|
||||||
|
ldt $f29, 29 * 8 ($24)
|
||||||
|
|
||||||
/* Allocation */
|
/* Allocation */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue