mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
Fix to ARM switch function fixups
This commit is contained in:
@@ -158,8 +158,7 @@
|
|||||||
tmpptr = lr & 0xfffffffe;
|
tmpptr = lr & 0xfffffffe;
|
||||||
|
|
||||||
offset = *:1 (tmpptr + r0);
|
offset = *:1 (tmpptr + r0);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * zext(offset);
|
||||||
lr = lr + zext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
@@ -177,8 +176,7 @@
|
|||||||
tmpptr = lr & 0xfffffffe;
|
tmpptr = lr & 0xfffffffe;
|
||||||
|
|
||||||
offset = *:1 (tmpptr + r0);
|
offset = *:1 (tmpptr + r0);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * sext(offset);
|
||||||
lr = lr + sext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
@@ -197,8 +195,7 @@
|
|||||||
|
|
||||||
index = r0 * 2;
|
index = r0 * 2;
|
||||||
offset = *:2 (tmpptr + index);
|
offset = *:2 (tmpptr + index);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * sext(offset);
|
||||||
lr = lr + sext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
@@ -217,8 +214,7 @@
|
|||||||
|
|
||||||
index = r0 * 2;
|
index = r0 * 2;
|
||||||
offset = *:2 (tmpptr + index);
|
offset = *:2 (tmpptr + index);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * zext(offset);
|
||||||
lr = lr + zext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
|
|||||||
@@ -117,8 +117,7 @@
|
|||||||
tmpptr = lr & 0xfffffffe;
|
tmpptr = lr & 0xfffffffe;
|
||||||
|
|
||||||
offset = *:1 (tmpptr + r0);
|
offset = *:1 (tmpptr + r0);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * zext(offset);
|
||||||
lr = lr + zext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
@@ -136,8 +135,7 @@
|
|||||||
tmpptr = lr & 0xfffffffe;
|
tmpptr = lr & 0xfffffffe;
|
||||||
|
|
||||||
offset = *:1 (tmpptr + r0);
|
offset = *:1 (tmpptr + r0);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * sext(offset);
|
||||||
lr = lr + sext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
@@ -156,8 +154,7 @@
|
|||||||
|
|
||||||
index = r0 * 2;
|
index = r0 * 2;
|
||||||
offset = *:2 (tmpptr + index);
|
offset = *:2 (tmpptr + index);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * sext(offset);
|
||||||
lr = lr + sext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
@@ -176,8 +173,7 @@
|
|||||||
|
|
||||||
index = r0 * 2;
|
index = r0 * 2;
|
||||||
offset = *:2 (tmpptr + index);
|
offset = *:2 (tmpptr + index);
|
||||||
offset = offset * 2;
|
lr = lr + 2 * zext(offset);
|
||||||
lr = lr + zext(offset);
|
|
||||||
|
|
||||||
ISAModeSwitch = (lr & 1) != 0;
|
ISAModeSwitch = (lr & 1) != 0;
|
||||||
TB = ISAModeSwitch;
|
TB = ISAModeSwitch;
|
||||||
|
|||||||
Reference in New Issue
Block a user