* fixed generation of ANDI and ANDIS instructions in the optimizer, properly casting the immediate parameter to an unsigned integer

git-svn-id: trunk@3800 -
This commit is contained in:
tom_at_work 2006-06-04 21:16:10 +00:00
parent b47a0d02fd
commit c5cbdda62e

View File

@ -414,9 +414,9 @@ const
(taicpu(p).oper[4]^.val < 16) then
begin
taicpu(p).opcode := A_ANDIS_;
taicpu(p).oper[2]^.val :=
taicpu(p).oper[2]^.val := word(
((1 shl (16-taicpu(p).oper[3]^.val)) - 1) xor
((1 shl (15-taicpu(p).oper[4]^.val)) - 1);
((1 shl (15-taicpu(p).oper[4]^.val)) - 1));
taicpu(p).clearop(3);
taicpu(p).clearop(4);
taicpu(p).ops := 3;
@ -426,7 +426,7 @@ const
(taicpu(p).oper[4]^.val >= 16) then
begin
taicpu(p).opcode := A_ANDI_;
taicpu(p).oper[2]^.val := rlwinm2mask(taicpu(p).oper[3]^.val,taicpu(p).oper[4]^.val);
taicpu(p).oper[2]^.val := word(rlwinm2mask(taicpu(p).oper[3]^.val,taicpu(p).oper[4]^.val));
taicpu(p).clearop(3);
taicpu(p).clearop(4);
taicpu(p).ops := 3;