|
|
@ -220,8 +220,6 @@ void ARM_Unicorn::SaveContext(ARM_Interface::ThreadContext& ctx) {
|
|
|
|
|
|
|
|
|
|
|
|
CHECKED(uc_reg_read_batch(uc, uregs, tregs, 31));
|
|
|
|
CHECKED(uc_reg_read_batch(uc, uregs, tregs, 31));
|
|
|
|
|
|
|
|
|
|
|
|
ctx.tls_address = GetTlsAddress();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 32; ++i) {
|
|
|
|
for (int i = 0; i < 32; ++i) {
|
|
|
|
uregs[i] = UC_ARM64_REG_Q0 + i;
|
|
|
|
uregs[i] = UC_ARM64_REG_Q0 + i;
|
|
|
|
tregs[i] = &ctx.fpu_registers[i];
|
|
|
|
tregs[i] = &ctx.fpu_registers[i];
|
|
|
@ -249,8 +247,6 @@ void ARM_Unicorn::LoadContext(const ARM_Interface::ThreadContext& ctx) {
|
|
|
|
|
|
|
|
|
|
|
|
CHECKED(uc_reg_write_batch(uc, uregs, tregs, 31));
|
|
|
|
CHECKED(uc_reg_write_batch(uc, uregs, tregs, 31));
|
|
|
|
|
|
|
|
|
|
|
|
SetTlsAddress(ctx.tls_address);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (auto i = 0; i < 32; ++i) {
|
|
|
|
for (auto i = 0; i < 32; ++i) {
|
|
|
|
uregs[i] = UC_ARM64_REG_Q0 + i;
|
|
|
|
uregs[i] = UC_ARM64_REG_Q0 + i;
|
|
|
|
tregs[i] = (void*)&ctx.fpu_registers[i];
|
|
|
|
tregs[i] = (void*)&ctx.fpu_registers[i];
|
|
|
|