parent
14959c7f9c
commit
2730515c46
@ -2295,6 +2295,14 @@ impl AsanRuntime {
|
|||||||
X86Register::Rip => {
|
X86Register::Rip => {
|
||||||
writer.put_mov_reg_address(X86Register::Rdi, true_rip);
|
writer.put_mov_reg_address(X86Register::Rdi, true_rip);
|
||||||
}
|
}
|
||||||
|
X86Register::Rsp => {
|
||||||
|
// In this case rsp clobbered
|
||||||
|
writer.put_lea_reg_reg_offset(
|
||||||
|
X86Register::Rdi,
|
||||||
|
X86Register::Rsp,
|
||||||
|
redzone_size + 0x8 * 6,
|
||||||
|
);
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
writer.put_mov_reg_reg(X86Register::Rdi, basereg.unwrap());
|
writer.put_mov_reg_reg(X86Register::Rdi, basereg.unwrap());
|
||||||
}
|
}
|
||||||
@ -2313,6 +2321,14 @@ impl AsanRuntime {
|
|||||||
// In this case rdi is already clobbered, so we want it from the stack (we pushed rdi onto stack before!)
|
// In this case rdi is already clobbered, so we want it from the stack (we pushed rdi onto stack before!)
|
||||||
writer.put_mov_reg_reg_offset_ptr(X86Register::Rsi, X86Register::Rsp, -0x28);
|
writer.put_mov_reg_reg_offset_ptr(X86Register::Rsi, X86Register::Rsp, -0x28);
|
||||||
}
|
}
|
||||||
|
X86Register::Rsp => {
|
||||||
|
// In this case rsp is also clobbered
|
||||||
|
writer.put_lea_reg_reg_offset(
|
||||||
|
X86Register::Rsi,
|
||||||
|
X86Register::Rsp,
|
||||||
|
redzone_size + 0x8 * 6,
|
||||||
|
);
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
writer.put_mov_reg_reg(X86Register::Rsi, indexreg.unwrap());
|
writer.put_mov_reg_reg(X86Register::Rsi, indexreg.unwrap());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user