|
@@ -463,17 +463,17 @@ implementation
|
|
location.register64.reglo:=hreg64hi;
|
|
location.register64.reglo:=hreg64hi;
|
|
end
|
|
end
|
|
{Shift LESS than 32}
|
|
{Shift LESS than 32}
|
|
- else if v < 32 then
|
|
|
|
|
|
+ else if (v < 32) and (v > 1) then
|
|
if nodetype=shln then
|
|
if nodetype=shln then
|
|
shift_less_than_32(hreg64hi, hreg64lo, v.uvalue, false)
|
|
shift_less_than_32(hreg64hi, hreg64lo, v.uvalue, false)
|
|
else
|
|
else
|
|
shift_less_than_32(hreg64lo, hreg64hi, v.uvalue, true)
|
|
shift_less_than_32(hreg64lo, hreg64hi, v.uvalue, true)
|
|
{More than 32}
|
|
{More than 32}
|
|
- else
|
|
|
|
|
|
+ else if v > 32 then
|
|
if nodetype=shln then
|
|
if nodetype=shln then
|
|
shift_more_than_32(hreg64lo, hreg64hi, v.uvalue, SM_LSL)
|
|
shift_more_than_32(hreg64lo, hreg64hi, v.uvalue, SM_LSL)
|
|
else
|
|
else
|
|
- shift_more_than_32(hreg64hi, hreg64lo, v.uvalue, SM_LSR)
|
|
|
|
|
|
+ shift_more_than_32(hreg64hi, hreg64lo, v.uvalue, SM_LSR);
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|