mirror of
git://c9x.me/qbe.git
synced 2026-04-05 18:09:47 +00:00
add width info for comparisons
Comparisons return a 1-bit value, in theory we could add a Wu1 width for them but I did not bother and just used Wub. This simply means that if a frontend generates an extsb of a comparison result (silly), we will not generate good code.
This commit is contained in:
parent
1dd22a9b47
commit
620277c004
4
ssa.c
4
ssa.c
@ -40,7 +40,7 @@ filluse(Fn *fn)
|
|||||||
Blk *b;
|
Blk *b;
|
||||||
Phi *p;
|
Phi *p;
|
||||||
Ins *i;
|
Ins *i;
|
||||||
int m, t, tp, w;
|
int m, t, tp, w, x;
|
||||||
uint a;
|
uint a;
|
||||||
Tmp *tmp;
|
Tmp *tmp;
|
||||||
|
|
||||||
@ -84,6 +84,8 @@ filluse(Fn *fn)
|
|||||||
w = Wsb + (i->op - Oloadsb);
|
w = Wsb + (i->op - Oloadsb);
|
||||||
if (isext(i->op))
|
if (isext(i->op))
|
||||||
w = Wsb + (i->op - Oextsb);
|
w = Wsb + (i->op - Oextsb);
|
||||||
|
if (iscmp(i->op, &x, &x))
|
||||||
|
w = Wub;
|
||||||
if (w == Wsw || w == Wuw)
|
if (w == Wsw || w == Wuw)
|
||||||
if (i->cls == Kw)
|
if (i->cls == Kw)
|
||||||
w = WFull;
|
w = WFull;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user