Support top_shifterop and top_regset for arm in RegInOp

RegInOp did not check for a register beeing part of a shifterop
(op.shifterop^.rs) which could result in trashed registers (But that did
not seem to happen yet anyway).

I've also implemented support for top_regset, but it is currently not
generated outside of proc_entry/proc_exit anyway.

git-svn-id: trunk@21808 -
This commit is contained in:
masta 2012-07-06 21:33:22 +00:00
parent 645698183d
commit 9825fbf554

View File

@ -129,7 +129,11 @@ unit aoptbase;
Begin
Case op.typ Of
Top_Reg: RegInOp := Reg = op.reg;
Top_Ref: RegInOp := RegInRef(Reg, op.ref^)
Top_Ref: RegInOp := RegInRef(Reg, op.ref^);
{$ifdef arm}
Top_Shifterop: RegInOp := op.shifterop^.rs = Reg;
Top_RegSet: RegInOp := getsupreg(Reg) in op.regset^;
{$endif arm}
Else RegInOp := False
End
End;