Commit 5d6a9540 authored by swift_gan's avatar swift_gan Committed by swift_gan

[NativeHook]fix push

parent b41514d8
......@@ -176,17 +176,17 @@ void AssemblerA64::Ldrsw(XRegister &rt, const MemOperand& memOperand) {
void AssemblerA64::Pop(RegisterA64 &rd) {
if (rd.isX()) {
Ldr(rd, MemOperand(&SP, -1 * rd.getWideInBytes(), PreIndex));
Ldr(rd, MemOperand(&SP, rd.getWideInBytes(), PostIndex));
} else {
Ldr(rd, MemOperand(&WSP, -1 * rd.getWideInBytes(), PreIndex));
Ldr(rd, MemOperand(&WSP, rd.getWideInBytes(), PostIndex));
}
}
void AssemblerA64::Push(RegisterA64 &rt) {
if (rt.isX()) {
Str(rt, MemOperand(&SP, -1 * rt.getWideInBytes(), PreIndex));
Str(rt, MemOperand(&SP, -rt.getWideInBytes(), PreIndex));
} else {
Str(rt, MemOperand(&WSP, -1 * rt.getWideInBytes(), PreIndex));
Str(rt, MemOperand(&WSP, -rt.getWideInBytes(), PreIndex));
}
}
......
......@@ -28,8 +28,8 @@ void Arm64Decoder::decode(void *codeStart, Addr codeLen, InstVisitor &visitor) {
CASE(LDR_UIMM)
CASE(LDRSW_IMM)
CASE(LDRSW_UIMM)
CASE(STR_IMM)
CASE(STR_UIMM)
CASE(STR_IMM)
CASE(B_BL)
CASE(B_COND)
CASE(BR_BLR_RET)
......
......@@ -395,8 +395,8 @@ void A64_STR_IMM::decode(STRUCT_A64(STR_IMM) *inst) {
operand.addr_mode = AddrMode::PreIndex;
break;
default:
operand.addr_mode = AddrMode::Offset;
valid = false;
return;
}
scale = static_cast<U8>(inst->size);
offset = signExtend64(9, inst->imm9);
......@@ -428,8 +428,8 @@ void A64_STR_IMM::assembler() {
get()->addrmode = PreIndex;
break;
default:
get()->addrmode = Offset;
valid = false;
return;
}
}
......@@ -620,8 +620,8 @@ void A64_LDR_IMM::decode(STRUCT_A64(LDR_IMM) *inst) {
operand.addr_mode = AddrMode::PreIndex;
break;
default:
operand.addr_mode = AddrMode::Offset;
valid = false;
return;
}
scale = static_cast<U8>(inst->size);
offset = signExtend64(9, inst->imm9);
......@@ -653,8 +653,8 @@ void A64_LDR_IMM::assembler() {
get()->addrmode = PreIndex;
break;
default:
get()->addrmode = Offset;
valid = false;
return;
}
}
......
......@@ -526,7 +526,8 @@ namespace SandHook {
public:
enum AdMod {
PostIndex = 0b00,
Offset = 0b00,
PostIndex = 0b01,
PreIndex = 0b11
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment