Revert "BR 2887108: Use overflow_ helper to catch inappropriate imm optimization"

This reverts commit 41208028ff.
|
| From: "H. Peter Anvin" <hpa@zytor.com>
|
| The tests for overflow_signed() are wrong too.  Those are relevant for if a
| warning should be issued, but not for how the value should be encoded in
| the byte stream.
|

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
This commit is contained in:
Cyrill Gorcunov 2009-11-01 10:24:48 +03:00
parent beaef4a2ea
commit 210c10110b

View File

@ -840,10 +840,11 @@ is_expression:
result->oprs[operand].segment = NO_SEG; /* don't care again */
result->oprs[operand].wrt = NO_SEG; /* still don't care */
/* Be optimistic */
if(optimizing >= 0 && !(result->oprs[operand].type & STRICT))
{
/* Be optimistic */
result->oprs[operand].type |= SBYTE16 | SBYTE32 | SBYTE64;
}
} else if (is_reloc(value)) { /* it's immediate */
result->oprs[operand].type |= IMMEDIATE;
result->oprs[operand].offset = reloc_value(value);
@ -858,14 +859,12 @@ is_expression:
int32_t v32 = (int32_t)v64;
int16_t v16 = (int16_t)v32;
if (v64 >= -128 && v64 <= 127)
if (v64 >= -128 && v64 <= 127)
result->oprs[operand].type |= SBYTE64;
if (!overflow_signed(v64, sizeof(v32)))
if (v32 >= -128 && v32 <= 127)
result->oprs[operand].type |= SBYTE32;
if (!overflow_signed(v64, sizeof(v16)))
if (v16 >= -128 && v16 <= 127)
result->oprs[operand].type |= SBYTE16;
if (v32 >= -128 && v32 <= 127)
result->oprs[operand].type |= SBYTE32;
if (v16 >= -128 && v16 <= 127)
result->oprs[operand].type |= SBYTE16;
}
}
} else { /* it's a register */