diff --git a/Ghidra/Processors/ARM/data/languages/ARM.cspec b/Ghidra/Processors/ARM/data/languages/ARM.cspec index 19c8bb9b00..5e1a9e1181 100644 --- a/Ghidra/Processors/ARM/data/languages/ARM.cspec +++ b/Ghidra/Processors/ARM/data/languages/ARM.cspec @@ -158,8 +158,7 @@ tmpptr = lr & 0xfffffffe; offset = *:1 (tmpptr + r0); - offset = offset * 2; - lr = lr + zext(offset); + lr = lr + 2 * zext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch; @@ -177,8 +176,7 @@ tmpptr = lr & 0xfffffffe; offset = *:1 (tmpptr + r0); - offset = offset * 2; - lr = lr + sext(offset); + lr = lr + 2 * sext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch; @@ -197,8 +195,7 @@ index = r0 * 2; offset = *:2 (tmpptr + index); - offset = offset * 2; - lr = lr + sext(offset); + lr = lr + 2 * sext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch; @@ -217,8 +214,7 @@ index = r0 * 2; offset = *:2 (tmpptr + index); - offset = offset * 2; - lr = lr + zext(offset); + lr = lr + 2 * zext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch; diff --git a/Ghidra/Processors/ARM/data/languages/ARM_v45.cspec b/Ghidra/Processors/ARM/data/languages/ARM_v45.cspec index db5ca37aae..c444bda2e9 100644 --- a/Ghidra/Processors/ARM/data/languages/ARM_v45.cspec +++ b/Ghidra/Processors/ARM/data/languages/ARM_v45.cspec @@ -117,8 +117,7 @@ tmpptr = lr & 0xfffffffe; offset = *:1 (tmpptr + r0); - offset = offset * 2; - lr = lr + zext(offset); + lr = lr + 2 * zext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch; @@ -136,8 +135,7 @@ tmpptr = lr & 0xfffffffe; offset = *:1 (tmpptr + r0); - offset = offset * 2; - lr = lr + sext(offset); + lr = lr + 2 * sext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch; @@ -156,8 +154,7 @@ index = r0 * 2; offset = *:2 (tmpptr + index); - offset = offset * 2; - lr = lr + sext(offset); + lr = lr + 2 * sext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch; @@ -176,8 +173,7 @@ index = r0 * 2; offset = *:2 (tmpptr + index); - offset = offset * 2; - lr = lr + zext(offset); + lr = lr + 2 * zext(offset); ISAModeSwitch = (lr & 1) != 0; TB = ISAModeSwitch;