arm: Force RES0 bits in TST/A1 to be 0 - lightning.git - Portable just-in-time compiler library

index : lightning.git
Portable just-in-time compiler library
summary refs log tree commit diff
path: root/lib/jit_arm-cpu.c
diff options
context:
space:
mode:
authorKim Kuparinen <kimi.h.kuparinen@gmail.com>2021年11月20日 13:13:23 +0200
committerpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2022年05月10日 16:42:40 -0300
commita5143abba78529f11c3eac943717db7b8f0b81b4 (patch)
treea91a31b4313bfe44eeb3584c63684fd502d033fc /lib/jit_arm-cpu.c
parentc6b003919f424f3760170fa017dfb683ab117448 (diff)
downloadlightning-a5143abba78529f11c3eac943717db7b8f0b81b4.tar.gz
arm: Force RES0 bits in TST/A1 to be 0
make check failed on quemu-system-arm when not using thumb with 'Illegal instruction' apparently because bits marked RES0 in the arm spec were being set to random values. According to the spec this leads to unpredictable behaviour: https://developer.arm.com/documentation/ddi0487/gb/ Page 4356 for a description of reserved bits and page 5203 for the TST instruction. Signed-off-by: Kim Kuparinen <kimi.h.kuparinen@gmail.com>
Diffstat (limited to 'lib/jit_arm-cpu.c')
-rw-r--r--lib/jit_arm-cpu.c 2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/jit_arm-cpu.c b/lib/jit_arm-cpu.c
index b6ee260..f0f5111 100644
--- a/lib/jit_arm-cpu.c
+++ b/lib/jit_arm-cpu.c
@@ -612,7 +612,7 @@ static void _torl(jit_state_t*,int,int,int) maybe_unused;
# define CMNI(rn,im) CC_CMNI(ARM_CC_AL,rn,im)
# define T2_CMNI(rn,im) torri(THUMB2_CMNI,rn,_R15_REGNO,im)
# define CC_TST(cc,rn,rm) corrr(cc,ARM_TST,rn,r0,rm)
-# define TST(rn,rm) CC_TST(ARM_CC_AL,rn,rm)
+# define TST(rn,rm) corrr(ARM_CC_AL,ARM_TST,rn,0,rm)
# define T1_TST(rn,rm) is(THUMB_TST|(_u3(rm)<<3)|_u3(rn))
# define T2_TST(rn,rm) torrr(THUMB2_TST,rn,_R15_REGNO,rm)
# define CC_TSTI(cc,rn,im) corri(cc,ARM_TST|ARM_I,rn,0,im)
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月13日 20:04:01 +0000

AltStyle によって変換されたページ (->オリジナル) /