📄 iconst.c
字号:
else
ReassignCompare(d,left->f < right->f);
break;
}
break;
case i_setbe:
case i_jbe:
index = xgetmode(d, &left, &right);
switch(index)
{
case icll:
ReassignCompare(d,(unsigned LLONG_TYPE)left->i <= (unsigned LLONG_TYPE)right->i);
break;
case iclr:
ReassignCompare(d,(unsigned LLONG_TYPE)left->i <= right->f);
break;
case icrl:
ReassignCompare(d,left->f <= (unsigned LLONG_TYPE)right->i);
break;
case icrr:
ReassignCompare(d,left->f <= right->f);
break;
}
break;
case i_seta:
case i_ja:
index = xgetmode(d, &left, &right);
switch(index)
{
case icll:
ReassignCompare(d,(unsigned LLONG_TYPE)left->i > (unsigned LLONG_TYPE)right->i);
break;
case iclr:
ReassignCompare(d,(unsigned LLONG_TYPE)left->i > right->f);
break;
case icrl:
ReassignCompare(d,left->f > (unsigned LLONG_TYPE)right->i);
break;
case icrr:
ReassignCompare(d,left->f > right->f);
break;
}
break;
case i_setnc:
case i_jnc:
index = xgetmode(d, &left, &right);
switch(index)
{
case icll:
ReassignCompare(d,(unsigned LLONG_TYPE)left->i >= (unsigned LLONG_TYPE)right->i);
break;
case iclr:
ReassignCompare(d,(unsigned LLONG_TYPE)left->i >= right->f);
break;
case icrl:
ReassignCompare(d,left->f >= (unsigned LLONG_TYPE)right->i);
break;
case icrr:
ReassignCompare(d,left->f >= right->f);
break;
}
break;
case i_setl:
case i_jl:
index = xgetmode(d, &left, &right);
switch(index)
{
case icll:
ReassignCompare(d,left->i < right->i);
break;
case iclr:
ReassignCompare(d,left->i < right->f);
break;
case icrl:
ReassignCompare(d,left->f < right->i);
break;
case icrr:
ReassignCompare(d,left->f < right->f);
break;
}
break;
case i_setle:
case i_jle:
index = xgetmode(d, &left, &right);
switch(index)
{
case icll:
ReassignCompare(d,left->i <= right->i);
break;
case iclr:
ReassignCompare(d,left->i <= right->f);
break;
case icrl:
ReassignCompare(d,left->f <= right->i);
break;
case icrr:
ReassignCompare(d,left->f <= right->f);
break;
}
break;
case i_setg:
case i_jg:
index = xgetmode(d, &left, &right);
switch(index)
{
case icll:
ReassignCompare(d,left->i > right->i);
break;
case iclr:
ReassignCompare(d,left->i > right->f);
break;
case icrl:
ReassignCompare(d,left->f > right->i);
break;
case icrr:
ReassignCompare(d,left->f > right->f);
break;
}
break;
case i_setge:
case i_jge:
index = xgetmode(d, &left, &right);
switch(index)
{
case icll:
ReassignCompare(d,left->i >= right->i);
break;
case iclr:
ReassignCompare(d,left->i >= right->f);
break;
case icrl:
ReassignCompare(d,left->f >= right->i);
break;
case icrr:
ReassignCompare(d,left->f >= right->f);
break;
}
break;
#ifdef XXXXX
case i_add:
index = xgetmode(d, &left, &right);
switch (index)
{
case icll:
ReassignInt(d,left->i + right->i);
break;
case iclr:
ReassignFloat(d,left->i + right->f);
break;
case icrl:
ReassignFloat(d,left->f + right->i);
break;
case icrr:
ReassignFloat(d,left->f + right->f);
break;
case icln:
if (left->i == 0)
{
ASNFromRight(d);
}
break;
case icrn:
if (left->f == 0)
{
ASNFromRight(d);
}
break;
case icnl:
if (right->i == 0)
{
ASNFromLeft(d);
}
break;
case icnr:
if (right->f == 0)
{
ASNFromLeft(d);
}
break;
}
break;
case i_sub:
index = xgetmode(d, &left, &right);
switch (index)
{
case icnone:
if (d->dc.left == d->dc.right)
{
ReassignInt(d,0);
}
break;
case icll:
ReassignInt(d,left->i - right->i);
break;
case iclr:
ReassignFloat(d,left->i - right->f);
break;
case icrl:
ReassignFloat(d,left->f - right->i);
break;
case icrr:
ReassignFloat(d,left->f - right->f);
break;
case icln:
if (left->i == 0)
{
ASNFromLeft(d);
}
break;
case icrn:
if (left->f == 0)
{
}
break;
case icnl:
if (right->i == 0)
{
}
break;
case icnr:
if (right->f == 0)
{
}
break;
}
break;
case i_udiv:
index = xgetmode(d, &left, &right);
switch (index)
{
case icll:
if ((unsigned LLONG_TYPE)right->i != 0)
ReassignInt(d,(unsigned LLONG_TYPE)left->i / (unsigned LLONG_TYPE)right->i);
else
d->dc.v.i = 0;
break;
case iclr:
if (right->f != 0)
ReassignFloat(d,(unsigned LLONG_TYPE)left->i / right->f);
else
d->dc.v.f = 0;
break;
case icrl:
if ((unsigned LLONG_TYPE)right->i != 0)
ReassignFloat(d,left->f / (unsigned LLONG_TYPE)right->i);
else
d->dc.v.f = 0;
break;
case icrr:
if (right->f != 0)
ReassignFloat(d,left->f / right->f);
else
d->dc.v.f = 0;
break;
case icln:
if ((unsigned LLONG_TYPE)left->i == 0)
{
ReassignInt(d,0);
}
break;
case icrn:
if (left->f == 0)
{
ReassignFloat(d,0);
}
break;
case icnl:
if ((unsigned LLONG_TYPE)right->i == 1)
{
ASNFromLeft(d);
}
else if ((shift = pwrof2((unsigned LLONG_TYPE)right->i)) != - 1)
{
ReassignMulDiv(d,i_lsr,shift,FALSE);
}
break;
case icnr:
if (right->f == 1)
{
ASNFromLeft(d);
}
break;
}
break;
case i_umod:
index = xgetmode(d, &left, &right);
switch (index)
{
case icnone:
break;
case icll:
if ((unsigned LLONG_TYPE)right->i != 0)
ReassignInt(d,(unsigned LLONG_TYPE)left->i % (unsigned LLONG_TYPE)right->i);
else
d->dc.v.i = 0;
case icnl:
if (shift = calmask((unsigned LLONG_TYPE)right->i))
{
ReassignMulDiv(d,i_and,shift,FALSE);
}
break;
default:
badconst();
break;
}
break;
case i_sdiv:
index = xgetmode(d, &left, &right);
switch (index)
{
case icll:
if (right->i != 0)
ReassignInt(d,left->i / right->i);
else
d->dc.v.i = 0;
break;
case iclr:
if (right->f != 0)
ReassignFloat(d,left->i / right->f);
else
d->dc.v.f = 0;
break;
case icrl:
if (right->i != 0)
ReassignFloat(d,left->f / right->i);
else
d->dc.v.f = 0;
break;
case icrr:
if (right->f != 0)
ReassignFloat(d,left->f / right->f);
else
d->dc.v.f = 0;
break;
case icln:
if (left->i == 0)
{
ReassignInt(d,0);
}
break;
case icrn:
if (left->f == 0)
{
ReassignFloat(d,0);
}
break;
case icnl:
if (right->i == 1)
{
ASNFromLeft(d);
}
else if ((shift = pwrof2(right->i)) != - 1)
{
ReassignMulDiv(d,i_lsr,shift,FALSE);
}
break;
case icnr:
if (right->f == 1)
{
ASNFromLeft(d);
}
break;
}
break;
case i_smod:
index = xgetmode(d, &left, &right);
switch (index)
{
case icnone:
break;
case icll:
if (right->i != 0)
ReassignInt(d,left->i % right->i);
else
d->dc.v.i = 0;
break;
case icln:
if (left->i == 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -