+ sanity checks in mips and sparc register allocator

This commit is contained in:
florian 2021-12-17 21:24:41 +01:00
parent c6874df5c8
commit 03f4685455
2 changed files with 4 additions and 4 deletions

View File

@ -150,7 +150,7 @@ implementation
else
InternalError(2013061003);
end;
if get_alias(getsupreg(instr.oper[1]^.reg))=orgreg then
if (getregtype(instr.oper[1]^.reg)=regtype) and (get_alias(getsupreg(instr.oper[1]^.reg))=orgreg) then
begin
case instr.opcode of
A_MOVE: instr.opcode:=A_LW;
@ -160,7 +160,7 @@ implementation
InternalError(2013061004);
end;
end
else if get_alias(getsupreg(instr.oper[0]^.reg))=orgreg then
else if (getregtype(instr.oper[0]^.reg)=regtype) and (get_alias(getsupreg(instr.oper[0]^.reg))=orgreg) then
begin
case instr.opcode of
A_MOVE: instr.opcode:=A_SW;

View File

@ -207,7 +207,7 @@ implementation
(getregtype(instr.oper[1]^.reg)<>regtype) then
exit;
opidx:=-1;
if get_alias(getsupreg(instr.oper[0]^.reg))=orgreg then
if (getregtype(instr.oper[0]^.reg)=regtype) and (get_alias(getsupreg(instr.oper[0]^.reg))=orgreg) then
begin
if (regtype=R_INTREGISTER) then
instr.opcode:=A_LD_R
@ -217,7 +217,7 @@ implementation
instr.opcode:=A_LDDF;
opidx:=0;
end
else if get_alias(getsupreg(instr.oper[1]^.reg))=orgreg then
else if (getregtype(instr.oper[1]^.reg)=regtype) and (get_alias(getsupreg(instr.oper[1]^.reg))=orgreg) then
begin
if (regtype=R_INTREGISTER) then
instr.opcode:=A_ST_R