diff --git a/Ghidra/Processors/ARM/data/languages/ARM.cspec b/Ghidra/Processors/ARM/data/languages/ARM.cspec index cc73915db5..4137ca1d69 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 a6fbaa3df9..5b6a05aaa1 100644 --- a/Ghidra/Processors/ARM/data/languages/ARM_v45.cspec +++ b/Ghidra/Processors/ARM/data/languages/ARM_v45.cspec @@ -120,8 +120,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; @@ -139,8 +138,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; @@ -159,8 +157,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; @@ -179,8 +176,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;