March 19, 2009
I was reading the 1.041's back-end code.  Here's something that looked wrong to me: in cgelem.c, in function elcmp(), at line 3318:

		    case 4:
			if (sz > 2)
			    e = el_una(OPu32_64,TYshort,e);
			else
			    e = el_una(OP32_16,TYshort,e);
			break;

Specifically the line

e = el_una(OPu32_64,TYshort,e);

looks wrong, the unary operator type should be 64 bit, not short.  Am I missing something?