Changed unsigned checking so that runtime routines cab be written in C

This commit is contained in:
ceriel 1991-03-05 11:55:22 +00:00
parent e929b5839f
commit 81cc04f9a3

View file

@ -480,20 +480,20 @@ static
subu(sz)
arith sz;
{
if (options['R']) C_sbu(sz);
else {
CAL((int) sz == (int) word_size ? "subu" : "subul", (int) sz);
if (! options['R']) {
CAL((int) sz == (int) word_size ? "subuchk" : "subulchk", (int) sz);
}
C_sbu(sz);
}
static
addu(sz)
arith sz;
{
if (options['R']) C_adu(sz);
else {
CAL((int) sz == (int) word_size ? "addu" : "addul", (int) sz);
if (! options['R']) {
CAL((int) sz == (int) word_size ? "adduchk" : "addulchk", (int) sz);
}
C_adu(sz);
}
CodeStd(nd)
@ -747,13 +747,11 @@ CodeOper(expr, true_label, false_label)
case T_EQUAL:
case T_CARDINAL:
case T_INTORCARD:
if (options['R']) {
C_mlu(tp->tp_size);
}
else {
CAL((int)(tp->tp_size) <= (int)word_size ? "mulu" : "mulul",
if (! options['R']) {
CAL((int)(tp->tp_size) <= (int)word_size ? "muluchk" : "mululchk",
(int)(tp->tp_size));
}
C_mlu(tp->tp_size);
break;
case T_REAL:
C_mlf(tp->tp_size);