Range check fixed in assembler.

This commit is contained in:
Sergey
2014-05-03 17:33:56 -07:00
parent babef284ae
commit e0ba612250

View File

@@ -1599,14 +1599,14 @@ foff16: expr_flags = 0;
case 0x28000000: // slti
case 0x2c000000: // sltiu
/* 16-bit signed value. */
valid_range = (offset >= -0x8000) && (offset <= 0x7fff);
valid_range = (offset >= -0x8000) || (offset <= 0x7fff);
break;
case 0x30000000: // andi
case 0x34000000: // ori
case 0x38000000: // xori
default:
/* 16-bit unsigned value. */
valid_range = (offset >= 0) && (offset <= 0xffff);
valid_range = (offset <= 0xffff);
break;
}
if (valid_range) {