many improvements to the table, mostly to make it more readable
and less chaotic. Also removed some dummy routines in mach.c
This commit is contained in:
parent
b37c8b0b24
commit
4fd066bb54
8 changed files with 4444 additions and 3100 deletions
|
@ -232,7 +232,29 @@ i_regsave()
|
||||||
regnr = 0;
|
regnr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
save()
|
full nlocals;
|
||||||
|
|
||||||
|
regreturn()
|
||||||
|
{
|
||||||
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
if (regnr > MOVEM_LIMIT) {
|
||||||
|
fputs("movem.l (sp)+,", codefile);
|
||||||
|
for (p = regsav; ;) {
|
||||||
|
fputs(p->rs_reg, codefile);
|
||||||
|
if (++p == ®sav[regnr]) break;
|
||||||
|
putc('/',codefile);
|
||||||
|
}
|
||||||
|
putc('\n',codefile);
|
||||||
|
} else {
|
||||||
|
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
||||||
|
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fputs("unlk a6\nrts\n", codefile);
|
||||||
|
}
|
||||||
|
|
||||||
|
f_regsave()
|
||||||
{
|
{
|
||||||
register struct regsav_t *p;
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
@ -264,32 +286,6 @@ save()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
restr()
|
|
||||||
{
|
|
||||||
register struct regsav_t *p;
|
|
||||||
|
|
||||||
if (regnr > MOVEM_LIMIT) {
|
|
||||||
fputs("movem.l (sp)+,", codefile);
|
|
||||||
for (p = regsav; ;) {
|
|
||||||
fputs(p->rs_reg, codefile);
|
|
||||||
if (++p == ®sav[regnr]) break;
|
|
||||||
putc('/',codefile);
|
|
||||||
}
|
|
||||||
putc('\n',codefile);
|
|
||||||
} else {
|
|
||||||
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
|
||||||
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fputs("unlk a6\nrts\n", codefile);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
f_regsave()
|
|
||||||
{
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
|
|
||||||
regsave(s,off,size)
|
regsave(s,off,size)
|
||||||
char *s;
|
char *s;
|
||||||
long off;
|
long off;
|
||||||
|
@ -301,18 +297,13 @@ regsave(s,off,size)
|
||||||
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
||||||
}
|
}
|
||||||
|
|
||||||
regreturn()
|
prolog(n) full n; {
|
||||||
{
|
|
||||||
restr();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
prolog(nlocals) full nlocals; {
|
|
||||||
|
|
||||||
|
nlocals = n;
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
fprintf(codefile,"link\ta6,#-%ld\n",n);
|
||||||
#else
|
#else
|
||||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",n+40,n);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -232,7 +232,29 @@ i_regsave()
|
||||||
regnr = 0;
|
regnr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
save()
|
full nlocals;
|
||||||
|
|
||||||
|
regreturn()
|
||||||
|
{
|
||||||
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
if (regnr > MOVEM_LIMIT) {
|
||||||
|
fputs("movem.l (sp)+,", codefile);
|
||||||
|
for (p = regsav; ;) {
|
||||||
|
fputs(p->rs_reg, codefile);
|
||||||
|
if (++p == ®sav[regnr]) break;
|
||||||
|
putc('/',codefile);
|
||||||
|
}
|
||||||
|
putc('\n',codefile);
|
||||||
|
} else {
|
||||||
|
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
||||||
|
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fputs("unlk a6\nrts\n", codefile);
|
||||||
|
}
|
||||||
|
|
||||||
|
f_regsave()
|
||||||
{
|
{
|
||||||
register struct regsav_t *p;
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
@ -264,32 +286,6 @@ save()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
restr()
|
|
||||||
{
|
|
||||||
register struct regsav_t *p;
|
|
||||||
|
|
||||||
if (regnr > MOVEM_LIMIT) {
|
|
||||||
fputs("movem.l (sp)+,", codefile);
|
|
||||||
for (p = regsav; ;) {
|
|
||||||
fputs(p->rs_reg, codefile);
|
|
||||||
if (++p == ®sav[regnr]) break;
|
|
||||||
putc('/',codefile);
|
|
||||||
}
|
|
||||||
putc('\n',codefile);
|
|
||||||
} else {
|
|
||||||
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
|
||||||
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fputs("unlk a6\nrts\n", codefile);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
f_regsave()
|
|
||||||
{
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
|
|
||||||
regsave(s,off,size)
|
regsave(s,off,size)
|
||||||
char *s;
|
char *s;
|
||||||
long off;
|
long off;
|
||||||
|
@ -301,18 +297,13 @@ regsave(s,off,size)
|
||||||
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
||||||
}
|
}
|
||||||
|
|
||||||
regreturn()
|
prolog(n) full n; {
|
||||||
{
|
|
||||||
restr();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
prolog(nlocals) full nlocals; {
|
|
||||||
|
|
||||||
|
nlocals = n;
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
fprintf(codefile,"link\ta6,#-%ld\n",n);
|
||||||
#else
|
#else
|
||||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",n+40,n);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1823
mach/m68k2/ncg/table
1823
mach/m68k2/ncg/table
File diff suppressed because it is too large
Load diff
|
@ -232,7 +232,29 @@ i_regsave()
|
||||||
regnr = 0;
|
regnr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
save()
|
full nlocals;
|
||||||
|
|
||||||
|
regreturn()
|
||||||
|
{
|
||||||
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
if (regnr > MOVEM_LIMIT) {
|
||||||
|
fputs("movem.l (sp)+,", codefile);
|
||||||
|
for (p = regsav; ;) {
|
||||||
|
fputs(p->rs_reg, codefile);
|
||||||
|
if (++p == ®sav[regnr]) break;
|
||||||
|
putc('/',codefile);
|
||||||
|
}
|
||||||
|
putc('\n',codefile);
|
||||||
|
} else {
|
||||||
|
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
||||||
|
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fputs("unlk a6\nrts\n", codefile);
|
||||||
|
}
|
||||||
|
|
||||||
|
f_regsave()
|
||||||
{
|
{
|
||||||
register struct regsav_t *p;
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
@ -264,32 +286,6 @@ save()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
restr()
|
|
||||||
{
|
|
||||||
register struct regsav_t *p;
|
|
||||||
|
|
||||||
if (regnr > MOVEM_LIMIT) {
|
|
||||||
fputs("movem.l (sp)+,", codefile);
|
|
||||||
for (p = regsav; ;) {
|
|
||||||
fputs(p->rs_reg, codefile);
|
|
||||||
if (++p == ®sav[regnr]) break;
|
|
||||||
putc('/',codefile);
|
|
||||||
}
|
|
||||||
putc('\n',codefile);
|
|
||||||
} else {
|
|
||||||
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
|
||||||
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fputs("unlk a6\nrts\n", codefile);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
f_regsave()
|
|
||||||
{
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
|
|
||||||
regsave(s,off,size)
|
regsave(s,off,size)
|
||||||
char *s;
|
char *s;
|
||||||
long off;
|
long off;
|
||||||
|
@ -301,18 +297,13 @@ regsave(s,off,size)
|
||||||
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
||||||
}
|
}
|
||||||
|
|
||||||
regreturn()
|
prolog(n) full n; {
|
||||||
{
|
|
||||||
restr();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
prolog(nlocals) full nlocals; {
|
|
||||||
|
|
||||||
|
nlocals = n;
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
fprintf(codefile,"link\ta6,#-%ld\n",n);
|
||||||
#else
|
#else
|
||||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",n+40,n);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1823
mach/m68k4/ncg/table
1823
mach/m68k4/ncg/table
File diff suppressed because it is too large
Load diff
|
@ -232,7 +232,29 @@ i_regsave()
|
||||||
regnr = 0;
|
regnr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
save()
|
full nlocals;
|
||||||
|
|
||||||
|
regreturn()
|
||||||
|
{
|
||||||
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
if (regnr > MOVEM_LIMIT) {
|
||||||
|
fputs("movem.l (sp)+,", codefile);
|
||||||
|
for (p = regsav; ;) {
|
||||||
|
fputs(p->rs_reg, codefile);
|
||||||
|
if (++p == ®sav[regnr]) break;
|
||||||
|
putc('/',codefile);
|
||||||
|
}
|
||||||
|
putc('\n',codefile);
|
||||||
|
} else {
|
||||||
|
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
||||||
|
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fputs("unlk a6\nrts\n", codefile);
|
||||||
|
}
|
||||||
|
|
||||||
|
f_regsave()
|
||||||
{
|
{
|
||||||
register struct regsav_t *p;
|
register struct regsav_t *p;
|
||||||
|
|
||||||
|
@ -264,32 +286,6 @@ save()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
restr()
|
|
||||||
{
|
|
||||||
register struct regsav_t *p;
|
|
||||||
|
|
||||||
if (regnr > MOVEM_LIMIT) {
|
|
||||||
fputs("movem.l (sp)+,", codefile);
|
|
||||||
for (p = regsav; ;) {
|
|
||||||
fputs(p->rs_reg, codefile);
|
|
||||||
if (++p == ®sav[regnr]) break;
|
|
||||||
putc('/',codefile);
|
|
||||||
}
|
|
||||||
putc('\n',codefile);
|
|
||||||
} else {
|
|
||||||
for (p = ®sav[regnr-1]; p >= regsav; p--) {
|
|
||||||
fprintf(codefile,"move.l (sp)+,%s\n",p->rs_reg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fputs("unlk a6\nrts\n", codefile);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
f_regsave()
|
|
||||||
{
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
|
|
||||||
regsave(s,off,size)
|
regsave(s,off,size)
|
||||||
char *s;
|
char *s;
|
||||||
long off;
|
long off;
|
||||||
|
@ -301,18 +297,13 @@ regsave(s,off,size)
|
||||||
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
fprintf(codefile, "!Local %ld into %s\n",off,s);
|
||||||
}
|
}
|
||||||
|
|
||||||
regreturn()
|
prolog(n) full n; {
|
||||||
{
|
|
||||||
restr();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
prolog(nlocals) full nlocals; {
|
|
||||||
|
|
||||||
|
nlocals = n;
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
fprintf(codefile,"link\ta6,#-%ld\n",nlocals);
|
fprintf(codefile,"link\ta6,#-%ld\n",n);
|
||||||
#else
|
#else
|
||||||
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",nlocals+40,nlocals);
|
fprintf(codefile,"tst.b -%ld(sp)\nlink\ta6,#-%ld\n",n+40,n);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1823
mach/moon3/ncg/table
1823
mach/moon3/ncg/table
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue