link instruction does not work for more than 32768 bytes locals on M68000
This commit is contained in:
parent
3868470366
commit
edf2f575a2
|
@ -125,7 +125,10 @@ f_regsave()
|
|||
#ifdef TBL68020
|
||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
||||
#else
|
||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
||||
if (nlocals > 32768) {
|
||||
fprintf(codefile, "move.l a6,-(sp)\nmove.l sp,a6\nsub #%ld,sp\ntst.b -40(sp)\n", nlocals);
|
||||
}
|
||||
else fprintf(codefile,"link\ta6,#-%ld\ntst.b -40(sp)\n",nlocals);
|
||||
#endif
|
||||
if (regnr > 1) {
|
||||
fputs("movem.l ", codefile);
|
||||
|
|
|
@ -125,7 +125,10 @@ f_regsave()
|
|||
#ifdef TBL68020
|
||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
||||
#else
|
||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
||||
if (nlocals > 32768) {
|
||||
fprintf(codefile, "move.l a6,-(sp)\nmove.l sp,a6\nsub #%ld,sp\ntst.b -40(sp)\n", nlocals);
|
||||
}
|
||||
else fprintf(codefile,"link\ta6,#-%ld\ntst.b -40(sp)\n",nlocals);
|
||||
#endif
|
||||
if (regnr > 1) {
|
||||
fputs("movem.l ", codefile);
|
||||
|
|
|
@ -125,7 +125,10 @@ f_regsave()
|
|||
#ifdef TBL68020
|
||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
||||
#else
|
||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
||||
if (nlocals > 32768) {
|
||||
fprintf(codefile, "move.l a6,-(sp)\nmove.l sp,a6\nsub #%ld,sp\ntst.b -40(sp)\n", nlocals);
|
||||
}
|
||||
else fprintf(codefile,"link\ta6,#-%ld\ntst.b -40(sp)\n",nlocals);
|
||||
#endif
|
||||
if (regnr > 1) {
|
||||
fputs("movem.l ", codefile);
|
||||
|
|
|
@ -125,7 +125,10 @@ f_regsave()
|
|||
#ifdef TBL68020
|
||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
||||
#else
|
||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
||||
if (nlocals > 32768) {
|
||||
fprintf(codefile, "move.l a6,-(sp)\nmove.l sp,a6\nsub #%ld,sp\ntst.b -40(sp)\n", nlocals);
|
||||
}
|
||||
else fprintf(codefile,"link\ta6,#-%ld\ntst.b -40(sp)\n",nlocals);
|
||||
#endif
|
||||
if (regnr > 1) {
|
||||
fputs("movem.l ", codefile);
|
||||
|
|
Loading…
Reference in a new issue