Do not use '#endif/#else xxx'; it is not allowed for ANSI C
This commit is contained in:
parent
fa0bee0b26
commit
53c4951b29
|
@ -2,4 +2,4 @@ distr:
|
||||||
echo '#ifndef lint' > Version.c
|
echo '#ifndef lint' > Version.c
|
||||||
echo 'char Version[] = "ACK Pascal compiler Version XXX";' | \
|
echo 'char Version[] = "ACK Pascal compiler Version XXX";' | \
|
||||||
sed "s/XXX/`RC -i`/" >> Version.c
|
sed "s/XXX/`RC -i`/" >> Version.c
|
||||||
echo '#endif lint' >> Version.c
|
echo '#endif' >> Version.c
|
||||||
|
|
|
@ -59,7 +59,7 @@ debug(va_alist)
|
||||||
}
|
}
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
#endif DEBUG
|
#endif /* DEBUG */
|
||||||
|
|
||||||
/*VARARGS*/
|
/*VARARGS*/
|
||||||
error(va_alist)
|
error(va_alist)
|
||||||
|
@ -220,7 +220,7 @@ _error(class, node, ap)
|
||||||
case VDEBUG:
|
case VDEBUG:
|
||||||
remark = "(debug)";
|
remark = "(debug)";
|
||||||
break;
|
break;
|
||||||
#endif DEBUG
|
#endif /* DEBUG */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the place */
|
/* the place */
|
||||||
|
@ -235,7 +235,7 @@ _error(class, node, ap)
|
||||||
case FATAL:
|
case FATAL:
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
case VDEBUG:
|
case VDEBUG:
|
||||||
#endif DEBUG
|
#endif /* DEBUG */
|
||||||
ln = LineNumber;
|
ln = LineNumber;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -268,7 +268,7 @@ _error(class, node, ap)
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
}
|
}
|
||||||
#endif DEBUG
|
#endif /* DEBUG */
|
||||||
|
|
||||||
if( FileName ) fprint(ERROUT, "\"%s\", line %u: ", FileName, ln);
|
if( FileName ) fprint(ERROUT, "\"%s\", line %u: ", FileName, ln);
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@ Compile(src, dst)
|
||||||
LexScan();
|
LexScan();
|
||||||
return 0; /* running the optimizer is not very useful */
|
return 0; /* running the optimizer is not very useful */
|
||||||
}
|
}
|
||||||
#endif DEBUG
|
#endif /* DEBUG */
|
||||||
C_init(word_size, pointer_size);
|
C_init(word_size, pointer_size);
|
||||||
if( !C_open(dst) )
|
if( !C_open(dst) )
|
||||||
fatal("couldn't open output file");
|
fatal("couldn't open output file");
|
||||||
|
@ -121,7 +121,7 @@ Compile(src, dst)
|
||||||
C_close();
|
C_close();
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if( options['I'] ) Info();
|
if( options['I'] ) Info();
|
||||||
#endif DEBUG
|
#endif /* DEBUG */
|
||||||
return !err_occurred;
|
return !err_occurred;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,7 @@ DoOption(text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif NOCROSS
|
#endif /* NOCROSS */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,7 +146,7 @@ extern struct type
|
||||||
#define long_size (SZ_LONG)
|
#define long_size (SZ_LONG)
|
||||||
#define pointer_size (SZ_POINTER)
|
#define pointer_size (SZ_POINTER)
|
||||||
#define real_size (SZ_REAL)
|
#define real_size (SZ_REAL)
|
||||||
#else NOCROSS
|
#else /* NOCROSS */
|
||||||
extern int
|
extern int
|
||||||
word_align,
|
word_align,
|
||||||
int_align,
|
int_align,
|
||||||
|
@ -161,7 +161,7 @@ extern arith
|
||||||
long_size,
|
long_size,
|
||||||
pointer_size,
|
pointer_size,
|
||||||
real_size; /* All from type.c */
|
real_size; /* All from type.c */
|
||||||
#endif NOCROSS
|
#endif /* NOCROSS */
|
||||||
|
|
||||||
extern arith
|
extern arith
|
||||||
align();
|
align();
|
||||||
|
|
|
@ -33,7 +33,7 @@ arith
|
||||||
long_size = SZ_LONG,
|
long_size = SZ_LONG,
|
||||||
pointer_size = SZ_POINTER,
|
pointer_size = SZ_POINTER,
|
||||||
real_size = SZ_REAL;
|
real_size = SZ_REAL;
|
||||||
#endif NOCROSS
|
#endif /* NOCROSS */
|
||||||
|
|
||||||
extern arith max_int;
|
extern arith max_int;
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ expr
|
||||||
#else
|
#else
|
||||||
$$.typ = $1.typ; /* Even if $1.typ is relocatable, it should be */
|
$$.typ = $1.typ; /* Even if $1.typ is relocatable, it should be */
|
||||||
/* absolute by the final pass. */
|
/* absolute by the final pass. */
|
||||||
#endif RELOCATION
|
#endif /* RELOCATION */
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
operation
|
operation
|
||||||
|
|
|
@ -156,7 +156,7 @@ regreturn()
|
||||||
}
|
}
|
||||||
fputs("leave\nret\n", codefile);
|
fputs("leave\nret\n", codefile);
|
||||||
}
|
}
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
|
|
||||||
mes(type) word type ; {
|
mes(type) word type ; {
|
||||||
int argt, a1, a2 ;
|
int argt, a1, a2 ;
|
||||||
|
|
|
@ -153,7 +153,7 @@ regreturn()
|
||||||
}
|
}
|
||||||
else fputs("jmp .cret\n", codefile);
|
else fputs("jmp .cret\n", codefile);
|
||||||
}
|
}
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
|
|
||||||
mes(type) word type ; {
|
mes(type) word type ; {
|
||||||
int argt ;
|
int argt ;
|
||||||
|
|
|
@ -51,10 +51,10 @@ extern valu_t bd_rel1,bd_rel2,od_rel1,od_rel2;
|
||||||
#ifdef ASLD
|
#ifdef ASLD
|
||||||
#define T_EMIT2(a,b,c,d) t_emit2(a,b,c,(valu_t)0)
|
#define T_EMIT2(a,b,c,d) t_emit2(a,b,c,(valu_t)0)
|
||||||
#define T_EMIT4(a,b,c,d) t_emit4(a,b,c,(valu_t)0)
|
#define T_EMIT4(a,b,c,d) t_emit4(a,b,c,(valu_t)0)
|
||||||
#else ALSD
|
#else /* ALSD */
|
||||||
#define T_EMIT2(a,b,c,d) t_emit2(a,b,c,(valu_t)d)
|
#define T_EMIT2(a,b,c,d) t_emit2(a,b,c,(valu_t)d)
|
||||||
#define T_EMIT4(a,b,c,d) t_emit4(a,b,c,(valu_t)d)
|
#define T_EMIT4(a,b,c,d) t_emit4(a,b,c,(valu_t)d)
|
||||||
#endif ASLD
|
#endif /* ASLD */
|
||||||
#else
|
#else
|
||||||
#define T_EMIT2(a,b,c,d) t_emit2(a)
|
#define T_EMIT2(a,b,c,d) t_emit2(a)
|
||||||
#define T_EMIT4(a,b,c,d) t_emit4(a)
|
#define T_EMIT4(a,b,c,d) t_emit4(a)
|
||||||
|
|
|
@ -200,7 +200,7 @@ regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8)
|
||||||
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
||||||
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
/* Part (iii) */
|
/* Part (iii) */
|
||||||
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
||||||
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
||||||
|
@ -288,7 +288,7 @@ DREG_pair = {D_REG4 reg1; D_REG4 reg2;} 8 cost(2,0) reg1 ":" reg2 .
|
||||||
#define t_regAregXcon regAregXcon
|
#define t_regAregXcon regAregXcon
|
||||||
#define t_regAcon regAcon
|
#define t_regAcon regAcon
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE!=2
|
#if WORD_SIZE!=2
|
||||||
#define DLOCAL LOCAL
|
#define DLOCAL LOCAL
|
||||||
|
@ -349,7 +349,7 @@ control1 = indirect1 + offsetted1 + index_off1 + absolute1 .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG .
|
any1 = data1 + D_REG .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
||||||
offsetted4 + OFF_off4 + OFF_indoff4 +
|
offsetted4 + OFF_off4 + OFF_indoff4 +
|
||||||
|
@ -396,7 +396,7 @@ control1 = memory1 - (post_inc1 + pre_dec1 + consts ) .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG. /* all four above together */
|
any1 = data1 + D_REG. /* all four above together */
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This is a common part */
|
/* This is a common part */
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
/* Not any4, since any is used in 'with' and not in 'kills' */
|
/* Not any4, since any is used in 'with' and not in 'kills' */
|
||||||
|
@ -424,7 +424,7 @@ allexceptcon = ALL - ( D_REG + A_REG + consts + dreg2 + dreg1 +
|
||||||
t_regAcon + t_regAregXcon ) .
|
t_regAcon + t_regAregXcon ) .
|
||||||
use_index = index_off4 + index_off2 + index_off1 .
|
use_index = index_off4 + index_off2 + index_off1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
||||||
memind4 = reg_memind4 +
|
memind4 = reg_memind4 +
|
||||||
|
@ -466,7 +466,7 @@ use_indaddr = regAregXcon +
|
||||||
|
|
||||||
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* A common part */
|
/* A common part */
|
||||||
posextern = absolute + all_indir .
|
posextern = absolute + all_indir .
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ test_set2 = datalt2 .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = datalt1 .
|
test_set1 = datalt1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
imm_cmp4 = any4 - immediate4 - A_REG .
|
imm_cmp4 = any4 - immediate4 - A_REG .
|
||||||
imm_cmp2 = any2 - consts .
|
imm_cmp2 = any2 - consts .
|
||||||
|
@ -527,15 +527,15 @@ test_set2 = data2 - consts .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = data1 - consts .
|
test_set1 = data1 - consts .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
test_set = test_set4 + test_set2 + test_set1 .
|
test_set = test_set4 + test_set2 + test_set1 .
|
||||||
|
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
t_address = address + t_regAregXcon + t_regAcon .
|
t_address = address + t_regAregXcon + t_regAcon .
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
#define t_address address
|
#define t_address address
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if TBL68881
|
#if TBL68881
|
||||||
freg = FD_REG + FS_REG .
|
freg = FD_REG + FS_REG .
|
||||||
|
@ -591,7 +591,7 @@ divs_l "divs.l" data4:ro, LOCAL:rw:cc cost(0,90).
|
||||||
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
||||||
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
||||||
|
@ -777,9 +777,9 @@ extb_l "extb.l" extend1_4+D_REG+LOCAL:rw:cc cost(2,4).
|
||||||
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pea address+control4 cost(2,4).
|
pea address+control4 cost(2,4).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
* Extra pseudo instruction; it just kills a D_REG;
|
* Extra pseudo instruction; it just kills a D_REG;
|
||||||
|
@ -888,7 +888,7 @@ from t_regAcon sfit(%bd, 16) to A_REG+areg
|
||||||
from t_regAcon to A_REG+areg
|
from t_regAcon to A_REG+areg
|
||||||
gen move_l %1.reg, %2
|
gen move_l %1.reg, %2
|
||||||
add_l {const4, %1.bd}, %2
|
add_l {const4, %1.bd}, %2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from address - ext_addr to A_REG+areg
|
from address - ext_addr to A_REG+areg
|
||||||
gen lea %1, %2
|
gen lea %1, %2
|
||||||
|
@ -977,7 +977,7 @@ from t_regAcon sfit(%bd, 16) to STACK
|
||||||
from t_regAcon to STACK
|
from t_regAcon to STACK
|
||||||
gen move_l %1.reg, {pre_dec4, sp}
|
gen move_l %1.reg, {pre_dec4, sp}
|
||||||
add_l {const4, %1.bd}, {indirect4, sp}
|
add_l {const4, %1.bd}, {indirect4, sp}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from A_REG to STACK
|
from A_REG to STACK
|
||||||
gen pea {indirect4, %1}
|
gen pea {indirect4, %1}
|
||||||
|
@ -1059,7 +1059,7 @@ from extend1 to STACK
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
from regX to STACK
|
from regX to STACK
|
||||||
gen pea %1
|
gen pea %1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This last stackingrule is never used: whenever regX is put on
|
/* This last stackingrule is never used: whenever regX is put on
|
||||||
* the fakestack, some em-instuctions are left that remove it
|
* the fakestack, some em-instuctions are left that remove it
|
||||||
* immediately. However cgg complained about not having a
|
* immediately. However cgg complained about not having a
|
||||||
|
@ -1138,7 +1138,7 @@ from t_regAcon
|
||||||
uses reusing %1, AA_REG=%1.reg
|
uses reusing %1, AA_REG=%1.reg
|
||||||
gen add_l {const4, %1.bd}, %a
|
gen add_l {const4, %1.bd}, %a
|
||||||
yields %a
|
yields %a
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
from regAregXcon %bd==0 && %sc==1
|
from regAregXcon %bd==0 && %sc==1
|
||||||
|
@ -1539,7 +1539,7 @@ pat lol mlu stl $1==$3 && $2==WORD_SIZE && inreg($1)==reg_any
|
||||||
with data_int
|
with data_int
|
||||||
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
||||||
gen mulu_i %1, {LOCAL, $1}
|
gen mulu_i %1, {LOCAL, $1}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
proc lolxxxstl example lol adi stl
|
proc lolxxxstl example lol adi stl
|
||||||
with conreg_int-bconst
|
with conreg_int-bconst
|
||||||
|
@ -2948,7 +2948,7 @@ with exact local_addr yields {LOCAL, %1.bd+$1}
|
||||||
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3037,7 +3037,7 @@ with exact ext_addr yields {absolute1, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3070,7 +3070,7 @@ with exact ext_addr yields {absolute2, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
|
@ -3102,7 +3102,7 @@ with exact ext_addr yields {absolute4, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==4
|
#if WORD_SIZE==4
|
||||||
|
@ -3342,7 +3342,7 @@ with regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store_int
|
with exact regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
|
@ -3390,7 +3390,7 @@ with exact ext_regX store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==1
|
pat sti $1==1
|
||||||
with A_REG any1
|
with A_REG any1
|
||||||
|
@ -3409,7 +3409,7 @@ with regAcon any1
|
||||||
with regAregXcon any1
|
with regAregXcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any1
|
with exact regAcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted1, %1.reg, %1.bd}
|
gen move %2, {offsetted1, %1.reg, %1.bd}
|
||||||
|
@ -3457,7 +3457,7 @@ with exact ext_regX any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==2
|
pat sti $1==2
|
||||||
with A_REG any2
|
with A_REG any2
|
||||||
|
@ -3476,7 +3476,7 @@ with regAcon any2
|
||||||
with regAregXcon any2
|
with regAregXcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any2
|
with exact regAcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted2, %1.reg, %1.bd}
|
gen move %2, {offsetted2, %1.reg, %1.bd}
|
||||||
|
@ -3529,7 +3529,7 @@ with exact ext_regX any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==4
|
pat sti $1==4
|
||||||
with A_REG store4-sconsts4
|
with A_REG store4-sconsts4
|
||||||
|
@ -3557,7 +3557,7 @@ with regAcon store4-sconsts4
|
||||||
with regAregXcon store4-sconsts4
|
with regAregXcon store4-sconsts4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store4
|
with exact regAcon store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted4, %1.reg, %1.bd}
|
gen move %2, {offsetted4, %1.reg, %1.bd}
|
||||||
|
@ -3607,7 +3607,7 @@ with exact ext_regX store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat sti $1==6
|
pat sti $1==6
|
||||||
|
@ -3834,7 +3834,7 @@ pat mli $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4 DD_REG4
|
with data4 DD_REG4
|
||||||
gen muls_l %1, %2 yields %2
|
gen muls_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mli"}
|
gen jsr {absolute4, ".mli"}
|
||||||
|
@ -3853,12 +3853,12 @@ pat dvi $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divs_l %1, %2 yields %2
|
gen divs_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmi $1==2
|
pat rmi $1==2
|
||||||
|
@ -3878,12 +3878,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat ngi $1==2
|
pat ngi $1==2
|
||||||
|
@ -3934,12 +3934,12 @@ pat mlu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen mulu_l %1, %2 yields %2
|
gen mulu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mlu"}
|
gen jsr {absolute4, ".mlu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat dvu $1==2
|
pat dvu $1==2
|
||||||
|
@ -3953,12 +3953,12 @@ pat dvu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divu_l %1, %2 yields %2
|
gen divu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmu $1==2
|
pat rmu $1==2
|
||||||
|
@ -3979,12 +3979,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat slu leaving sli $1
|
pat slu leaving sli $1
|
||||||
|
|
||||||
|
@ -4400,7 +4400,7 @@ with exact LOCAL ext_regX
|
||||||
with exact absolute4 ext_regX
|
with exact absolute4 ext_regX
|
||||||
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* I WOULD ALSO LIKE THIS:
|
/* I WOULD ALSO LIKE THIS:
|
||||||
* pat ads
|
* pat ads
|
||||||
|
@ -4442,7 +4442,7 @@ with DD_REG4
|
||||||
gen add_l %1, %1 yields %1
|
gen add_l %1, %1 yields %1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
|
|
||||||
/************************************************
|
/************************************************
|
||||||
|
@ -5093,7 +5093,7 @@ pat lae aar $2==4 && rom($1,3)==1
|
||||||
pat lae aar $2==4 && nicesize(rom($1,3))
|
pat lae aar $2==4 && nicesize(rom($1,3))
|
||||||
with D_REG yields {regX, rom($1,3), %1}
|
with D_REG yields {regX, rom($1,3), %1}
|
||||||
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pat lae aar $2==4 && rom($1,3)==2
|
pat lae aar $2==4 && rom($1,3)==2
|
||||||
with DD_REG
|
with DD_REG
|
||||||
gen asl_l {small_const, 1}, %1
|
gen asl_l {small_const, 1}, %1
|
||||||
|
@ -5111,7 +5111,7 @@ with DD_REG
|
||||||
gen asl_l {small_const, 3}, %1
|
gen asl_l {small_const, 3}, %1
|
||||||
yields %1
|
yields %1
|
||||||
leaving ads 4 adp (0 - rom($1,1))<<3
|
leaving ads 4 adp (0 - rom($1,1))<<3
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* ARR_OPT */
|
#endif /* ARR_OPT */
|
||||||
#endif /* WORD_SIZE!=2 */
|
#endif /* WORD_SIZE!=2 */
|
||||||
|
|
||||||
|
@ -5928,11 +5928,11 @@ with A_REG D_REG4
|
||||||
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
||||||
jsr {absolute4, ".trp"}
|
jsr {absolute4, ".trp"}
|
||||||
1: yields %2
|
1: yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".rck"}
|
gen jsr {absolute4, ".rck"}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* WORD_SIZE==4 || TBL68020 */
|
#endif /* WORD_SIZE==4 || TBL68020 */
|
||||||
|
|
||||||
pat rtt leaving ret 0
|
pat rtt leaving ret 0
|
||||||
|
@ -6579,10 +6579,10 @@ with memory1+DD_REG
|
||||||
#else
|
#else
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
extb_l {LOCAL,$4}
|
extb_l {LOCAL,$4}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
ext_w {LOCAL,$4}
|
ext_w {LOCAL,$4}
|
||||||
ext_l {LOCAL,$4}
|
ext_l {LOCAL,$4}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pat loc loc cii $1==2 && $2==4
|
pat loc loc cii $1==2 && $2==4
|
||||||
|
|
|
@ -430,7 +430,7 @@ ea707172(sz)
|
||||||
#else
|
#else
|
||||||
if (exp_2.typ != S_ABS)
|
if (exp_2.typ != S_ABS)
|
||||||
sm = 0;
|
sm = 0;
|
||||||
#endif ASLD
|
#endif /* ASLD */
|
||||||
sm = small(sm, 2);
|
sm = small(sm, 2);
|
||||||
if (sm)
|
if (sm)
|
||||||
mrg_2 = 070;
|
mrg_2 = 070;
|
||||||
|
|
|
@ -200,7 +200,7 @@ regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8)
|
||||||
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
||||||
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
/* Part (iii) */
|
/* Part (iii) */
|
||||||
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
||||||
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
||||||
|
@ -288,7 +288,7 @@ DREG_pair = {D_REG4 reg1; D_REG4 reg2;} 8 cost(2,0) reg1 ":" reg2 .
|
||||||
#define t_regAregXcon regAregXcon
|
#define t_regAregXcon regAregXcon
|
||||||
#define t_regAcon regAcon
|
#define t_regAcon regAcon
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE!=2
|
#if WORD_SIZE!=2
|
||||||
#define DLOCAL LOCAL
|
#define DLOCAL LOCAL
|
||||||
|
@ -349,7 +349,7 @@ control1 = indirect1 + offsetted1 + index_off1 + absolute1 .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG .
|
any1 = data1 + D_REG .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
||||||
offsetted4 + OFF_off4 + OFF_indoff4 +
|
offsetted4 + OFF_off4 + OFF_indoff4 +
|
||||||
|
@ -396,7 +396,7 @@ control1 = memory1 - (post_inc1 + pre_dec1 + consts ) .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG. /* all four above together */
|
any1 = data1 + D_REG. /* all four above together */
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This is a common part */
|
/* This is a common part */
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
/* Not any4, since any is used in 'with' and not in 'kills' */
|
/* Not any4, since any is used in 'with' and not in 'kills' */
|
||||||
|
@ -424,7 +424,7 @@ allexceptcon = ALL - ( D_REG + A_REG + consts + dreg2 + dreg1 +
|
||||||
t_regAcon + t_regAregXcon ) .
|
t_regAcon + t_regAregXcon ) .
|
||||||
use_index = index_off4 + index_off2 + index_off1 .
|
use_index = index_off4 + index_off2 + index_off1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
||||||
memind4 = reg_memind4 +
|
memind4 = reg_memind4 +
|
||||||
|
@ -466,7 +466,7 @@ use_indaddr = regAregXcon +
|
||||||
|
|
||||||
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* A common part */
|
/* A common part */
|
||||||
posextern = absolute + all_indir .
|
posextern = absolute + all_indir .
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ test_set2 = datalt2 .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = datalt1 .
|
test_set1 = datalt1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
imm_cmp4 = any4 - immediate4 - A_REG .
|
imm_cmp4 = any4 - immediate4 - A_REG .
|
||||||
imm_cmp2 = any2 - consts .
|
imm_cmp2 = any2 - consts .
|
||||||
|
@ -527,15 +527,15 @@ test_set2 = data2 - consts .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = data1 - consts .
|
test_set1 = data1 - consts .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
test_set = test_set4 + test_set2 + test_set1 .
|
test_set = test_set4 + test_set2 + test_set1 .
|
||||||
|
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
t_address = address + t_regAregXcon + t_regAcon .
|
t_address = address + t_regAregXcon + t_regAcon .
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
#define t_address address
|
#define t_address address
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if TBL68881
|
#if TBL68881
|
||||||
freg = FD_REG + FS_REG .
|
freg = FD_REG + FS_REG .
|
||||||
|
@ -591,7 +591,7 @@ divs_l "divs.l" data4:ro, LOCAL:rw:cc cost(0,90).
|
||||||
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
||||||
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
||||||
|
@ -777,9 +777,9 @@ extb_l "extb.l" extend1_4+D_REG+LOCAL:rw:cc cost(2,4).
|
||||||
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pea address+control4 cost(2,4).
|
pea address+control4 cost(2,4).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
* Extra pseudo instruction; it just kills a D_REG;
|
* Extra pseudo instruction; it just kills a D_REG;
|
||||||
|
@ -888,7 +888,7 @@ from t_regAcon sfit(%bd, 16) to A_REG+areg
|
||||||
from t_regAcon to A_REG+areg
|
from t_regAcon to A_REG+areg
|
||||||
gen move_l %1.reg, %2
|
gen move_l %1.reg, %2
|
||||||
add_l {const4, %1.bd}, %2
|
add_l {const4, %1.bd}, %2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from address - ext_addr to A_REG+areg
|
from address - ext_addr to A_REG+areg
|
||||||
gen lea %1, %2
|
gen lea %1, %2
|
||||||
|
@ -977,7 +977,7 @@ from t_regAcon sfit(%bd, 16) to STACK
|
||||||
from t_regAcon to STACK
|
from t_regAcon to STACK
|
||||||
gen move_l %1.reg, {pre_dec4, sp}
|
gen move_l %1.reg, {pre_dec4, sp}
|
||||||
add_l {const4, %1.bd}, {indirect4, sp}
|
add_l {const4, %1.bd}, {indirect4, sp}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from A_REG to STACK
|
from A_REG to STACK
|
||||||
gen pea {indirect4, %1}
|
gen pea {indirect4, %1}
|
||||||
|
@ -1059,7 +1059,7 @@ from extend1 to STACK
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
from regX to STACK
|
from regX to STACK
|
||||||
gen pea %1
|
gen pea %1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This last stackingrule is never used: whenever regX is put on
|
/* This last stackingrule is never used: whenever regX is put on
|
||||||
* the fakestack, some em-instuctions are left that remove it
|
* the fakestack, some em-instuctions are left that remove it
|
||||||
* immediately. However cgg complained about not having a
|
* immediately. However cgg complained about not having a
|
||||||
|
@ -1138,7 +1138,7 @@ from t_regAcon
|
||||||
uses reusing %1, AA_REG=%1.reg
|
uses reusing %1, AA_REG=%1.reg
|
||||||
gen add_l {const4, %1.bd}, %a
|
gen add_l {const4, %1.bd}, %a
|
||||||
yields %a
|
yields %a
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
from regAregXcon %bd==0 && %sc==1
|
from regAregXcon %bd==0 && %sc==1
|
||||||
|
@ -1539,7 +1539,7 @@ pat lol mlu stl $1==$3 && $2==WORD_SIZE && inreg($1)==reg_any
|
||||||
with data_int
|
with data_int
|
||||||
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
||||||
gen mulu_i %1, {LOCAL, $1}
|
gen mulu_i %1, {LOCAL, $1}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
proc lolxxxstl example lol adi stl
|
proc lolxxxstl example lol adi stl
|
||||||
with conreg_int-bconst
|
with conreg_int-bconst
|
||||||
|
@ -2948,7 +2948,7 @@ with exact local_addr yields {LOCAL, %1.bd+$1}
|
||||||
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3037,7 +3037,7 @@ with exact ext_addr yields {absolute1, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3070,7 +3070,7 @@ with exact ext_addr yields {absolute2, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
|
@ -3102,7 +3102,7 @@ with exact ext_addr yields {absolute4, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==4
|
#if WORD_SIZE==4
|
||||||
|
@ -3342,7 +3342,7 @@ with regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store_int
|
with exact regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
|
@ -3390,7 +3390,7 @@ with exact ext_regX store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==1
|
pat sti $1==1
|
||||||
with A_REG any1
|
with A_REG any1
|
||||||
|
@ -3409,7 +3409,7 @@ with regAcon any1
|
||||||
with regAregXcon any1
|
with regAregXcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any1
|
with exact regAcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted1, %1.reg, %1.bd}
|
gen move %2, {offsetted1, %1.reg, %1.bd}
|
||||||
|
@ -3457,7 +3457,7 @@ with exact ext_regX any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==2
|
pat sti $1==2
|
||||||
with A_REG any2
|
with A_REG any2
|
||||||
|
@ -3476,7 +3476,7 @@ with regAcon any2
|
||||||
with regAregXcon any2
|
with regAregXcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any2
|
with exact regAcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted2, %1.reg, %1.bd}
|
gen move %2, {offsetted2, %1.reg, %1.bd}
|
||||||
|
@ -3529,7 +3529,7 @@ with exact ext_regX any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==4
|
pat sti $1==4
|
||||||
with A_REG store4-sconsts4
|
with A_REG store4-sconsts4
|
||||||
|
@ -3557,7 +3557,7 @@ with regAcon store4-sconsts4
|
||||||
with regAregXcon store4-sconsts4
|
with regAregXcon store4-sconsts4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store4
|
with exact regAcon store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted4, %1.reg, %1.bd}
|
gen move %2, {offsetted4, %1.reg, %1.bd}
|
||||||
|
@ -3607,7 +3607,7 @@ with exact ext_regX store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat sti $1==6
|
pat sti $1==6
|
||||||
|
@ -3834,7 +3834,7 @@ pat mli $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4 DD_REG4
|
with data4 DD_REG4
|
||||||
gen muls_l %1, %2 yields %2
|
gen muls_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mli"}
|
gen jsr {absolute4, ".mli"}
|
||||||
|
@ -3853,12 +3853,12 @@ pat dvi $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divs_l %1, %2 yields %2
|
gen divs_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmi $1==2
|
pat rmi $1==2
|
||||||
|
@ -3878,12 +3878,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat ngi $1==2
|
pat ngi $1==2
|
||||||
|
@ -3934,12 +3934,12 @@ pat mlu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen mulu_l %1, %2 yields %2
|
gen mulu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mlu"}
|
gen jsr {absolute4, ".mlu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat dvu $1==2
|
pat dvu $1==2
|
||||||
|
@ -3953,12 +3953,12 @@ pat dvu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divu_l %1, %2 yields %2
|
gen divu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmu $1==2
|
pat rmu $1==2
|
||||||
|
@ -3979,12 +3979,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat slu leaving sli $1
|
pat slu leaving sli $1
|
||||||
|
|
||||||
|
@ -4400,7 +4400,7 @@ with exact LOCAL ext_regX
|
||||||
with exact absolute4 ext_regX
|
with exact absolute4 ext_regX
|
||||||
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* I WOULD ALSO LIKE THIS:
|
/* I WOULD ALSO LIKE THIS:
|
||||||
* pat ads
|
* pat ads
|
||||||
|
@ -4442,7 +4442,7 @@ with DD_REG4
|
||||||
gen add_l %1, %1 yields %1
|
gen add_l %1, %1 yields %1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
|
|
||||||
/************************************************
|
/************************************************
|
||||||
|
@ -5093,7 +5093,7 @@ pat lae aar $2==4 && rom($1,3)==1
|
||||||
pat lae aar $2==4 && nicesize(rom($1,3))
|
pat lae aar $2==4 && nicesize(rom($1,3))
|
||||||
with D_REG yields {regX, rom($1,3), %1}
|
with D_REG yields {regX, rom($1,3), %1}
|
||||||
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pat lae aar $2==4 && rom($1,3)==2
|
pat lae aar $2==4 && rom($1,3)==2
|
||||||
with DD_REG
|
with DD_REG
|
||||||
gen asl_l {small_const, 1}, %1
|
gen asl_l {small_const, 1}, %1
|
||||||
|
@ -5111,7 +5111,7 @@ with DD_REG
|
||||||
gen asl_l {small_const, 3}, %1
|
gen asl_l {small_const, 3}, %1
|
||||||
yields %1
|
yields %1
|
||||||
leaving ads 4 adp (0 - rom($1,1))<<3
|
leaving ads 4 adp (0 - rom($1,1))<<3
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* ARR_OPT */
|
#endif /* ARR_OPT */
|
||||||
#endif /* WORD_SIZE!=2 */
|
#endif /* WORD_SIZE!=2 */
|
||||||
|
|
||||||
|
@ -5928,11 +5928,11 @@ with A_REG D_REG4
|
||||||
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
||||||
jsr {absolute4, ".trp"}
|
jsr {absolute4, ".trp"}
|
||||||
1: yields %2
|
1: yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".rck"}
|
gen jsr {absolute4, ".rck"}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* WORD_SIZE==4 || TBL68020 */
|
#endif /* WORD_SIZE==4 || TBL68020 */
|
||||||
|
|
||||||
pat rtt leaving ret 0
|
pat rtt leaving ret 0
|
||||||
|
@ -6579,10 +6579,10 @@ with memory1+DD_REG
|
||||||
#else
|
#else
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
extb_l {LOCAL,$4}
|
extb_l {LOCAL,$4}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
ext_w {LOCAL,$4}
|
ext_w {LOCAL,$4}
|
||||||
ext_l {LOCAL,$4}
|
ext_l {LOCAL,$4}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pat loc loc cii $1==2 && $2==4
|
pat loc loc cii $1==2 && $2==4
|
||||||
|
|
|
@ -200,7 +200,7 @@ regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8)
|
||||||
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
||||||
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
/* Part (iii) */
|
/* Part (iii) */
|
||||||
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
||||||
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
||||||
|
@ -288,7 +288,7 @@ DREG_pair = {D_REG4 reg1; D_REG4 reg2;} 8 cost(2,0) reg1 ":" reg2 .
|
||||||
#define t_regAregXcon regAregXcon
|
#define t_regAregXcon regAregXcon
|
||||||
#define t_regAcon regAcon
|
#define t_regAcon regAcon
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE!=2
|
#if WORD_SIZE!=2
|
||||||
#define DLOCAL LOCAL
|
#define DLOCAL LOCAL
|
||||||
|
@ -349,7 +349,7 @@ control1 = indirect1 + offsetted1 + index_off1 + absolute1 .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG .
|
any1 = data1 + D_REG .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
||||||
offsetted4 + OFF_off4 + OFF_indoff4 +
|
offsetted4 + OFF_off4 + OFF_indoff4 +
|
||||||
|
@ -396,7 +396,7 @@ control1 = memory1 - (post_inc1 + pre_dec1 + consts ) .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG. /* all four above together */
|
any1 = data1 + D_REG. /* all four above together */
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This is a common part */
|
/* This is a common part */
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
/* Not any4, since any is used in 'with' and not in 'kills' */
|
/* Not any4, since any is used in 'with' and not in 'kills' */
|
||||||
|
@ -424,7 +424,7 @@ allexceptcon = ALL - ( D_REG + A_REG + consts + dreg2 + dreg1 +
|
||||||
t_regAcon + t_regAregXcon ) .
|
t_regAcon + t_regAregXcon ) .
|
||||||
use_index = index_off4 + index_off2 + index_off1 .
|
use_index = index_off4 + index_off2 + index_off1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
||||||
memind4 = reg_memind4 +
|
memind4 = reg_memind4 +
|
||||||
|
@ -466,7 +466,7 @@ use_indaddr = regAregXcon +
|
||||||
|
|
||||||
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* A common part */
|
/* A common part */
|
||||||
posextern = absolute + all_indir .
|
posextern = absolute + all_indir .
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ test_set2 = datalt2 .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = datalt1 .
|
test_set1 = datalt1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
imm_cmp4 = any4 - immediate4 - A_REG .
|
imm_cmp4 = any4 - immediate4 - A_REG .
|
||||||
imm_cmp2 = any2 - consts .
|
imm_cmp2 = any2 - consts .
|
||||||
|
@ -527,15 +527,15 @@ test_set2 = data2 - consts .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = data1 - consts .
|
test_set1 = data1 - consts .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
test_set = test_set4 + test_set2 + test_set1 .
|
test_set = test_set4 + test_set2 + test_set1 .
|
||||||
|
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
t_address = address + t_regAregXcon + t_regAcon .
|
t_address = address + t_regAregXcon + t_regAcon .
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
#define t_address address
|
#define t_address address
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if TBL68881
|
#if TBL68881
|
||||||
freg = FD_REG + FS_REG .
|
freg = FD_REG + FS_REG .
|
||||||
|
@ -591,7 +591,7 @@ divs_l "divs.l" data4:ro, LOCAL:rw:cc cost(0,90).
|
||||||
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
||||||
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
||||||
|
@ -777,9 +777,9 @@ extb_l "extb.l" extend1_4+D_REG+LOCAL:rw:cc cost(2,4).
|
||||||
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pea address+control4 cost(2,4).
|
pea address+control4 cost(2,4).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
* Extra pseudo instruction; it just kills a D_REG;
|
* Extra pseudo instruction; it just kills a D_REG;
|
||||||
|
@ -888,7 +888,7 @@ from t_regAcon sfit(%bd, 16) to A_REG+areg
|
||||||
from t_regAcon to A_REG+areg
|
from t_regAcon to A_REG+areg
|
||||||
gen move_l %1.reg, %2
|
gen move_l %1.reg, %2
|
||||||
add_l {const4, %1.bd}, %2
|
add_l {const4, %1.bd}, %2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from address - ext_addr to A_REG+areg
|
from address - ext_addr to A_REG+areg
|
||||||
gen lea %1, %2
|
gen lea %1, %2
|
||||||
|
@ -977,7 +977,7 @@ from t_regAcon sfit(%bd, 16) to STACK
|
||||||
from t_regAcon to STACK
|
from t_regAcon to STACK
|
||||||
gen move_l %1.reg, {pre_dec4, sp}
|
gen move_l %1.reg, {pre_dec4, sp}
|
||||||
add_l {const4, %1.bd}, {indirect4, sp}
|
add_l {const4, %1.bd}, {indirect4, sp}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from A_REG to STACK
|
from A_REG to STACK
|
||||||
gen pea {indirect4, %1}
|
gen pea {indirect4, %1}
|
||||||
|
@ -1059,7 +1059,7 @@ from extend1 to STACK
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
from regX to STACK
|
from regX to STACK
|
||||||
gen pea %1
|
gen pea %1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This last stackingrule is never used: whenever regX is put on
|
/* This last stackingrule is never used: whenever regX is put on
|
||||||
* the fakestack, some em-instuctions are left that remove it
|
* the fakestack, some em-instuctions are left that remove it
|
||||||
* immediately. However cgg complained about not having a
|
* immediately. However cgg complained about not having a
|
||||||
|
@ -1138,7 +1138,7 @@ from t_regAcon
|
||||||
uses reusing %1, AA_REG=%1.reg
|
uses reusing %1, AA_REG=%1.reg
|
||||||
gen add_l {const4, %1.bd}, %a
|
gen add_l {const4, %1.bd}, %a
|
||||||
yields %a
|
yields %a
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
from regAregXcon %bd==0 && %sc==1
|
from regAregXcon %bd==0 && %sc==1
|
||||||
|
@ -1539,7 +1539,7 @@ pat lol mlu stl $1==$3 && $2==WORD_SIZE && inreg($1)==reg_any
|
||||||
with data_int
|
with data_int
|
||||||
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
||||||
gen mulu_i %1, {LOCAL, $1}
|
gen mulu_i %1, {LOCAL, $1}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
proc lolxxxstl example lol adi stl
|
proc lolxxxstl example lol adi stl
|
||||||
with conreg_int-bconst
|
with conreg_int-bconst
|
||||||
|
@ -2948,7 +2948,7 @@ with exact local_addr yields {LOCAL, %1.bd+$1}
|
||||||
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3037,7 +3037,7 @@ with exact ext_addr yields {absolute1, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3070,7 +3070,7 @@ with exact ext_addr yields {absolute2, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
|
@ -3102,7 +3102,7 @@ with exact ext_addr yields {absolute4, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==4
|
#if WORD_SIZE==4
|
||||||
|
@ -3342,7 +3342,7 @@ with regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store_int
|
with exact regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
|
@ -3390,7 +3390,7 @@ with exact ext_regX store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==1
|
pat sti $1==1
|
||||||
with A_REG any1
|
with A_REG any1
|
||||||
|
@ -3409,7 +3409,7 @@ with regAcon any1
|
||||||
with regAregXcon any1
|
with regAregXcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any1
|
with exact regAcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted1, %1.reg, %1.bd}
|
gen move %2, {offsetted1, %1.reg, %1.bd}
|
||||||
|
@ -3457,7 +3457,7 @@ with exact ext_regX any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==2
|
pat sti $1==2
|
||||||
with A_REG any2
|
with A_REG any2
|
||||||
|
@ -3476,7 +3476,7 @@ with regAcon any2
|
||||||
with regAregXcon any2
|
with regAregXcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any2
|
with exact regAcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted2, %1.reg, %1.bd}
|
gen move %2, {offsetted2, %1.reg, %1.bd}
|
||||||
|
@ -3529,7 +3529,7 @@ with exact ext_regX any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==4
|
pat sti $1==4
|
||||||
with A_REG store4-sconsts4
|
with A_REG store4-sconsts4
|
||||||
|
@ -3557,7 +3557,7 @@ with regAcon store4-sconsts4
|
||||||
with regAregXcon store4-sconsts4
|
with regAregXcon store4-sconsts4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store4
|
with exact regAcon store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted4, %1.reg, %1.bd}
|
gen move %2, {offsetted4, %1.reg, %1.bd}
|
||||||
|
@ -3607,7 +3607,7 @@ with exact ext_regX store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat sti $1==6
|
pat sti $1==6
|
||||||
|
@ -3834,7 +3834,7 @@ pat mli $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4 DD_REG4
|
with data4 DD_REG4
|
||||||
gen muls_l %1, %2 yields %2
|
gen muls_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mli"}
|
gen jsr {absolute4, ".mli"}
|
||||||
|
@ -3853,12 +3853,12 @@ pat dvi $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divs_l %1, %2 yields %2
|
gen divs_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmi $1==2
|
pat rmi $1==2
|
||||||
|
@ -3878,12 +3878,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat ngi $1==2
|
pat ngi $1==2
|
||||||
|
@ -3934,12 +3934,12 @@ pat mlu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen mulu_l %1, %2 yields %2
|
gen mulu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mlu"}
|
gen jsr {absolute4, ".mlu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat dvu $1==2
|
pat dvu $1==2
|
||||||
|
@ -3953,12 +3953,12 @@ pat dvu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divu_l %1, %2 yields %2
|
gen divu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmu $1==2
|
pat rmu $1==2
|
||||||
|
@ -3979,12 +3979,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat slu leaving sli $1
|
pat slu leaving sli $1
|
||||||
|
|
||||||
|
@ -4400,7 +4400,7 @@ with exact LOCAL ext_regX
|
||||||
with exact absolute4 ext_regX
|
with exact absolute4 ext_regX
|
||||||
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* I WOULD ALSO LIKE THIS:
|
/* I WOULD ALSO LIKE THIS:
|
||||||
* pat ads
|
* pat ads
|
||||||
|
@ -4442,7 +4442,7 @@ with DD_REG4
|
||||||
gen add_l %1, %1 yields %1
|
gen add_l %1, %1 yields %1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
|
|
||||||
/************************************************
|
/************************************************
|
||||||
|
@ -5093,7 +5093,7 @@ pat lae aar $2==4 && rom($1,3)==1
|
||||||
pat lae aar $2==4 && nicesize(rom($1,3))
|
pat lae aar $2==4 && nicesize(rom($1,3))
|
||||||
with D_REG yields {regX, rom($1,3), %1}
|
with D_REG yields {regX, rom($1,3), %1}
|
||||||
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pat lae aar $2==4 && rom($1,3)==2
|
pat lae aar $2==4 && rom($1,3)==2
|
||||||
with DD_REG
|
with DD_REG
|
||||||
gen asl_l {small_const, 1}, %1
|
gen asl_l {small_const, 1}, %1
|
||||||
|
@ -5111,7 +5111,7 @@ with DD_REG
|
||||||
gen asl_l {small_const, 3}, %1
|
gen asl_l {small_const, 3}, %1
|
||||||
yields %1
|
yields %1
|
||||||
leaving ads 4 adp (0 - rom($1,1))<<3
|
leaving ads 4 adp (0 - rom($1,1))<<3
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* ARR_OPT */
|
#endif /* ARR_OPT */
|
||||||
#endif /* WORD_SIZE!=2 */
|
#endif /* WORD_SIZE!=2 */
|
||||||
|
|
||||||
|
@ -5928,11 +5928,11 @@ with A_REG D_REG4
|
||||||
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
||||||
jsr {absolute4, ".trp"}
|
jsr {absolute4, ".trp"}
|
||||||
1: yields %2
|
1: yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".rck"}
|
gen jsr {absolute4, ".rck"}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* WORD_SIZE==4 || TBL68020 */
|
#endif /* WORD_SIZE==4 || TBL68020 */
|
||||||
|
|
||||||
pat rtt leaving ret 0
|
pat rtt leaving ret 0
|
||||||
|
@ -6579,10 +6579,10 @@ with memory1+DD_REG
|
||||||
#else
|
#else
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
extb_l {LOCAL,$4}
|
extb_l {LOCAL,$4}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
ext_w {LOCAL,$4}
|
ext_w {LOCAL,$4}
|
||||||
ext_l {LOCAL,$4}
|
ext_l {LOCAL,$4}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pat loc loc cii $1==2 && $2==4
|
pat loc loc cii $1==2 && $2==4
|
||||||
|
|
|
@ -200,7 +200,7 @@ regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8)
|
||||||
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
t_regAregXcon = {A_REG reg; D_REG4 xreg; INT sc; INT bd;} 4 cost(2,8) .
|
||||||
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
t_regAcon = {A_REG reg; INT bd;} 4 cost(2,6) .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
/* Part (iii) */
|
/* Part (iii) */
|
||||||
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
absolute4 = {ADDR bd;} 4 cost(4,7) "(" bd ")" .
|
||||||
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
offsetted4 = {A_REG reg; INT bd;} 4 cost(2,6) "(" bd "," reg ")" .
|
||||||
|
@ -288,7 +288,7 @@ DREG_pair = {D_REG4 reg1; D_REG4 reg2;} 8 cost(2,0) reg1 ":" reg2 .
|
||||||
#define t_regAregXcon regAregXcon
|
#define t_regAregXcon regAregXcon
|
||||||
#define t_regAcon regAcon
|
#define t_regAcon regAcon
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE!=2
|
#if WORD_SIZE!=2
|
||||||
#define DLOCAL LOCAL
|
#define DLOCAL LOCAL
|
||||||
|
@ -349,7 +349,7 @@ control1 = indirect1 + offsetted1 + index_off1 + absolute1 .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG .
|
any1 = data1 + D_REG .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
data4 = D_REG4 + indirect4 + post_inc4 + pre_dec4 + index_off4 +
|
||||||
offsetted4 + OFF_off4 + OFF_indoff4 +
|
offsetted4 + OFF_off4 + OFF_indoff4 +
|
||||||
|
@ -396,7 +396,7 @@ control1 = memory1 - (post_inc1 + pre_dec1 + consts ) .
|
||||||
alterable1 = data1 + D_REG - consts .
|
alterable1 = data1 + D_REG - consts .
|
||||||
any1 = data1 + D_REG. /* all four above together */
|
any1 = data1 + D_REG. /* all four above together */
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This is a common part */
|
/* This is a common part */
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
/* Not any4, since any is used in 'with' and not in 'kills' */
|
/* Not any4, since any is used in 'with' and not in 'kills' */
|
||||||
|
@ -424,7 +424,7 @@ allexceptcon = ALL - ( D_REG + A_REG + consts + dreg2 + dreg1 +
|
||||||
t_regAcon + t_regAregXcon ) .
|
t_regAcon + t_regAregXcon ) .
|
||||||
use_index = index_off4 + index_off2 + index_off1 .
|
use_index = index_off4 + index_off2 + index_off1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
reg_memind4 = OFF_off4 + OFF_indoff4 + INDOFF_off4 .
|
||||||
memind4 = reg_memind4 +
|
memind4 = reg_memind4 +
|
||||||
|
@ -466,7 +466,7 @@ use_indaddr = regAregXcon +
|
||||||
|
|
||||||
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
use_index = use_index4 + use_index2 + use_index1 + use_indaddr + regX .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* A common part */
|
/* A common part */
|
||||||
posextern = absolute + all_indir .
|
posextern = absolute + all_indir .
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ test_set2 = datalt2 .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = datalt1 .
|
test_set1 = datalt1 .
|
||||||
|
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
|
|
||||||
imm_cmp4 = any4 - immediate4 - A_REG .
|
imm_cmp4 = any4 - immediate4 - A_REG .
|
||||||
imm_cmp2 = any2 - consts .
|
imm_cmp2 = any2 - consts .
|
||||||
|
@ -527,15 +527,15 @@ test_set2 = data2 - consts .
|
||||||
#endif
|
#endif
|
||||||
test_set1 = data1 - consts .
|
test_set1 = data1 - consts .
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
test_set = test_set4 + test_set2 + test_set1 .
|
test_set = test_set4 + test_set2 + test_set1 .
|
||||||
|
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
t_address = address + t_regAregXcon + t_regAcon .
|
t_address = address + t_regAregXcon + t_regAcon .
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
#define t_address address
|
#define t_address address
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if TBL68881
|
#if TBL68881
|
||||||
freg = FD_REG + FS_REG .
|
freg = FD_REG + FS_REG .
|
||||||
|
@ -591,7 +591,7 @@ divs_l "divs.l" data4:ro, LOCAL:rw:cc cost(0,90).
|
||||||
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
divu_l "divu.l" data4:ro, LOCAL:rw:cc cost(0,78).
|
||||||
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
muls_l "muls.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
mulu_l "mulu.l" data4:ro, LOCAL:rw:cc cost(0,44).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
add_l "add.l" any4:ro, D_REG4:rw:cc cost(2,3).
|
||||||
|
@ -777,9 +777,9 @@ extb_l "extb.l" extend1_4+D_REG+LOCAL:rw:cc cost(2,4).
|
||||||
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
muls_l "muls.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
mulu_l "mulu.l" data4:ro, D_REG+LOCAL:rw:cc cost(2,44).
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pea address+control4 cost(2,4).
|
pea address+control4 cost(2,4).
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
* Extra pseudo instruction; it just kills a D_REG;
|
* Extra pseudo instruction; it just kills a D_REG;
|
||||||
|
@ -888,7 +888,7 @@ from t_regAcon sfit(%bd, 16) to A_REG+areg
|
||||||
from t_regAcon to A_REG+areg
|
from t_regAcon to A_REG+areg
|
||||||
gen move_l %1.reg, %2
|
gen move_l %1.reg, %2
|
||||||
add_l {const4, %1.bd}, %2
|
add_l {const4, %1.bd}, %2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from address - ext_addr to A_REG+areg
|
from address - ext_addr to A_REG+areg
|
||||||
gen lea %1, %2
|
gen lea %1, %2
|
||||||
|
@ -977,7 +977,7 @@ from t_regAcon sfit(%bd, 16) to STACK
|
||||||
from t_regAcon to STACK
|
from t_regAcon to STACK
|
||||||
gen move_l %1.reg, {pre_dec4, sp}
|
gen move_l %1.reg, {pre_dec4, sp}
|
||||||
add_l {const4, %1.bd}, {indirect4, sp}
|
add_l {const4, %1.bd}, {indirect4, sp}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
from A_REG to STACK
|
from A_REG to STACK
|
||||||
gen pea {indirect4, %1}
|
gen pea {indirect4, %1}
|
||||||
|
@ -1059,7 +1059,7 @@ from extend1 to STACK
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
from regX to STACK
|
from regX to STACK
|
||||||
gen pea %1
|
gen pea %1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
/* This last stackingrule is never used: whenever regX is put on
|
/* This last stackingrule is never used: whenever regX is put on
|
||||||
* the fakestack, some em-instuctions are left that remove it
|
* the fakestack, some em-instuctions are left that remove it
|
||||||
* immediately. However cgg complained about not having a
|
* immediately. However cgg complained about not having a
|
||||||
|
@ -1138,7 +1138,7 @@ from t_regAcon
|
||||||
uses reusing %1, AA_REG=%1.reg
|
uses reusing %1, AA_REG=%1.reg
|
||||||
gen add_l {const4, %1.bd}, %a
|
gen add_l {const4, %1.bd}, %a
|
||||||
yields %a
|
yields %a
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
from regAregXcon %bd==0 && %sc==1
|
from regAregXcon %bd==0 && %sc==1
|
||||||
|
@ -1539,7 +1539,7 @@ pat lol mlu stl $1==$3 && $2==WORD_SIZE && inreg($1)==reg_any
|
||||||
with data_int
|
with data_int
|
||||||
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
|
||||||
gen mulu_i %1, {LOCAL, $1}
|
gen mulu_i %1, {LOCAL, $1}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
proc lolxxxstl example lol adi stl
|
proc lolxxxstl example lol adi stl
|
||||||
with conreg_int-bconst
|
with conreg_int-bconst
|
||||||
|
@ -2948,7 +2948,7 @@ with exact local_addr yields {LOCAL, %1.bd+$1}
|
||||||
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
with exact ext_addr yields {absolute_int, %1.bd+$1}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
with exact regAcon yields {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
with exact regAregXcon yields {index_off_int, %1.reg, %1.xreg, %1.sc, %1.bd+$1}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3037,7 +3037,7 @@ with exact ext_addr yields {absolute1, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
with regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted1, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#ifdef FANCY_MODES
|
#ifdef FANCY_MODES
|
||||||
|
@ -3070,7 +3070,7 @@ with exact ext_addr yields {absolute2, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
with regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted2, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
|
@ -3102,7 +3102,7 @@ with exact ext_addr yields {absolute4, %1.bd}
|
||||||
#ifndef TBL68020
|
#ifndef TBL68020
|
||||||
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
with regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
with exact regAcon yields {offsetted4, %1.reg, %1.bd}
|
||||||
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
with exact regAregXcon yields {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#if WORD_SIZE==4
|
#if WORD_SIZE==4
|
||||||
|
@ -3342,7 +3342,7 @@ with regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
#endif
|
#endif
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store_int
|
with exact regAcon store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
gen move %2, {offsetted_int, %1.reg, %1.bd+$1}
|
||||||
|
@ -3390,7 +3390,7 @@ with exact ext_regX store_int
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
gen move %2, {abs_index_int, %1.sc, %1.xreg, %1.bd+$1}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==1
|
pat sti $1==1
|
||||||
with A_REG any1
|
with A_REG any1
|
||||||
|
@ -3409,7 +3409,7 @@ with regAcon any1
|
||||||
with regAregXcon any1
|
with regAregXcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off1, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any1
|
with exact regAcon any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted1, %1.reg, %1.bd}
|
gen move %2, {offsetted1, %1.reg, %1.bd}
|
||||||
|
@ -3457,7 +3457,7 @@ with exact ext_regX any1
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index1, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==2
|
pat sti $1==2
|
||||||
with A_REG any2
|
with A_REG any2
|
||||||
|
@ -3476,7 +3476,7 @@ with regAcon any2
|
||||||
with regAregXcon any2
|
with regAregXcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off2, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon any2
|
with exact regAcon any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted2, %1.reg, %1.bd}
|
gen move %2, {offsetted2, %1.reg, %1.bd}
|
||||||
|
@ -3529,7 +3529,7 @@ with exact ext_regX any2
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index2, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat sti $1==4
|
pat sti $1==4
|
||||||
with A_REG store4-sconsts4
|
with A_REG store4-sconsts4
|
||||||
|
@ -3557,7 +3557,7 @@ with regAcon store4-sconsts4
|
||||||
with regAregXcon store4-sconsts4
|
with regAregXcon store4-sconsts4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
gen move %2, {index_off4, %1.reg, %1.xreg, %1.sc, %1.bd}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with exact regAcon store4
|
with exact regAcon store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {offsetted4, %1.reg, %1.bd}
|
gen move %2, {offsetted4, %1.reg, %1.bd}
|
||||||
|
@ -3607,7 +3607,7 @@ with exact ext_regX store4
|
||||||
kills allexceptcon
|
kills allexceptcon
|
||||||
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
gen move %2, {abs_index4, %1.sc, %1.xreg, %1.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat sti $1==6
|
pat sti $1==6
|
||||||
|
@ -3834,7 +3834,7 @@ pat mli $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4 DD_REG4
|
with data4 DD_REG4
|
||||||
gen muls_l %1, %2 yields %2
|
gen muls_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mli"}
|
gen jsr {absolute4, ".mli"}
|
||||||
|
@ -3853,12 +3853,12 @@ pat dvi $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divs_l %1, %2 yields %2
|
gen divs_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmi $1==2
|
pat rmi $1==2
|
||||||
|
@ -3878,12 +3878,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvi"}
|
gen jsr {absolute4, ".dvi"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat ngi $1==2
|
pat ngi $1==2
|
||||||
|
@ -3934,12 +3934,12 @@ pat mlu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen mulu_l %1, %2 yields %2
|
gen mulu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".mlu"}
|
gen jsr {absolute4, ".mlu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat dvu $1==2
|
pat dvu $1==2
|
||||||
|
@ -3953,12 +3953,12 @@ pat dvu $1==4
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
with data4-sconsts4 DD_REG4
|
with data4-sconsts4 DD_REG4
|
||||||
gen divu_l %1, %2 yields %2
|
gen divu_l %1, %2 yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl1
|
yields dl1
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
#if WORD_SIZE==2
|
#if WORD_SIZE==2
|
||||||
pat rmu $1==2
|
pat rmu $1==2
|
||||||
|
@ -3979,12 +3979,12 @@ with data4-sconsts4 DD_REG4
|
||||||
killreg %2
|
killreg %2
|
||||||
/* !!!! contents of %2 have changed: make this known to cg */
|
/* !!!! contents of %2 have changed: make this known to cg */
|
||||||
yields %a
|
yields %a
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".dvu"}
|
gen jsr {absolute4, ".dvu"}
|
||||||
yields dl2
|
yields dl2
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
pat slu leaving sli $1
|
pat slu leaving sli $1
|
||||||
|
|
||||||
|
@ -4400,7 +4400,7 @@ with exact LOCAL ext_regX
|
||||||
with exact absolute4 ext_regX
|
with exact absolute4 ext_regX
|
||||||
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
yields {abs_regXcon, %2.sc, %2.xreg, %1.bd, %2.bd}
|
||||||
#endif /* FANCY_MODES */
|
#endif /* FANCY_MODES */
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
/* I WOULD ALSO LIKE THIS:
|
/* I WOULD ALSO LIKE THIS:
|
||||||
* pat ads
|
* pat ads
|
||||||
|
@ -4442,7 +4442,7 @@ with DD_REG4
|
||||||
gen add_l %1, %1 yields %1
|
gen add_l %1, %1 yields %1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
|
|
||||||
|
|
||||||
/************************************************
|
/************************************************
|
||||||
|
@ -5093,7 +5093,7 @@ pat lae aar $2==4 && rom($1,3)==1
|
||||||
pat lae aar $2==4 && nicesize(rom($1,3))
|
pat lae aar $2==4 && nicesize(rom($1,3))
|
||||||
with D_REG yields {regX, rom($1,3), %1}
|
with D_REG yields {regX, rom($1,3), %1}
|
||||||
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
leaving ads 4 adp rom($1,3)*(0-rom($1,1))
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
pat lae aar $2==4 && rom($1,3)==2
|
pat lae aar $2==4 && rom($1,3)==2
|
||||||
with DD_REG
|
with DD_REG
|
||||||
gen asl_l {small_const, 1}, %1
|
gen asl_l {small_const, 1}, %1
|
||||||
|
@ -5111,7 +5111,7 @@ with DD_REG
|
||||||
gen asl_l {small_const, 3}, %1
|
gen asl_l {small_const, 3}, %1
|
||||||
yields %1
|
yields %1
|
||||||
leaving ads 4 adp (0 - rom($1,1))<<3
|
leaving ads 4 adp (0 - rom($1,1))<<3
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* ARR_OPT */
|
#endif /* ARR_OPT */
|
||||||
#endif /* WORD_SIZE!=2 */
|
#endif /* WORD_SIZE!=2 */
|
||||||
|
|
||||||
|
@ -5928,11 +5928,11 @@ with A_REG D_REG4
|
||||||
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
pea {absolute4, 1} /* push constant 1 == ERANGE */
|
||||||
jsr {absolute4, ".trp"}
|
jsr {absolute4, ".trp"}
|
||||||
1: yields %2
|
1: yields %2
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
with STACK
|
with STACK
|
||||||
kills ALL
|
kills ALL
|
||||||
gen jsr {absolute4, ".rck"}
|
gen jsr {absolute4, ".rck"}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif /* WORD_SIZE==4 || TBL68020 */
|
#endif /* WORD_SIZE==4 || TBL68020 */
|
||||||
|
|
||||||
pat rtt leaving ret 0
|
pat rtt leaving ret 0
|
||||||
|
@ -6579,10 +6579,10 @@ with memory1+DD_REG
|
||||||
#else
|
#else
|
||||||
#ifdef TBL68020
|
#ifdef TBL68020
|
||||||
extb_l {LOCAL,$4}
|
extb_l {LOCAL,$4}
|
||||||
#else TBL68020
|
#else /* TBL68020 */
|
||||||
ext_w {LOCAL,$4}
|
ext_w {LOCAL,$4}
|
||||||
ext_l {LOCAL,$4}
|
ext_l {LOCAL,$4}
|
||||||
#endif TBL68020
|
#endif /* TBL68020 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pat loc loc cii $1==2 && $2==4
|
pat loc loc cii $1==2 && $2==4
|
||||||
|
|
|
@ -40,10 +40,10 @@
|
||||||
#ifdef REGPATCH
|
#ifdef REGPATCH
|
||||||
#define SL 8
|
#define SL 8
|
||||||
#define SSL "010"
|
#define SSL "010"
|
||||||
#else REGPATCH
|
#else /* REGPATCH */
|
||||||
#define SL 4
|
#define SL 4
|
||||||
#define SSL "4"
|
#define SSL "4"
|
||||||
#endif REGPATCH
|
#endif /* REGPATCH */
|
||||||
|
|
||||||
#define NC nocoercions:
|
#define NC nocoercions:
|
||||||
|
|
||||||
|
|
|
@ -68,8 +68,8 @@
|
||||||
#ifndef ASLD
|
#ifndef ASLD
|
||||||
#ifndef RELOCATION
|
#ifndef RELOCATION
|
||||||
separate linker only possible if relocation info produced
|
separate linker only possible if relocation info produced
|
||||||
#endif RELOCATION
|
#endif /* RELOCATION */
|
||||||
#endif ASLD
|
#endif /* ASLD */
|
||||||
|
|
||||||
#ifndef DEBUG
|
#ifndef DEBUG
|
||||||
#define DEBUG 1
|
#define DEBUG 1
|
||||||
|
@ -124,7 +124,7 @@ _include <signal.h>
|
||||||
#else
|
#else
|
||||||
#define PASS_SYMB 1
|
#define PASS_SYMB 1
|
||||||
#define PASS_RELO 1
|
#define PASS_RELO 1
|
||||||
#endif THREE_PASS
|
#endif /* THREE_PASS */
|
||||||
|
|
||||||
#ifdef ASLD
|
#ifdef ASLD
|
||||||
#define RELOMOVE(a,b) /* empty */
|
#define RELOMOVE(a,b) /* empty */
|
||||||
|
|
|
@ -42,11 +42,11 @@ extern short dflag; /* -d option (list mode) */
|
||||||
#ifdef ASLD
|
#ifdef ASLD
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
extern short rflag; /* -r option (relocation info) */
|
extern short rflag; /* -r option (relocation info) */
|
||||||
#endif RELOCATION
|
#endif /* RELOCATION */
|
||||||
#else
|
#else
|
||||||
#define rflag 1
|
#define rflag 1
|
||||||
extern valu_t relonami;
|
extern valu_t relonami;
|
||||||
#endif ASLD
|
#endif /* ASLD */
|
||||||
|
|
||||||
#ifdef THREE_PASS
|
#ifdef THREE_PASS
|
||||||
extern short bflag; /* -b option (no optimizations) */
|
extern short bflag; /* -b option (no optimizations) */
|
||||||
|
|
|
@ -96,7 +96,7 @@ static item_t *last_it, *o_it;
|
||||||
else if (listtemp) { listflag = listtemp; listeoln = 1; }
|
else if (listtemp) { listflag = listtemp; listeoln = 1; }
|
||||||
#else
|
#else
|
||||||
#define LISTLINE(n) /* empty */
|
#define LISTLINE(n) /* empty */
|
||||||
#endif LISTING
|
#endif /* LISTING */
|
||||||
|
|
||||||
#ifdef ASLD
|
#ifdef ASLD
|
||||||
#define RELODONE /* empty */
|
#define RELODONE /* empty */
|
||||||
|
|
|
@ -93,8 +93,8 @@ char **argv;
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
#ifdef ASLD
|
#ifdef ASLD
|
||||||
rflag = 1;
|
rflag = 1;
|
||||||
#endif ASLD
|
#endif /* ASLD */
|
||||||
#endif RELOCATION
|
#endif /* RELOCATION */
|
||||||
break;
|
break;
|
||||||
case 'b':
|
case 'b':
|
||||||
#ifdef THREE_PASS
|
#ifdef THREE_PASS
|
||||||
|
@ -115,7 +115,7 @@ char **argv;
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
if (rflag)
|
if (rflag)
|
||||||
sflag |= SYM_SCT;
|
sflag |= SYM_SCT;
|
||||||
#endif RELOCATION
|
#endif /* RELOCATION */
|
||||||
pass_1(argc, argv);
|
pass_1(argc, argv);
|
||||||
#ifdef THREE_PASS
|
#ifdef THREE_PASS
|
||||||
pass_23(PASS_2);
|
pass_23(PASS_2);
|
||||||
|
@ -304,7 +304,7 @@ needed()
|
||||||
#endif
|
#endif
|
||||||
return(need);
|
return(need);
|
||||||
}
|
}
|
||||||
#endif ASLD
|
#endif /* ASLD */
|
||||||
|
|
||||||
parse(s)
|
parse(s)
|
||||||
char *s;
|
char *s;
|
||||||
|
@ -423,7 +423,7 @@ pass_23(n)
|
||||||
machstart(n);
|
machstart(n);
|
||||||
#ifndef ASLD
|
#ifndef ASLD
|
||||||
newmodule(modulename);
|
newmodule(modulename);
|
||||||
#endif ASLD
|
#endif /* ASLD */
|
||||||
ffreopen(temppath, tempfile);
|
ffreopen(temppath, tempfile);
|
||||||
yyparse();
|
yyparse();
|
||||||
commfinish();
|
commfinish();
|
||||||
|
@ -534,12 +534,12 @@ commfinish()
|
||||||
0,
|
0,
|
||||||
load(ip)
|
load(ip)
|
||||||
);
|
);
|
||||||
#else not ASLD
|
#else /* not ASLD */
|
||||||
#ifdef THREE_PASS
|
#ifdef THREE_PASS
|
||||||
if (pass == PASS_2) {
|
if (pass == PASS_2) {
|
||||||
cp->c_size -= sp->s_gain;
|
cp->c_size -= sp->s_gain;
|
||||||
}
|
}
|
||||||
#endif THREE_PASS
|
#endif /* THREE_PASS */
|
||||||
}
|
}
|
||||||
if (pass == PASS_1) cp->c_size = ip->i_valu;
|
if (pass == PASS_1) cp->c_size = ip->i_valu;
|
||||||
if (PASS_SYMB) {
|
if (PASS_SYMB) {
|
||||||
|
@ -553,7 +553,7 @@ commfinish()
|
||||||
cp->c_size
|
cp->c_size
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
#endif not ASLD
|
#endif /* not ASLD */
|
||||||
}
|
}
|
||||||
if (PASS_SYMB == 0)
|
if (PASS_SYMB == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -578,7 +578,7 @@ commfinish()
|
||||||
(valu_t)0
|
(valu_t)0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
#endif not ASLD
|
#endif /* not ASLD */
|
||||||
/*
|
/*
|
||||||
* produce symbol table entries for sections
|
* produce symbol table entries for sections
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -26,7 +26,7 @@ register int typ;
|
||||||
typ = S_VAR;
|
typ = S_VAR;
|
||||||
else if (pass == PASS_2 && (ip->i_type & S_TYP) == S_UND)
|
else if (pass == PASS_2 && (ip->i_type & S_TYP) == S_UND)
|
||||||
ip->i_type |= typ;
|
ip->i_type |= typ;
|
||||||
#endif THREE_PASS
|
#endif /* THREE_PASS */
|
||||||
if (typ == S_UND)
|
if (typ == S_UND)
|
||||||
serror("illegal equate");
|
serror("illegal equate");
|
||||||
if (pass == PASS_3)
|
if (pass == PASS_3)
|
||||||
|
@ -40,7 +40,7 @@ register item_t *ip;
|
||||||
register flag;
|
register flag;
|
||||||
#ifdef GENLAB
|
#ifdef GENLAB
|
||||||
static char genlab[] = GENLAB;
|
static char genlab[] = GENLAB;
|
||||||
#endif GENLAB
|
#endif /* GENLAB */
|
||||||
|
|
||||||
if (pass == PASS_1) {
|
if (pass == PASS_1) {
|
||||||
/* printf("declare %s: %o\n", ip->i_name, typ); */
|
/* printf("declare %s: %o\n", ip->i_name, typ); */
|
||||||
|
@ -59,12 +59,12 @@ register item_t *ip;
|
||||||
flag = SYM_LOC;
|
flag = SYM_LOC;
|
||||||
#else
|
#else
|
||||||
flag = SYM_EXT|SYM_LOC; /* S_EXT not stable in PASS_1 */
|
flag = SYM_EXT|SYM_LOC; /* S_EXT not stable in PASS_1 */
|
||||||
#endif THREE_PASS
|
#endif /* THREE_PASS */
|
||||||
#ifdef GENLAB
|
#ifdef GENLAB
|
||||||
if (!(flag & SYM_EXT) &&
|
if (!(flag & SYM_EXT) &&
|
||||||
strncmp(ip->i_name, genlab, sizeof(genlab)-1) == 0)
|
strncmp(ip->i_name, genlab, sizeof(genlab)-1) == 0)
|
||||||
flag = SYM_LAB;
|
flag = SYM_LAB;
|
||||||
#endif GENLAB
|
#endif /* GENLAB */
|
||||||
if (sflag & flag)
|
if (sflag & flag)
|
||||||
newsymb(
|
newsymb(
|
||||||
ip->i_name,
|
ip->i_name,
|
||||||
|
|
|
@ -167,7 +167,7 @@ listline(textline)
|
||||||
listcolm = 0;
|
listcolm = 0;
|
||||||
listflag = listtemp;
|
listflag = listtemp;
|
||||||
}
|
}
|
||||||
#endif LISTING
|
#endif /* LISTING */
|
||||||
|
|
||||||
/* ---------- code optimization ---------- */
|
/* ---------- code optimization ---------- */
|
||||||
|
|
||||||
|
|
|
@ -247,14 +247,14 @@ if (Debug)
|
||||||
#ifdef MAXSPLIT
|
#ifdef MAXSPLIT
|
||||||
sret = split(tp,&tokexp[i],ply,toplevel);
|
sret = split(tp,&tokexp[i],ply,toplevel);
|
||||||
if (sret==0) {
|
if (sret==0) {
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
totalcost += stackupto(tp,ply,toplevel);
|
totalcost += stackupto(tp,ply,toplevel);
|
||||||
CHKCOST();
|
CHKCOST();
|
||||||
break;
|
break;
|
||||||
#ifdef MAXSPLIT
|
#ifdef MAXSPLIT
|
||||||
}
|
}
|
||||||
i += sret;
|
i += sret;
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
} else
|
} else
|
||||||
i += 1;
|
i += 1;
|
||||||
tp--;
|
tp--;
|
||||||
|
|
|
@ -41,7 +41,7 @@ extern int pathash[256]; /* Indices into previous */
|
||||||
extern c1_t c1coercs[]; /* coercions type 1 */
|
extern c1_t c1coercs[]; /* coercions type 1 */
|
||||||
#ifdef MAXSPLIT
|
#ifdef MAXSPLIT
|
||||||
extern c2_t c2coercs[]; /* coercions type 2 */
|
extern c2_t c2coercs[]; /* coercions type 2 */
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
extern c3_t c3coercs[]; /* coercions type 3 */
|
extern c3_t c3coercs[]; /* coercions type 3 */
|
||||||
extern struct reginfo **reglist[]; /* lists of registers per property */
|
extern struct reginfo **reglist[]; /* lists of registers per property */
|
||||||
|
|
||||||
|
|
|
@ -548,7 +548,7 @@ bss(n,t,b) full n; {
|
||||||
if (b==0
|
if (b==0
|
||||||
#ifdef BSS_INIT
|
#ifdef BSS_INIT
|
||||||
|| (t==sp_cstx && argval==BSS_INIT)
|
|| (t==sp_cstx && argval==BSS_INIT)
|
||||||
#endif BSS_INIT
|
#endif /* BSS_INIT */
|
||||||
) {
|
) {
|
||||||
switchseg(SEGBSS);
|
switchseg(SEGBSS);
|
||||||
newlbss(labstr,n);
|
newlbss(labstr,n);
|
||||||
|
|
|
@ -163,7 +163,7 @@ chkregs() {
|
||||||
for(j=0;j<nregvar[i];j++)
|
for(j=0;j<nregvar[i];j++)
|
||||||
inctcount(rvnumbers[i][j]);
|
inctcount(rvnumbers[i][j]);
|
||||||
}
|
}
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
for (rp=machregs;rp<machregs+NREGS;rp++) {
|
for (rp=machregs;rp<machregs+NREGS;rp++) {
|
||||||
assert(rp->r_refcount==rp->r_tcount);
|
assert(rp->r_refcount==rp->r_tcount);
|
||||||
rp->r_tcount=0;
|
rp->r_tcount=0;
|
||||||
|
|
|
@ -135,6 +135,6 @@ unlinkregs() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
|
|
||||||
/* nothing after this */
|
/* nothing after this */
|
||||||
|
|
|
@ -332,7 +332,7 @@ instsize(tinstno,tp) token_p tp; {
|
||||||
return(tokens[inp->in_info[0]].t_size);
|
return(tokens[inp->in_info[0]].t_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
|
|
||||||
tref(tp,amount) register token_p tp; {
|
tref(tp,amount) register token_p tp; {
|
||||||
register i;
|
register i;
|
||||||
|
@ -389,7 +389,7 @@ found:
|
||||||
fakestack[stackheight++] = savestack[i];
|
fakestack[stackheight++] = savestack[i];
|
||||||
return(cp->c2_nsplit);
|
return(cp->c2_nsplit);
|
||||||
}
|
}
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
|
|
||||||
unsigned docoerc(tp,cp,ply,toplevel,forced) token_p tp; c3_p cp; {
|
unsigned docoerc(tp,cp,ply,toplevel,forced) token_p tp; c3_p cp; {
|
||||||
token_t savestack[MAXSAVE];
|
token_t savestack[MAXSAVE];
|
||||||
|
|
|
@ -27,4 +27,4 @@ typedef char * string;
|
||||||
#define word long
|
#define word long
|
||||||
#ifndef WRD_FMT
|
#ifndef WRD_FMT
|
||||||
#define WRD_FMT "%ld"
|
#define WRD_FMT "%ld"
|
||||||
#endif WRD_FMT
|
#endif /* WRD_FMT */
|
||||||
|
|
|
@ -138,7 +138,7 @@ EXTEND *e1,*e2;
|
||||||
*lp <<= count;
|
*lp <<= count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else USE_DIVIDE
|
#else /* USE_DIVIDE */
|
||||||
|
|
||||||
u[4] = (e1->m2 & 1) << 15;
|
u[4] = (e1->m2 & 1) << 15;
|
||||||
b64_rsft(&(e1->m1));
|
b64_rsft(&(e1->m1));
|
||||||
|
|
|
@ -295,14 +295,14 @@ if (Debug)
|
||||||
#ifdef MAXSPLIT
|
#ifdef MAXSPLIT
|
||||||
sret = split(tp,&tokexp[i],ply,toplevel);
|
sret = split(tp,&tokexp[i],ply,toplevel);
|
||||||
if (sret==0) {
|
if (sret==0) {
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
totalcost += stackupto(tp,ply,toplevel);
|
totalcost += stackupto(tp,ply,toplevel);
|
||||||
CHKCOST();
|
CHKCOST();
|
||||||
break;
|
break;
|
||||||
#ifdef MAXSPLIT
|
#ifdef MAXSPLIT
|
||||||
}
|
}
|
||||||
i += sret;
|
i += sret;
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
} else
|
} else
|
||||||
i += 1;
|
i += 1;
|
||||||
tp--;
|
tp--;
|
||||||
|
|
|
@ -42,7 +42,7 @@ extern int pathash[256]; /* Indices into previous */
|
||||||
extern c1_t c1coercs[]; /* coercions type 1 */
|
extern c1_t c1coercs[]; /* coercions type 1 */
|
||||||
#ifdef MAXSPLIT
|
#ifdef MAXSPLIT
|
||||||
extern c2_t c2coercs[]; /* coercions type 2 */
|
extern c2_t c2coercs[]; /* coercions type 2 */
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
extern c3_t c3coercs[]; /* coercions type 3 */
|
extern c3_t c3coercs[]; /* coercions type 3 */
|
||||||
extern struct reginfo **reglist[]; /* lists of registers per property */
|
extern struct reginfo **reglist[]; /* lists of registers per property */
|
||||||
|
|
||||||
|
|
|
@ -588,7 +588,7 @@ bss(n,t,b) full n; {
|
||||||
if (b==0
|
if (b==0
|
||||||
#ifdef BSS_INIT
|
#ifdef BSS_INIT
|
||||||
|| (t==sp_cstx && argval==BSS_INIT)
|
|| (t==sp_cstx && argval==BSS_INIT)
|
||||||
#endif BSS_INIT
|
#endif /* BSS_INIT */
|
||||||
) {
|
) {
|
||||||
switchseg(SEGBSS);
|
switchseg(SEGBSS);
|
||||||
newlbss(labstr,n);
|
newlbss(labstr,n);
|
||||||
|
|
|
@ -205,7 +205,7 @@ chkregs() {
|
||||||
for(j=0;j<nregvar[i];j++)
|
for(j=0;j<nregvar[i];j++)
|
||||||
inctcount(rvnumbers[i][j]);
|
inctcount(rvnumbers[i][j]);
|
||||||
}
|
}
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
for (rp=machregs+1;rp<machregs+NREGS;rp++) {
|
for (rp=machregs+1;rp<machregs+NREGS;rp++) {
|
||||||
assert(rp->r_refcount==rp->r_tcount);
|
assert(rp->r_refcount==rp->r_tcount);
|
||||||
rp->r_tcount=0;
|
rp->r_tcount=0;
|
||||||
|
|
|
@ -145,6 +145,6 @@ unlinkregs() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
|
|
||||||
/* nothing after this */
|
/* nothing after this */
|
||||||
|
|
|
@ -415,7 +415,7 @@ instsize(tinstno,tp) token_p tp; {
|
||||||
return(tokens[inp->in_info[0]].t_size);
|
return(tokens[inp->in_info[0]].t_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
|
|
||||||
tref(tp,amount) register token_p tp; {
|
tref(tp,amount) register token_p tp; {
|
||||||
register i;
|
register i;
|
||||||
|
@ -530,7 +530,7 @@ found:
|
||||||
rest_stack();
|
rest_stack();
|
||||||
return(cp->c2_nsplit);
|
return(cp->c2_nsplit);
|
||||||
}
|
}
|
||||||
#endif MAXSPLIT
|
#endif /* MAXSPLIT */
|
||||||
|
|
||||||
unsigned docoerc(tp,cp,ply,toplevel,forced) token_p tp; register c3_p cp; {
|
unsigned docoerc(tp,cp,ply,toplevel,forced) token_p tp; register c3_p cp; {
|
||||||
unsigned cost;
|
unsigned cost;
|
||||||
|
|
|
@ -27,4 +27,4 @@ typedef char * string;
|
||||||
#define word long
|
#define word long
|
||||||
#ifndef WRD_FMT
|
#ifndef WRD_FMT
|
||||||
#define WRD_FMT "%ld"
|
#define WRD_FMT "%ld"
|
||||||
#endif WRD_FMT
|
#endif /* WRD_FMT */
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char rcsid[] = "$Header$";
|
static char rcsid[] = "$Header$";
|
||||||
#endif lint
|
#endif /* lint */
|
||||||
/*
|
/*
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
||||||
|
@ -129,7 +129,7 @@ prolog(nlocals)
|
||||||
fprintf(codefile,"\tsubl2\t$%ld,sp\n",nlocals);
|
fprintf(codefile,"\tsubl2\t$%ld,sp\n",nlocals);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif not REGVARS
|
#endif /* not REGVARS */
|
||||||
|
|
||||||
char *segname[] = {
|
char *segname[] = {
|
||||||
".sect .text", /* SEGTXT */
|
".sect .text", /* SEGTXT */
|
||||||
|
@ -273,4 +273,4 @@ regscore(off, size, typ, score, totyp)
|
||||||
return i - 1;
|
return i - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
|
|
|
@ -54,7 +54,7 @@ R8 = ("r8",4) regvar,RREG.
|
||||||
R9 = ("r9",4) regvar,RREG.
|
R9 = ("r9",4) regvar,RREG.
|
||||||
RA = ("r10",4) regvar,RREG.
|
RA = ("r10",4) regvar,RREG.
|
||||||
RB = ("r11",4) regvar,RREG.
|
RB = ("r11",4) regvar,RREG.
|
||||||
#else REGVARS
|
#else /* REGVARS */
|
||||||
R4 = ("r4",4),REG.
|
R4 = ("r4",4),REG.
|
||||||
R5 = ("r5",4),REG.
|
R5 = ("r5",4),REG.
|
||||||
R6 = ("r6",4),REG.
|
R6 = ("r6",4),REG.
|
||||||
|
@ -63,7 +63,7 @@ R8 = ("r8",4),REG.
|
||||||
R9 = ("r9",4),REG.
|
R9 = ("r9",4),REG.
|
||||||
RA = ("r10",4),REG.
|
RA = ("r10",4),REG.
|
||||||
RB = ("r11",4),REG.
|
RB = ("r11",4),REG.
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
QR0 = ("r0",8,R0,R1),QREG.
|
QR0 = ("r0",8,R0,R1),QREG.
|
||||||
QR2 = ("r2",8,R2,R3),QREG.
|
QR2 = ("r2",8,R2,R3),QREG.
|
||||||
#ifndef REGVARS
|
#ifndef REGVARS
|
||||||
|
@ -71,14 +71,14 @@ QR4 = ("r4",8,R4,R5),QREG.
|
||||||
QR6 = ("r6",8,R6,R7),QREG.
|
QR6 = ("r6",8,R6,R7),QREG.
|
||||||
QR8 = ("r8",8,R8,R9),QREG.
|
QR8 = ("r8",8,R8,R9),QREG.
|
||||||
QRA = ("r10",8,RA,RB),QREG.
|
QRA = ("r10",8,RA,RB),QREG.
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
QR1 = ("r1",8,R1,R2),QREG.
|
QR1 = ("r1",8,R1,R2),QREG.
|
||||||
#ifndef REGVARS
|
#ifndef REGVARS
|
||||||
QR3 = ("r3",8,R3,R4),QREG.
|
QR3 = ("r3",8,R3,R4),QREG.
|
||||||
QR5 = ("r5",8,R5,R6),QREG.
|
QR5 = ("r5",8,R5,R6),QREG.
|
||||||
QR7 = ("r7",8,R7,R8),QREG.
|
QR7 = ("r7",8,R7,R8),QREG.
|
||||||
QR9 = ("r9",8,R9,RA),QREG.
|
QR9 = ("r9",8,R9,RA),QREG.
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
|
|
||||||
TOKENS:
|
TOKENS:
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ regdec1 = {REGISTER reg;} 4 cost=(0,3) "-(%[reg])"
|
||||||
regdec2 = {REGISTER reg;} 4 cost=(0,3) "-(%[reg])"
|
regdec2 = {REGISTER reg;} 4 cost=(0,3) "-(%[reg])"
|
||||||
regdec4 = {REGISTER reg;} 4 cost=(0,3) "-(%[reg])"
|
regdec4 = {REGISTER reg;} 4 cost=(0,3) "-(%[reg])"
|
||||||
regdec8 = {REGISTER reg;} 8 cost=(0,6) "-(%[reg])"
|
regdec8 = {REGISTER reg;} 8 cost=(0,6) "-(%[reg])"
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
displ1 = {REGISTER reg; STRING ind;} 4 cost=(2,6) "%[ind](%[reg])"
|
displ1 = {REGISTER reg; STRING ind;} 4 cost=(2,6) "%[ind](%[reg])"
|
||||||
displ2 = {REGISTER reg; STRING ind;} 4 cost=(2,6) "%[ind](%[reg])"
|
displ2 = {REGISTER reg; STRING ind;} 4 cost=(2,6) "%[ind](%[reg])"
|
||||||
displ4 = {REGISTER reg; STRING ind;} 4 cost=(2,6) "%[ind](%[reg])"
|
displ4 = {REGISTER reg; STRING ind;} 4 cost=(2,6) "%[ind](%[reg])"
|
||||||
|
@ -186,19 +186,19 @@ Xsource1 = regdef1 + displ1 + displdef1 +
|
||||||
source1 = Xsource1
|
source1 = Xsource1
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
+ reginc1 + regdec1
|
+ reginc1 + regdec1
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
Xsource2 = regdef2 + displ2 + displdef2 +
|
Xsource2 = regdef2 + displ2 + displdef2 +
|
||||||
EXTERNAL2 + reldef2 + CONST2 + LOCAL2 + ind2
|
EXTERNAL2 + reldef2 + CONST2 + LOCAL2 + ind2
|
||||||
source2 = Xsource2
|
source2 = Xsource2
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
+ reginc2 + regdec2
|
+ reginc2 + regdec2
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
Xsource4 = REG + regdef4 + displ4 + displdef4 + LocaLBase +
|
Xsource4 = REG + regdef4 + displ4 + displdef4 + LocaLBase +
|
||||||
EXTERNAL4 + reldef4 + CONST + DOUBLE + LOCAL4 + ind4
|
EXTERNAL4 + reldef4 + CONST + DOUBLE + LOCAL4 + ind4
|
||||||
source4 = Xsource4
|
source4 = Xsource4
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
+ RREG + reginc4 + regdec4
|
+ RREG + reginc4 + regdec4
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
dups4 = CONST + regdef1 + displ1 + LOCAL1 +
|
dups4 = CONST + regdef1 + displ1 + LOCAL1 +
|
||||||
REG + regdef2 + displ2 + LOCAL2 +
|
REG + regdef2 + displ2 + LOCAL2 +
|
||||||
RREG + regdef4 + displ4 + LOCAL4 + DOUBLE
|
RREG + regdef4 + displ4 + LOCAL4 + DOUBLE
|
||||||
|
@ -208,7 +208,7 @@ Xsource8 = QREG + regdef8 + displ8 + displdef8 +
|
||||||
source8 = Xsource8
|
source8 = Xsource8
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
+ reginc8 + regdec8
|
+ reginc8 + regdec8
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
source1or2 = source1 + source2 - ind2
|
source1or2 = source1 + source2 - ind2
|
||||||
source1or2or4 = source1or2 + source4 - (ind2 + ind4)
|
source1or2or4 = source1or2 + source4 - (ind2 + ind4)
|
||||||
source2or4 = source2 + source4 - ind4
|
source2or4 = source2 + source4 - ind4
|
||||||
|
@ -227,12 +227,12 @@ nonexist = nonexist1 + aind
|
||||||
regch4 = reginc1 + regdec1 + reginc2 + regdec2 + reginc4 + regdec4
|
regch4 = reginc1 + regdec1 + reginc2 + regdec2 + reginc4 + regdec4
|
||||||
regch8 = reginc8 + regdec8
|
regch8 = reginc8 + regdec8
|
||||||
regch = regch4 + regch8
|
regch = regch4 + regch8
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
displs = displ1 + displ2 + displ4 + displ8 +
|
displs = displ1 + displ2 + displ4 + displ8 +
|
||||||
regdef1 + regdef2 + regdef4 + regdef8
|
regdef1 + regdef2 + regdef4 + regdef8
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
+ regch
|
+ regch
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
displdefs = displdef1 + displdef2 + displdef4 + displdef8
|
displdefs = displdef1 + displdef2 + displdef4 + displdef8
|
||||||
EXTERNALS = EXTERNAL1 + EXTERNAL2 + EXTERNAL4 + EXTERNAL8
|
EXTERNALS = EXTERNAL1 + EXTERNAL2 + EXTERNAL4 + EXTERNAL8
|
||||||
LOCALS = LOCAL1 + LOCAL2 + LOCAL4 + LOCAL8
|
LOCALS = LOCAL1 + LOCAL2 + LOCAL4 + LOCAL8
|
||||||
|
@ -248,10 +248,10 @@ extandloc = externals + LOCALS
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
reg4 = REG + RREG + LocaLBase
|
reg4 = REG + RREG + LocaLBase
|
||||||
reg8 = QREG
|
reg8 = QREG
|
||||||
#else REGVARS
|
#else /* REGVARS */
|
||||||
reg4 = REG
|
reg4 = REG
|
||||||
reg8 = QREG
|
reg8 = QREG
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sreg4 = REG * SCRATCH
|
sreg4 = REG * SCRATCH
|
||||||
sreg8 = QREG * SCRATCH
|
sreg8 = QREG * SCRATCH
|
||||||
bigsource4 = source1or2or4 + nonexist + ind2 + ind4
|
bigsource4 = source1or2or4 + nonexist + ind2 + ind4
|
||||||
|
@ -262,9 +262,9 @@ scr = ALL - (EXTERNALS + LOCALS + ADDR_LOCAL + ADDR_EXTERNAL + CONST
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
#define REMEXTANDLOC remove(externals) remove(LOCALS,inreg(%[num])==0)
|
#define REMEXTANDLOC remove(externals) remove(LOCALS,inreg(%[num])==0)
|
||||||
#define REMREG(x) remove(regch,%[reg]==regvar(x))
|
#define REMREG(x) remove(regch,%[reg]==regvar(x))
|
||||||
#else REGVARS
|
#else /* REGVARS */
|
||||||
#define REMEXTANDLOC remove(extandloc)
|
#define REMEXTANDLOC remove(extandloc)
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
|
|
||||||
CODE:
|
CODE:
|
||||||
|
|
||||||
|
@ -278,13 +278,13 @@ loc | | | {CONST4,$1} | |
|
||||||
ldc | | | {CONST8,$1} | |
|
ldc | | | {CONST8,$1} | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lol inreg($1)==2 | | REMREG($1) | regvar($1) | |
|
lol inreg($1)==2 | | REMREG($1) | regvar($1) | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
lol $1 < 0 | | | {LOCAL4,LB,$1,4} | |
|
lol $1 < 0 | | | {LOCAL4,LB,$1,4} | |
|
||||||
lol $1 >= 0 | | | {LOCAL4,AP,$1,4} | |
|
lol $1 >= 0 | | | {LOCAL4,AP,$1,4} | |
|
||||||
loe | | | {EXTERNAL4,$1} | |
|
loe | | | {EXTERNAL4,$1} | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lil inreg($1)==2 | | REMREG($1) | {regdef4,regvar($1)} | |
|
lil inreg($1)==2 | | REMREG($1) | {regdef4,regvar($1)} | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
lil $1 < 0 | | | {displdef4,LB,tostring($1)} | |
|
lil $1 < 0 | | | {displdef4,LB,tostring($1)} | |
|
||||||
lil $1 >= 0 | | | {displdef4,AP,tostring($1)} | |
|
lil $1 >= 0 | | | {displdef4,AP,tostring($1)} | |
|
||||||
lof | | | | adp $1 loi 4 |
|
lof | | | | adp $1 loi 4 |
|
||||||
|
@ -407,7 +407,7 @@ stl inreg($1)==2 | NC bigsource4 |
|
||||||
move(%[1],regvar($1)) | | |
|
move(%[1],regvar($1)) | | |
|
||||||
... | STACK |
|
... | STACK |
|
||||||
"movl\t(sp)+,%(regvar($1)%)" | | | (3,7)
|
"movl\t(sp)+,%(regvar($1)%)" | | | (3,7)
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
stl $1 < 0 | NC bigsource4 |
|
stl $1 < 0 | NC bigsource4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
remove(LOCALS,%[num] <= $1+3 && %[num]+%[size] > $1)
|
remove(LOCALS,%[num] <= $1+3 && %[num]+%[size] > $1)
|
||||||
|
@ -431,7 +431,7 @@ sil inreg($1)==2 | NC bigsource4 |
|
||||||
move(%[1],{regdef4,regvar($1)}) | | |
|
move(%[1],{regdef4,regvar($1)}) | | |
|
||||||
... | STACK |
|
... | STACK |
|
||||||
"movl\t(sp)+,(%(regvar($1)%))" | | | (3,10)
|
"movl\t(sp)+,(%(regvar($1)%))" | | | (3,10)
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sil $1 < 0 | NC bigsource4 |
|
sil $1 < 0 | NC bigsource4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
move(%[1],{displdef4,LB,tostring($1)}) | | |
|
move(%[1],{displdef4,LB,tostring($1)}) | | |
|
||||||
|
@ -663,7 +663,7 @@ adi stl $1==4 && inreg($2)==2
|
||||||
"addl3\t%[1],%[2],%(regvar($2)%)"
|
"addl3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
adi stl $1==4 && $2<0
|
adi stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -687,7 +687,7 @@ adi lol stf $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"addl3\t%[1],%[2],$3(%(regvar($2)%))"
|
"addl3\t%[1],%[2],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | |
|
setcc({displ4,regvar($2),tostring($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
adi sil $1==4 && $2<0
|
adi sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -721,7 +721,7 @@ sbi stl $1==4 && inreg($2)==2
|
||||||
"subl3\t%[1],%[2],%(regvar($2)%)"
|
"subl3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sbi stl $1==4 && $2<0
|
sbi stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -745,7 +745,7 @@ sbi lol stf $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"subl3\t%[1],%[2],$3(%(regvar($2)%))"
|
"subl3\t%[1],%[2],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | |
|
setcc({displ4,regvar($2),tostring($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sbi sil $1==4 && $2<0
|
sbi sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -783,7 +783,7 @@ mli stl $1==4 && inreg($2)==2
|
||||||
"mull3\t%[1],%[2],%(regvar($2)%)"
|
"mull3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
mli stl $1==4 && $2<0
|
mli stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -807,7 +807,7 @@ mli lol stf $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"mull3\t%[1],%[2],$3(%(regvar($2)%))"
|
"mull3\t%[1],%[2],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | |
|
setcc({displ4,regvar($2),tostring($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
mli sil $1==4 && $2<0
|
mli sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -841,7 +841,7 @@ dvi stl $1==4 && inreg($2)==2
|
||||||
"divl3\t%[1],%[2],%(regvar($2)%)"
|
"divl3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
dvi stl $1==4 && $2<0
|
dvi stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -865,7 +865,7 @@ dvi lol stf $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"divl3\t%[1],%[2],$3(%(regvar($2)%))"
|
"divl3\t%[1],%[2],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | |
|
setcc({displ4,regvar($2),tostring($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
dvi sil $1==4 && $2<0
|
dvi sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -900,7 +900,7 @@ rmi stl $1==4 && inreg($2)==2
|
||||||
"subl3\t%[a],%[2],%(regvar($2)%)"
|
"subl3\t%[a],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
rmi stl $1==4 && $2<0
|
rmi stl $1==4 && $2<0
|
||||||
| Xsource4 Xsource4 |
|
| Xsource4 Xsource4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -936,7 +936,7 @@ rmi lol stf $1==4 && inreg($2)==2
|
||||||
"mull2\t%[1],%[a]"
|
"mull2\t%[1],%[a]"
|
||||||
"subl3\t%[a],%[2],$3(%(regvar($2)%))"
|
"subl3\t%[a],%[2],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | |
|
setcc({displ4,regvar($2),tostring($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
rmi sil $1==4 && $2<0
|
rmi sil $1==4 && $2<0
|
||||||
| Xsource4 Xsource4 |
|
| Xsource4 Xsource4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -976,7 +976,7 @@ ngi stl $1==4 && inreg($2)==2
|
||||||
"mnegl\t%[1],%(regvar($2)%)"
|
"mnegl\t%[1],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ngi stl $1==4 && $2<0
|
ngi stl $1==4 && $2<0
|
||||||
| source4 |
|
| source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1000,7 +1000,7 @@ ngi lol stf $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"mnegl\t%[1],$3(%(regvar($2)%))"
|
"mnegl\t%[1],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | |
|
setcc({displ4,regvar($2),tostring($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ngi sil $1==4 && $2<0
|
ngi sil $1==4 && $2<0
|
||||||
| source4 |
|
| source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1030,7 +1030,7 @@ sli stl $1==4 && inreg($2)==2
|
||||||
"ashl\t%[1],%[2],%(regvar($2)%)"
|
"ashl\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sli stl $1==4 && $2<0
|
sli stl $1==4 && $2<0
|
||||||
| source1or2or4 source4 |
|
| source1or2or4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1054,7 +1054,7 @@ sli lol stf $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"ashl\t%[1],%[2],$3(%(regvar($2)%))"
|
"ashl\t%[1],%[2],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | |
|
setcc({displ4,regvar($2),tostring($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sli sil $1==4 && $2<0
|
sli sil $1==4 && $2<0
|
||||||
| source1or2or4 source4 |
|
| source1or2or4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1097,7 +1097,7 @@ sri stl $1==4 && inreg($2)==2
|
||||||
"ashl\t$$%(0-%[1.num]%),%[2],%(regvar($2)%)"
|
"ashl\t$$%(0-%[1.num]%),%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | | (6,10)+%[1]+%[2]
|
setcc(regvar($2)) | | | (6,10)+%[1]+%[2]
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sri stl $1==4 && $2<0
|
sri stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1147,7 +1147,7 @@ sri lol stf $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"ashl\t$$%(0-%[1.num]%),%[2],$3(%(regvar($2)%))"
|
"ashl\t$$%(0-%[1.num]%),%[2],$3(%(regvar($2)%))"
|
||||||
setcc({displ4,regvar($2),tostring($3)}) | | | (6,10)+%[1]+%[2]
|
setcc({displ4,regvar($2),tostring($3)}) | | | (6,10)+%[1]+%[2]
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sri sil $1==4 && $2<0
|
sri sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1255,7 +1255,7 @@ adf stl $1==4 && inreg($2)==2
|
||||||
remove(regvar($2))
|
remove(regvar($2))
|
||||||
"addf3\t%[1],%[2],%(regvar($2)%)"
|
"addf3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2)) | | |
|
erase(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
adf stl $1==4 && $2<0
|
adf stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1274,7 +1274,7 @@ adf sil $1==4 && inreg($2)==2
|
||||||
remove(regvar($2))
|
remove(regvar($2))
|
||||||
"addf3\t%[1],%[2],(%(regvar($2)%))"
|
"addf3\t%[1],%[2],(%(regvar($2)%))"
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
adf sil $1==4 && $2<0
|
adf sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1289,7 +1289,7 @@ adf ste $1==4 | source4 source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"addf3\t%[1],%[2],$2"
|
"addf3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL4,$2}) | | |
|
setcc({EXTERNAL4,$2}) | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
adf $1==8 | source8 source8 |
|
adf $1==8 | source8 source8 |
|
||||||
allocate(%[1],%[2],QREG)
|
allocate(%[1],%[2],QREG)
|
||||||
"addd3\t%[1],%[2],%[a]"
|
"addd3\t%[1],%[2],%[a]"
|
||||||
|
@ -1319,7 +1319,7 @@ adf sde $1==8 | source8 source8 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"addd3\t%[1],%[2],$2"
|
"addd3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL8,$2}) | | |
|
setcc({EXTERNAL8,$2}) | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
adf !defined($1) | source4 |
|
adf !defined($1) | source4 |
|
||||||
remove(ALL)
|
remove(ALL)
|
||||||
move(%[1],R0)
|
move(%[1],R0)
|
||||||
|
@ -1340,7 +1340,7 @@ sbf stl $1==4 && inreg($2)==2
|
||||||
"subf3\t%[1],%[2],%(regvar($2)%)"
|
"subf3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sbf stl $1==4 && $2<0
|
sbf stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1359,7 +1359,7 @@ sbf sil $1==4 && inreg($2)==2
|
||||||
remove(regvar($2))
|
remove(regvar($2))
|
||||||
"subf3\t%[1],%[2],(%(regvar($2)%))"
|
"subf3\t%[1],%[2],(%(regvar($2)%))"
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
sbf sil $1==4 && $2<0
|
sbf sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1374,7 +1374,7 @@ sbf ste $1==4 | source4 source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"subf3\t%[1],%[2],$2"
|
"subf3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL4,$2}) | | |
|
setcc({EXTERNAL4,$2}) | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
sbf $1==8 | source8 source8 |
|
sbf $1==8 | source8 source8 |
|
||||||
allocate(%[1],%[2],QREG)
|
allocate(%[1],%[2],QREG)
|
||||||
"subd3\t%[1],%[2],%[a]"
|
"subd3\t%[1],%[2],%[a]"
|
||||||
|
@ -1400,7 +1400,7 @@ sbf sde $1==8 | source8 source8 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"subd3\t%[1],%[2],$2"
|
"subd3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL8,$2}) | | |
|
setcc({EXTERNAL8,$2}) | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
sbf !defined($1) | source1or2or4 |
|
sbf !defined($1) | source1or2or4 |
|
||||||
remove(ALL)
|
remove(ALL)
|
||||||
move(%[1],R0)
|
move(%[1],R0)
|
||||||
|
@ -1424,7 +1424,7 @@ mlf stl $1==4 && inreg($2)==2
|
||||||
remove(regvar($2))
|
remove(regvar($2))
|
||||||
"mulf3\t%[1],%[2],%(regvar($2)%)"
|
"mulf3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2)) | | |
|
erase(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
mlf stl $1==4 && $2<0
|
mlf stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1443,7 +1443,7 @@ mlf sil $1==4 && inreg($2)==2
|
||||||
remove(regvar($2))
|
remove(regvar($2))
|
||||||
"mulf3\t%[1],%[2],(%(regvar($2)%))"
|
"mulf3\t%[1],%[2],(%(regvar($2)%))"
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
mlf sil $1==4 && $2<0
|
mlf sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1458,7 +1458,7 @@ mlf ste $1==4 | source4 source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"mulf3\t%[1],%[2],$2"
|
"mulf3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL4,$2}) | | |
|
setcc({EXTERNAL4,$2}) | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
mlf $1==8 | source8 source8 |
|
mlf $1==8 | source8 source8 |
|
||||||
allocate(%[1],%[2],QREG)
|
allocate(%[1],%[2],QREG)
|
||||||
"muld3\t%[1],%[2],%[a]"
|
"muld3\t%[1],%[2],%[a]"
|
||||||
|
@ -1488,7 +1488,7 @@ mlf sde $1==8 | source8 source8 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"muld3\t%[1],%[2],$2"
|
"muld3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL8,$2}) | | |
|
setcc({EXTERNAL8,$2}) | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
mlf !defined($1) | source1or2or4 |
|
mlf !defined($1) | source1or2or4 |
|
||||||
remove(ALL)
|
remove(ALL)
|
||||||
move(%[1],R0)
|
move(%[1],R0)
|
||||||
|
@ -1509,7 +1509,7 @@ dvf stl $1==4 && inreg($2)==2
|
||||||
"divf3\t%[1],%[2],%(regvar($2)%)"
|
"divf3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
dvf stl $1==4 && $2<0
|
dvf stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1528,7 +1528,7 @@ dvf sil $1==4 && inreg($2)==2
|
||||||
remove(regvar($2))
|
remove(regvar($2))
|
||||||
"divf3\t%[1],%[2],(%(regvar($2)%))"
|
"divf3\t%[1],%[2],(%(regvar($2)%))"
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
dvf sil $1==4 && $2<0
|
dvf sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1543,7 +1543,7 @@ dvf ste $1==4 | source4 source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"divf3\t%[1],%[2],$2"
|
"divf3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL4,$2}) | | |
|
setcc({EXTERNAL4,$2}) | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
dvf $1==8 | source8 source8 |
|
dvf $1==8 | source8 source8 |
|
||||||
allocate(%[1],%[2],QREG)
|
allocate(%[1],%[2],QREG)
|
||||||
"divd3\t%[1],%[2],%[a]"
|
"divd3\t%[1],%[2],%[a]"
|
||||||
|
@ -1569,7 +1569,7 @@ dvf sde $1==8 | source8 source8 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"divd3\t%[1],%[2],$2"
|
"divd3\t%[1],%[2],$2"
|
||||||
setcc({EXTERNAL8,$2}) | | |
|
setcc({EXTERNAL8,$2}) | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
dvf !defined($1) | source1or2or4 |
|
dvf !defined($1) | source1or2or4 |
|
||||||
remove(ALL)
|
remove(ALL)
|
||||||
move(%[1],R0)
|
move(%[1],R0)
|
||||||
|
@ -1586,7 +1586,7 @@ ngf stl $1==4 && inreg($2)==2
|
||||||
"mnegf\t%[1],%(regvar($2)%)"
|
"mnegf\t%[1],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ngf stl $1==4 && $2<0
|
ngf stl $1==4 && $2<0
|
||||||
| source4 |
|
| source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -1605,7 +1605,7 @@ ngf sil $1==4 && inreg($2)==2
|
||||||
remove(regvar($2))
|
remove(regvar($2))
|
||||||
"mnegf\t%[1],(%(regvar($2)%))"
|
"mnegf\t%[1],(%(regvar($2)%))"
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ngf sil $1==4 && $2<0
|
ngf sil $1==4 && $2<0
|
||||||
| source4 |
|
| source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -1620,7 +1620,7 @@ ngf ste $1==4 | source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"mnegf\t%[1],$2"
|
"mnegf\t%[1],$2"
|
||||||
setcc({EXTERNAL4,$2}) | | |
|
setcc({EXTERNAL4,$2}) | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
ngf $1==8 | source8 |
|
ngf $1==8 | source8 |
|
||||||
allocate(%[1],QREG)
|
allocate(%[1],QREG)
|
||||||
"mnegd\t%[1],%[a]"
|
"mnegd\t%[1],%[a]"
|
||||||
|
@ -1642,7 +1642,7 @@ ngf sde $1==8 | source8 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"mnegd\t%[1],$2"
|
"mnegd\t%[1],$2"
|
||||||
setcc({EXTERNAL8,$2}) | | |
|
setcc({EXTERNAL8,$2}) | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
ngf !defined($1) | source1or2or4 |
|
ngf !defined($1) | source1or2or4 |
|
||||||
remove(ALL)
|
remove(ALL)
|
||||||
move(%[1],R0)
|
move(%[1],R0)
|
||||||
|
@ -1891,7 +1891,7 @@ lol adp stl $1==$3 && inreg($1)==2
|
||||||
| | remove(regvar($1))
|
| | remove(regvar($1))
|
||||||
"addl2\t$$$2,%(regvar($1)%)"
|
"addl2\t$$$2,%(regvar($1)%)"
|
||||||
erase(regvar($1)) | | |
|
erase(regvar($1)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
lol adp stl $1==$3 && $1<0
|
lol adp stl $1==$3 && $1<0
|
||||||
| | remove(displaced)
|
| | remove(displaced)
|
||||||
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
||||||
|
@ -1977,7 +1977,7 @@ inl inreg($1)==2 | | remove(regvar($1))
|
||||||
"incl\t%(regvar($1)%)"
|
"incl\t%(regvar($1)%)"
|
||||||
erase(regvar($1))
|
erase(regvar($1))
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
inl $1<0 | | remove(displaced)
|
inl $1<0 | | remove(displaced)
|
||||||
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
||||||
"incl\t$1(fp)"
|
"incl\t$1(fp)"
|
||||||
|
@ -1993,7 +1993,7 @@ lol inl $1==$2 && inreg($1)==2
|
||||||
"incl\t%(regvar($1)%)"
|
"incl\t%(regvar($1)%)"
|
||||||
erase(regvar($1))
|
erase(regvar($1))
|
||||||
setcc(regvar($1)) | %[a] | |
|
setcc(regvar($1)) | %[a] | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ine | | remove(externals)
|
ine | | remove(externals)
|
||||||
"incl\t$1"
|
"incl\t$1"
|
||||||
setcc({EXTERNAL4,$1}) | | |
|
setcc({EXTERNAL4,$1}) | | |
|
||||||
|
@ -2002,7 +2002,7 @@ del inreg($1)==2 | | remove(regvar($1))
|
||||||
"decl\t%(regvar($1)%)"
|
"decl\t%(regvar($1)%)"
|
||||||
erase(regvar($1))
|
erase(regvar($1))
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
del $1<0 | | remove(displaced)
|
del $1<0 | | remove(displaced)
|
||||||
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
||||||
"decl\t$1(fp)"
|
"decl\t$1(fp)"
|
||||||
|
@ -2018,7 +2018,7 @@ lol del $1==$2 && inreg($1)==2
|
||||||
"decl\t%(regvar($1)%)"
|
"decl\t%(regvar($1)%)"
|
||||||
erase(regvar($1))
|
erase(regvar($1))
|
||||||
setcc(regvar($1)) | %[a] | |
|
setcc(regvar($1)) | %[a] | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
dee | | remove(externals)
|
dee | | remove(externals)
|
||||||
"decl\t$1"
|
"decl\t$1"
|
||||||
setcc({EXTERNAL4,$1}) | | |
|
setcc({EXTERNAL4,$1}) | | |
|
||||||
|
@ -2027,7 +2027,7 @@ zrl inreg($1)==2 | | remove(regvar($1))
|
||||||
"clrl\t%(regvar($1)%)"
|
"clrl\t%(regvar($1)%)"
|
||||||
erase(regvar($1))
|
erase(regvar($1))
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
zrl $1<0 | | remove(displaced)
|
zrl $1<0 | | remove(displaced)
|
||||||
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
remove(LOCALS,%[num]<=$1+3 && %[num]+%[size]>$1)
|
||||||
"clrl\t$1(fp)"
|
"clrl\t$1(fp)"
|
||||||
|
@ -2039,7 +2039,7 @@ zrl $1>=0 | | remove(displaced)
|
||||||
zrl zrl $1==$2+4 && $1<0
|
zrl zrl $1==$2+4 && $1<0
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
&& inreg($1)<2 && inreg($2)<2
|
&& inreg($1)<2 && inreg($2)<2
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
| | remove(displaced)
|
| | remove(displaced)
|
||||||
remove(LOCALS,%[num]<=$2+7 && %[num]+%[size]>$2)
|
remove(LOCALS,%[num]<=$2+7 && %[num]+%[size]>$2)
|
||||||
"clrq\t$2(fp)"
|
"clrq\t$2(fp)"
|
||||||
|
@ -2047,7 +2047,7 @@ zrl zrl $1==$2+4 && $1<0
|
||||||
zrl zrl $1==$2+4 && $1>=0
|
zrl zrl $1==$2+4 && $1>=0
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
&& inreg($1)<2 && inreg($2)<2
|
&& inreg($1)<2 && inreg($2)<2
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
| | remove(displaced)
|
| | remove(displaced)
|
||||||
remove(LOCALS,%[num]<=$2+7 && %[num]+%[size]>$2)
|
remove(LOCALS,%[num]<=$2+7 && %[num]+%[size]>$2)
|
||||||
"clrq\t$2(ap)"
|
"clrq\t$2(ap)"
|
||||||
|
@ -2070,10 +2070,10 @@ zer defined($1) | STACK |
|
||||||
#ifdef LOCLABS
|
#ifdef LOCLABS
|
||||||
"1:\tclrl\t-(sp)"
|
"1:\tclrl\t-(sp)"
|
||||||
"sobgtr\tr0,1b"
|
"sobgtr\tr0,1b"
|
||||||
#else LOCLABS
|
#else /* LOCLABS */
|
||||||
"clrl\t-(sp)"
|
"clrl\t-(sp)"
|
||||||
"sobgtr\tr0,.-2"
|
"sobgtr\tr0,.-2"
|
||||||
#endif LOCLABS
|
#endif /* LOCLABS */
|
||||||
erase(R0) | | |
|
erase(R0) | | |
|
||||||
zer !defined($1) | source1or2or4 |
|
zer !defined($1) | source1or2or4 |
|
||||||
remove(ALL)
|
remove(ALL)
|
||||||
|
@ -2081,10 +2081,10 @@ zer !defined($1) | source1or2or4 |
|
||||||
#ifdef LOCLABS
|
#ifdef LOCLABS
|
||||||
"1:\tclrl\t-(sp)"
|
"1:\tclrl\t-(sp)"
|
||||||
"sobgtr\tr0,1b"
|
"sobgtr\tr0,1b"
|
||||||
#else LOCLABS
|
#else /* LOCLABS */
|
||||||
"clrl\t-(sp)"
|
"clrl\t-(sp)"
|
||||||
"sobgtr\tr0,.-2"
|
"sobgtr\tr0,.-2"
|
||||||
#endif LOCLABS
|
#endif /* LOCLABS */
|
||||||
erase(R0) | | |
|
erase(R0) | | |
|
||||||
|
|
||||||
/********************************
|
/********************************
|
||||||
|
@ -2115,7 +2115,7 @@ loc loc cii stl $1==1 && $2==4 && inreg($4)==2
|
||||||
"cvtbl\t%[1],%(regvar($4)%)"
|
"cvtbl\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($1))
|
erase(regvar($1))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
loc loc cii stl $1==1 && $2==4 && $4<0
|
loc loc cii stl $1==1 && $2==4 && $4<0
|
||||||
| source1or2or4 |
|
| source1or2or4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2143,7 +2143,7 @@ loc loc cii stl $1==2 && $2==4 && inreg($4)==2
|
||||||
"cvtwl\t%[1],%(regvar($4)%)"
|
"cvtwl\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($4))
|
erase(regvar($4))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
loc loc cii stl $1==2 && $2==4 && $4<0
|
loc loc cii stl $1==2 && $2==4 && $4<0
|
||||||
| source2or4 |
|
| source2or4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2174,7 +2174,7 @@ loc loc cfi stl $1==4 && $2==4 && inreg($4)==2
|
||||||
"cvtfl\t%[1],%(regvar($4)%)"
|
"cvtfl\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($4))
|
erase(regvar($4))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
loc loc cfi stl $1==4 && $2==4 && $4<0
|
loc loc cfi stl $1==4 && $2==4 && $4<0
|
||||||
| source4 |
|
| source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2191,7 +2191,7 @@ loc loc cfi ste $1==4 && $2==4 | source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"cvtfl\t%[1],$4"
|
"cvtfl\t%[1],$4"
|
||||||
setcc({EXTERNAL4,$4}) | | |
|
setcc({EXTERNAL4,$4}) | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
loc loc cfi $1==4 && $2==4 | source4 |
|
loc loc cfi $1==4 && $2==4 | source4 |
|
||||||
allocate(%[1],REG)
|
allocate(%[1],REG)
|
||||||
"cvtfl\t%[1],%[a]"
|
"cvtfl\t%[1],%[a]"
|
||||||
|
@ -2204,7 +2204,7 @@ loc loc cfi stl $1==8 && $2==4 && inreg($4)==2
|
||||||
"cvtdl\t%[1],%(regvar($4)%)"
|
"cvtdl\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($4))
|
erase(regvar($4))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
loc loc cfi stl $1==8 && $2==4 && $4<0
|
loc loc cfi stl $1==8 && $2==4 && $4<0
|
||||||
| source8 |
|
| source8 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2221,7 +2221,7 @@ loc loc cfi ste $1==8 && $2==4 | source8 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"cvtdl\t%[1],$4"
|
"cvtdl\t%[1],$4"
|
||||||
setcc({EXTERNAL4,$4}) | | |
|
setcc({EXTERNAL4,$4}) | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
loc loc cfi $1==8 && $2==4 | source8 |
|
loc loc cfi $1==8 && $2==4 | source8 |
|
||||||
allocate(%[1],REG)
|
allocate(%[1],REG)
|
||||||
"cvtdl\t%[1],%[a]"
|
"cvtdl\t%[1],%[a]"
|
||||||
|
@ -2234,7 +2234,7 @@ loc loc cif stl $1==4 && $2==4 && inreg($4)==2
|
||||||
"cvtlf\t%[1],%(regvar($4)%)"
|
"cvtlf\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($4))
|
erase(regvar($4))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
loc loc cif stl $1==4 && $2==4 && $4<0
|
loc loc cif stl $1==4 && $2==4 && $4<0
|
||||||
| source4 |
|
| source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2248,7 +2248,7 @@ loc loc cif stl $1==4 && $2==4 && $4>=0
|
||||||
loc loc cif ste $1==4 && $2==4 | source4 |
|
loc loc cif ste $1==4 && $2==4 | source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"cvtlf\t%[1],$4" | | |
|
"cvtlf\t%[1],$4" | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
loc loc cif $1==4 && $2==4 | source4 |
|
loc loc cif $1==4 && $2==4 | source4 |
|
||||||
allocate(%[1],REG)
|
allocate(%[1],REG)
|
||||||
"cvtlf\t%[1],%[a]" | %[a] | |
|
"cvtlf\t%[1],%[a]" | %[a] | |
|
||||||
|
@ -2261,7 +2261,7 @@ loc loc cif sdl $1==4 && $2==8 && inreg($4)==2
|
||||||
"cvtld\t%[1],%(regvar($4)%)"
|
"cvtld\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($4))
|
erase(regvar($4))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
*/
|
*/
|
||||||
loc loc cif sdl $1==4 && $2==8 && $4<0
|
loc loc cif sdl $1==4 && $2==8 && $4<0
|
||||||
| source4 |
|
| source4 |
|
||||||
|
@ -2276,7 +2276,7 @@ loc loc cif sdl $1==4 && $2==8 && $4>=0
|
||||||
loc loc cif sde $1==4 && $2==8 | source4 |
|
loc loc cif sde $1==4 && $2==8 | source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"cvtld\t%[1],$4" | | |
|
"cvtld\t%[1],$4" | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
loc loc cif $1==4 && $2==8 | source4 |
|
loc loc cif $1==4 && $2==8 | source4 |
|
||||||
allocate(%[1],QREG)
|
allocate(%[1],QREG)
|
||||||
"cvtld\t%[1],%[a]" | %[a] | |
|
"cvtld\t%[1],%[a]" | %[a] | |
|
||||||
|
@ -2295,7 +2295,7 @@ loc loc cff sdl $1==4 && $2==8 && inreg($4)==2
|
||||||
"cvtfd\t%[1],%(regvar($4)%)"
|
"cvtfd\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($4))
|
erase(regvar($4))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
*/
|
*/
|
||||||
loc loc cff sdl $1==4 && $2==8 && $4<0
|
loc loc cff sdl $1==4 && $2==8 && $4<0
|
||||||
| source4 |
|
| source4 |
|
||||||
|
@ -2310,7 +2310,7 @@ loc loc cff sdl $1==4 && $2==8 && $4>=0
|
||||||
loc loc cff sde $1==4 && $2==8 | source4 |
|
loc loc cff sde $1==4 && $2==8 | source4 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"cvtfd\t%[1],$4" | | |
|
"cvtfd\t%[1],$4" | | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
loc loc cff $1==4 && $2==8 | source4 |
|
loc loc cff $1==4 && $2==8 | source4 |
|
||||||
allocate(%[1],QREG)
|
allocate(%[1],QREG)
|
||||||
"cvtfd\t%[1],%[a]" | %[a] | |
|
"cvtfd\t%[1],%[a]" | %[a] | |
|
||||||
|
@ -2322,7 +2322,7 @@ loc loc cff stl $1==8 && $2==4 && inreg($4)==2
|
||||||
"cvtdf\t%[1],%(regvar($4)%)"
|
"cvtdf\t%[1],%(regvar($4)%)"
|
||||||
erase(regvar($4))
|
erase(regvar($4))
|
||||||
setcc(regvar($4)) | | |
|
setcc(regvar($4)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
loc loc cff stl $1==8 && $2==4 && $4<0
|
loc loc cff stl $1==8 && $2==4 && $4<0
|
||||||
| source8 |
|
| source8 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2336,7 +2336,7 @@ loc loc cff stl $1==8 && $2==4 && $4>=0
|
||||||
loc loc cff ste $1==8 && $2==4 | source8 |
|
loc loc cff ste $1==8 && $2==4 | source8 |
|
||||||
remove(externals)
|
remove(externals)
|
||||||
"cvtdf\t%[1],$4" | | |
|
"cvtdf\t%[1],$4" | | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
loc loc cff $1==8 && $2==4 | source8 |
|
loc loc cff $1==8 && $2==4 | source8 |
|
||||||
allocate(%[1],REG)
|
allocate(%[1],REG)
|
||||||
"cvtdf\t%[1],%[a]" | %[a] | |
|
"cvtdf\t%[1],%[a]" | %[a] | |
|
||||||
|
@ -2396,7 +2396,7 @@ and stl $1==4 && inreg($2)==2
|
||||||
"bicl3\t$$~%[2.num],%[1],%(regvar($2)%)"
|
"bicl3\t$$~%[2.num],%[1],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | | (4,4)+%[1]+%[2]
|
setcc(regvar($2)) | | | (4,4)+%[1]+%[2]
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
and stl $1==4 && $2<0
|
and stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2452,7 +2452,7 @@ and sil $1==4 && inreg($2)==2
|
||||||
"bicl3\t$$~%[2.num],%[1],(%(regvar($2)%))"
|
"bicl3\t$$~%[2.num],%[1],(%(regvar($2)%))"
|
||||||
setcc({regdef4,regvar($2)})
|
setcc({regdef4,regvar($2)})
|
||||||
| | | (6,12)+%[1]+%[2]
|
| | | (6,12)+%[1]+%[2]
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
and sil $1==4 && $2<0
|
and sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -2537,7 +2537,7 @@ ior stl $1==4 && inreg($2)==2
|
||||||
"bisl3\t%[1],%[2],%(regvar($2)%)"
|
"bisl3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ior stl $1==4 && $2<0
|
ior stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2556,7 +2556,7 @@ ior sil $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"bisl3\t%[1],%[2],(%(regvar($2)%))"
|
"bisl3\t%[1],%[2],(%(regvar($2)%))"
|
||||||
setcc({regdef4,regvar($2)}) | | |
|
setcc({regdef4,regvar($2)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ior sil $1==4 && $2<0
|
ior sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -2603,7 +2603,7 @@ xor stl $1==4 && inreg($2)==2
|
||||||
"xorl3\t%[1],%[2],%(regvar($2)%)"
|
"xorl3\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
xor stl $1==4 && $2<0
|
xor stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2622,7 +2622,7 @@ xor sil $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"xorl3\t%[1],%[2],(%(regvar($2)%))"
|
"xorl3\t%[1],%[2],(%(regvar($2)%))"
|
||||||
setcc({regdef4,regvar($2)}) | | |
|
setcc({regdef4,regvar($2)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
xor sil $1==4 && $2<0
|
xor sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -2657,7 +2657,7 @@ com stl $1==4 && inreg($2)==2
|
||||||
"mcoml\t%[1],%(regvar($2)%)"
|
"mcoml\t%[1],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
com stl $1==4 && $2<0
|
com stl $1==4 && $2<0
|
||||||
| source4 |
|
| source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2676,7 +2676,7 @@ com sil $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"mcoml\t%[1],(%(regvar($2)%))"
|
"mcoml\t%[1],(%(regvar($2)%))"
|
||||||
setcc({regdef4,regvar($2)}) | | |
|
setcc({regdef4,regvar($2)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
com sil $1==4 && $2<0
|
com sil $1==4 && $2<0
|
||||||
| source4 |
|
| source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -2712,7 +2712,7 @@ rol stl $1==4 && inreg($2)==2
|
||||||
"rotl\t%[1],%[2],%(regvar($2)%)"
|
"rotl\t%[1],%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
rol stl $1==4 && $2<0
|
rol stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2731,7 +2731,7 @@ rol sil $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"rotl\t%[1],%[2],(%(regvar($2)%))"
|
"rotl\t%[1],%[2],(%(regvar($2)%))"
|
||||||
setcc({regdef4,regvar($2)}) | | |
|
setcc({regdef4,regvar($2)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
rol sil $1==4 && $2<0
|
rol sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -2774,7 +2774,7 @@ ror stl $1==4 && inreg($2)==2
|
||||||
"rotl\t$$%(32-%[1.num]%),%[2],%(regvar($2)%)"
|
"rotl\t$$%(32-%[1.num]%),%[2],%(regvar($2)%)"
|
||||||
erase(regvar($2))
|
erase(regvar($2))
|
||||||
setcc(regvar($2)) | | |
|
setcc(regvar($2)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ror stl $1==4 && $2<0
|
ror stl $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2813,7 +2813,7 @@ ror sil $1==4 && inreg($2)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"rotl\t$$%(32-%[1.num]%),%[2],(%(regvar($2)%))"
|
"rotl\t$$%(32-%[1.num]%),%[2],(%(regvar($2)%))"
|
||||||
setcc({regdef4,regvar($2)}) | | |
|
setcc({regdef4,regvar($2)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
ror sil $1==4 && $2<0
|
ror sil $1==4 && $2<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -2867,7 +2867,7 @@ com and stl $1==4 && $2==4 && inreg($3)==2
|
||||||
"bicl3\t%[1],%[2],%(regvar($3)%)"
|
"bicl3\t%[1],%[2],%(regvar($3)%)"
|
||||||
erase(regvar($3))
|
erase(regvar($3))
|
||||||
setcc(regvar($3)) | | |
|
setcc(regvar($3)) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
com and stl $1==4 && $2==4 && $3<0
|
com and stl $1==4 && $2==4 && $3<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
remove(displaced)
|
remove(displaced)
|
||||||
|
@ -2886,7 +2886,7 @@ com and sil $1==4 && $2==4 && inreg($3)==2
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
"bicl3\t%[1],%[2],(%(regvar($3)%))"
|
"bicl3\t%[1],%[2],(%(regvar($3)%))"
|
||||||
setcc({regdef4,regvar($3)}) | | |
|
setcc({regdef4,regvar($3)}) | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
com and sil $1==4 && $2==4 && $3<0
|
com and sil $1==4 && $2==4 && $3<0
|
||||||
| source4 source4 |
|
| source4 source4 |
|
||||||
REMEXTANDLOC
|
REMEXTANDLOC
|
||||||
|
@ -3715,7 +3715,7 @@ cmf tgt $1==4 | source4 source4 |
|
||||||
#endif
|
#endif
|
||||||
erase(%[a])
|
erase(%[a])
|
||||||
setcc(%[a]) | %[a] | |
|
setcc(%[a]) | %[a] | |
|
||||||
#endif FLOAT4
|
#endif /* FLOAT4 */
|
||||||
#ifdef FLOAT8
|
#ifdef FLOAT8
|
||||||
cmf tlt $1==8 | source8 source8 |
|
cmf tlt $1==8 | source8 source8 |
|
||||||
allocate(%[1],%[2],REG)
|
allocate(%[1],%[2],REG)
|
||||||
|
@ -3814,7 +3814,7 @@ cmf tgt $1==8 | source8 source8 |
|
||||||
#endif
|
#endif
|
||||||
erase(%[a])
|
erase(%[a])
|
||||||
setcc(%[a]) | %[a] | |
|
setcc(%[a]) | %[a] | |
|
||||||
#endif FLOAT8
|
#endif /* FLOAT8 */
|
||||||
/* Remember that cmu was replaced by cmp. */
|
/* Remember that cmu was replaced by cmp. */
|
||||||
cmp tlt | source4 source4 |
|
cmp tlt | source4 source4 |
|
||||||
allocate(REG={CONST1,0})
|
allocate(REG={CONST1,0})
|
||||||
|
@ -4313,9 +4313,9 @@ ret $1==8 | NC bigsource8 |
|
||||||
|
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
asp $1==4 | bigsource4 - regch4 | | | |
|
asp $1==4 | bigsource4 - regch4 | | | |
|
||||||
#else REGVARS
|
#else /* REGVARS */
|
||||||
asp $1==4 | NC bigsource4 | | | |
|
asp $1==4 | NC bigsource4 | | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
... | STACK |
|
... | STACK |
|
||||||
"tstl\t(sp)+" | | | (2,7)
|
"tstl\t(sp)+" | | | (2,7)
|
||||||
asp $1>0 | STACK |
|
asp $1>0 | STACK |
|
||||||
|
@ -4388,9 +4388,9 @@ dup stl $1==4 | | | | stl $2 lol $2 |
|
||||||
dup $1==4 | dups4 | | %[1] %[1] | |
|
dup $1==4 | dups4 | | %[1] %[1] | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
dup $1==8 | bigsource8-regch8 | | %[1] %[1] | |
|
dup $1==8 | bigsource8-regch8 | | %[1] %[1] | |
|
||||||
#else REGVARS
|
#else /* REGVARS */
|
||||||
dup $1==8 | bigsource8 | | %[1] %[1] | |
|
dup $1==8 | bigsource8 | | %[1] %[1] | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
... | dups4 dups4 | | %[2] %[1] %[2] %[1] | |
|
... | dups4 dups4 | | %[2] %[1] %[2] %[1] | |
|
||||||
dup | STACK |
|
dup | STACK |
|
||||||
allocate(REG,REG={CONST1,$1/4})
|
allocate(REG,REG={CONST1,$1/4})
|
||||||
|
@ -4467,15 +4467,15 @@ rck !defined($1) | source4 |
|
||||||
move(%[1],R0)
|
move(%[1],R0)
|
||||||
"jsb\t.rck"
|
"jsb\t.rck"
|
||||||
erase(R0) | | |
|
erase(R0) | | |
|
||||||
#else DORCK
|
#else /* DORCK */
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
rck defined($1) | bigsource4-regch4 | | | |
|
rck defined($1) | bigsource4-regch4 | | | |
|
||||||
rck !defined($1) | bigsource4-regch4 bigsource4-regch4 | | | |
|
rck !defined($1) | bigsource4-regch4 bigsource4-regch4 | | | |
|
||||||
#else REGVARS
|
#else /* REGVARS */
|
||||||
rck defined($1) | bigsource4 | | | |
|
rck defined($1) | bigsource4 | | | |
|
||||||
rck !defined($1) | bigsource4 bigsource4 | | | |
|
rck !defined($1) | bigsource4 bigsource4 | | | |
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
#endif DORCK
|
#endif /* DORCK */
|
||||||
rtt | | "ret" | | |
|
rtt | | "ret" | | |
|
||||||
sig | STACK |
|
sig | STACK |
|
||||||
"jsb\t.sig" | | |
|
"jsb\t.sig" | | |
|
||||||
|
@ -4576,7 +4576,7 @@ MOVES:
|
||||||
setcc(%[2]) erase(%[2]),(3,4)+%[1])
|
setcc(%[2]) erase(%[2]),(3,4)+%[1])
|
||||||
(reginc8+regdec8,reg8, "movq\t%[1],%[2]"
|
(reginc8+regdec8,reg8, "movq\t%[1],%[2]"
|
||||||
setcc(%[2]) erase(%[2]),(3,7)+%[1])
|
setcc(%[2]) erase(%[2]),(3,7)+%[1])
|
||||||
#endif REGVARS
|
#endif /* REGVARS */
|
||||||
(source8,source8, "movq\t%[1],%[2]"
|
(source8,source8, "movq\t%[1],%[2]"
|
||||||
setcc(%[2]), (3,4)+%[1]+%[2])
|
setcc(%[2]), (3,4)+%[1]+%[2])
|
||||||
(source4,source4, "movl\t%[1],%[2]"
|
(source4,source4, "movl\t%[1],%[2]"
|
||||||
|
|
|
@ -39,7 +39,7 @@ int OO_wrstats = 1; /* pattern statistics output */
|
||||||
#define printstate(s) dumpstate(s)
|
#define printstate(s) dumpstate(s)
|
||||||
#else
|
#else
|
||||||
#define printstate(s)
|
#define printstate(s)
|
||||||
#endif DEBUG
|
#endif /* DEBUG */
|
||||||
|
|
||||||
/**** WHICH IS FASTER? ****
|
/**** WHICH IS FASTER? ****
|
||||||
#define BTSCPY(pp,qq,i,p,q,n) btscpy(p,q,(n)*sizeof(struct e_instr))
|
#define BTSCPY(pp,qq,i,p,q,n) btscpy(p,q,(n)*sizeof(struct e_instr))
|
||||||
|
|
Loading…
Reference in a new issue