| From f9ed2ce00fa310b71042914dd743a4248600a300 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 1 Jun 2021 20:29:26 +0100 |
| Subject: ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1 |
| |
| From: Nick Desaulniers <ndesaulniers@google.com> |
| |
| [ Upstream commit 8b95a7d90ce8160ac5cffd5bace6e2eba01a871e ] |
| |
| There's a few instructions that GAS infers operands but Clang doesn't; |
| from what I can tell the Arm ARM doesn't say these are optional. |
| |
| F5.1.257 TBB, TBH T1 Halfword variant |
| F5.1.238 STREXD T1 variant |
| F5.1.84 LDREXD T1 variant |
| |
| Link: https://github.com/ClangBuiltLinux/linux/issues/1309 |
| |
| Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> |
| Reviewed-by: Jian Cai <jiancai@google.com> |
| Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/arm/probes/kprobes/test-thumb.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| diff --git a/arch/arm/probes/kprobes/test-thumb.c b/arch/arm/probes/kprobes/test-thumb.c |
| index 456c181a7bfe..4e11f0b760f8 100644 |
| --- a/arch/arm/probes/kprobes/test-thumb.c |
| +++ b/arch/arm/probes/kprobes/test-thumb.c |
| @@ -441,21 +441,21 @@ void kprobe_thumb32_test_cases(void) |
| "3: mvn r0, r0 \n\t" |
| "2: nop \n\t") |
| |
| - TEST_RX("tbh [pc, r",7, (9f-(1f+4))>>1,"]", |
| + TEST_RX("tbh [pc, r",7, (9f-(1f+4))>>1,", lsl #1]", |
| "9: \n\t" |
| ".short (2f-1b-4)>>1 \n\t" |
| ".short (3f-1b-4)>>1 \n\t" |
| "3: mvn r0, r0 \n\t" |
| "2: nop \n\t") |
| |
| - TEST_RX("tbh [pc, r",12, ((9f-(1f+4))>>1)+1,"]", |
| + TEST_RX("tbh [pc, r",12, ((9f-(1f+4))>>1)+1,", lsl #1]", |
| "9: \n\t" |
| ".short (2f-1b-4)>>1 \n\t" |
| ".short (3f-1b-4)>>1 \n\t" |
| "3: mvn r0, r0 \n\t" |
| "2: nop \n\t") |
| |
| - TEST_RRX("tbh [r",1,9f, ", r",14,1,"]", |
| + TEST_RRX("tbh [r",1,9f, ", r",14,1,", lsl #1]", |
| "9: \n\t" |
| ".short (2f-1b-4)>>1 \n\t" |
| ".short (3f-1b-4)>>1 \n\t" |
| @@ -468,10 +468,10 @@ void kprobe_thumb32_test_cases(void) |
| |
| TEST_UNSUPPORTED("strexb r0, r1, [r2]") |
| TEST_UNSUPPORTED("strexh r0, r1, [r2]") |
| - TEST_UNSUPPORTED("strexd r0, r1, [r2]") |
| + TEST_UNSUPPORTED("strexd r0, r1, r2, [r2]") |
| TEST_UNSUPPORTED("ldrexb r0, [r1]") |
| TEST_UNSUPPORTED("ldrexh r0, [r1]") |
| - TEST_UNSUPPORTED("ldrexd r0, [r1]") |
| + TEST_UNSUPPORTED("ldrexd r0, r1, [r1]") |
| |
| TEST_GROUP("Data-processing (shifted register) and (modified immediate)") |
| |
| -- |
| 2.30.2 |
| |