Fix BLR when the source reg is X30 (#493)
This commit is contained in:
parent
44c1cf3fe5
commit
a4822b7946
1 changed files with 4 additions and 1 deletions
|
@ -72,11 +72,14 @@ namespace ChocolArm64.Instructions
|
||||||
{
|
{
|
||||||
OpCodeBReg64 op = (OpCodeBReg64)context.CurrOp;
|
OpCodeBReg64 op = (OpCodeBReg64)context.CurrOp;
|
||||||
|
|
||||||
|
context.EmitLdintzr(op.Rn);
|
||||||
|
context.EmitSttmp();
|
||||||
|
|
||||||
context.EmitLdc_I(op.Position + 4);
|
context.EmitLdc_I(op.Position + 4);
|
||||||
context.EmitStint(CpuThreadState.LrIndex);
|
context.EmitStint(CpuThreadState.LrIndex);
|
||||||
context.EmitStoreState();
|
context.EmitStoreState();
|
||||||
context.EmitLdintzr(op.Rn);
|
|
||||||
|
|
||||||
|
context.EmitLdtmp();
|
||||||
context.Emit(OpCodes.Ret);
|
context.Emit(OpCodes.Ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue