[Lldb-commits] [lldb] 14913fa - [LLDB][ARM] Extend testing for vpush emulation
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Thu Aug 11 03:02:42 PDT 2022
Author: David Spickett
Date: 2022-08-11T10:02:37Z
New Revision: 14913fa5d0508c3e29ae69552ef0710c82913a75
URL: https://github.com/llvm/llvm-project/commit/14913fa5d0508c3e29ae69552ef0710c82913a75
DIFF: https://github.com/llvm/llvm-project/commit/14913fa5d0508c3e29ae69552ef0710c82913a75.diff
LOG: [LLDB][ARM] Extend testing for vpush emulation
https://reviews.llvm.org/D131658 found a bug in
ReadPseudoRegisterValue which would mean we read out
of bounds if the s register number was high enough.
This adds a memory check to vpush-1-thumb, which
should have been doing that anyway. Then copies that
test and uses the last 4 s registers instead.
Without the mentioned fix we see random values in
the final memory, with the fix it passes.
Reviewed By: fixathon
Differential Revision: https://reviews.llvm.org/D131663
Added:
lldb/test/API/arm/emulation/new-test-files/test-vpush-1-high-sregs-thumb.dat
Modified:
lldb/test/API/arm/emulation/new-test-files/test-vpush-1-thumb.dat
Removed:
################################################################################
diff --git a/lldb/test/API/arm/emulation/new-test-files/test-vpush-1-high-sregs-thumb.dat b/lldb/test/API/arm/emulation/new-test-files/test-vpush-1-high-sregs-thumb.dat
new file mode 100644
index 0000000000000..188c8be42c3f3
--- /dev/null
+++ b/lldb/test/API/arm/emulation/new-test-files/test-vpush-1-high-sregs-thumb.dat
@@ -0,0 +1,121 @@
+InstructionEmulationState={
+assembly_string="vpush {s28, s29, s30, s31}"
+triple=thumb-apple-ios
+opcode=0xed2dea04
+before_state={
+registers={
+r0=0x00000000
+r1=0x00000001
+r2=0x00000002
+r3=0x00000003
+r4=0x00000004
+r5=0x00000005
+r6=0x00000006
+r7=0x2fdffe60
+r8=0x00000008
+r9=0x00000009
+r10=0x0000000a
+r11=0x0000000b
+r12=0x0000000c
+r13=0x2fdffe60
+r14=0x00002f80
+r15=0x00002ff8
+cpsr=0x60000030
+s0=0x00000000
+s1=0x00000000
+s2=0x00000000
+s3=0x00000000
+s4=0x00000000
+s5=0x00000000
+s6=0x00000000
+s7=0x00000000
+s8=0x00000000
+s9=0x00000000
+s10=0x00000000
+s11=0x00000000
+s12=0x00000000
+s13=0x00000000
+s14=0x00000000
+s15=0x00000000
+s16=0x00000000
+s17=0x00000000
+s18=0x00000000
+s19=0x00000000
+s20=0x00000000
+s21=0x00000000
+s22=0x00000000
+s23=0x00000000
+s24=0x00000000
+s25=0x00000000
+s26=0x00000000
+s27=0x00000000
+s28=0x11111111
+s29=0x22222222
+s30=0x33333333
+s31=0x44444444
+}
+}
+after_state={
+memory={
+address=0x2fdffe50
+data_encoding=uint32_t
+data=[
+0x11111111
+0x22222222
+0x33333333
+0x44444444
+]
+}
+registers={
+r0=0x00000000
+r1=0x00000001
+r2=0x00000002
+r3=0x00000003
+r4=0x00000004
+r5=0x00000005
+r6=0x00000006
+r7=0x2fdffe60
+r8=0x00000008
+r9=0x00000009
+r10=0x0000000a
+r11=0x0000000b
+r12=0x0000000c
+r13=0x2fdffe50
+r14=0x00002f80
+r15=0x00002ffc
+cpsr=0x60000030
+s0=0x00000000
+s1=0x00000000
+s2=0x00000000
+s3=0x00000000
+s4=0x00000000
+s5=0x00000000
+s6=0x00000000
+s7=0x00000000
+s8=0x00000000
+s9=0x00000000
+s10=0x00000000
+s11=0x00000000
+s12=0x00000000
+s13=0x00000000
+s14=0x00000000
+s15=0x00000000
+s16=0x00000000
+s17=0x00000000
+s18=0x00000000
+s19=0x00000000
+s20=0x00000000
+s21=0x00000000
+s22=0x00000000
+s23=0x00000000
+s24=0x00000000
+s25=0x00000000
+s26=0x00000000
+s27=0x00000000
+s28=0x11111111
+s29=0x22222222
+s30=0x33333333
+s31=0x44444444
+}
+}
+}
diff --git a/lldb/test/API/arm/emulation/new-test-files/test-vpush-1-thumb.dat b/lldb/test/API/arm/emulation/new-test-files/test-vpush-1-thumb.dat
index ac4ef56be6655..46f734d67d76d 100644
--- a/lldb/test/API/arm/emulation/new-test-files/test-vpush-1-thumb.dat
+++ b/lldb/test/API/arm/emulation/new-test-files/test-vpush-1-thumb.dat
@@ -43,19 +43,33 @@ s18=0x00000000
s19=0x00000000
s20=0x00000000
s21=0x00000000
-s22=0x00000000
-s23=0x00000000
-s24=0x00000000
-s25=0x00000000
-s26=0x00000000
-s27=0x00000000
-s28=0x00000000
-s29=0x00000000
+s22=0x11111111
+s23=0x22222222
+s24=0x33333333
+s25=0x44444444
+s26=0x55555555
+s27=0x66666666
+s28=0x77777777
+s29=0x88888888
s30=0x00000000
s31=0x00000000
}
}
after_state={
+memory={
+address=0x2fdffe40
+data_encoding=uint32_t
+data=[
+0x11111111
+0x22222222
+0x33333333
+0x44444444
+0x55555555
+0x66666666
+0x77777777
+0x88888888
+]
+}
registers={
r0=0x00000000
r1=0x00000001
@@ -96,14 +110,14 @@ s18=0x00000000
s19=0x00000000
s20=0x00000000
s21=0x00000000
-s22=0x00000000
-s23=0x00000000
-s24=0x00000000
-s25=0x00000000
-s26=0x00000000
-s27=0x00000000
-s28=0x00000000
-s29=0x00000000
+s22=0x11111111
+s23=0x22222222
+s24=0x33333333
+s25=0x44444444
+s26=0x55555555
+s27=0x66666666
+s28=0x77777777
+s29=0x88888888
s30=0x00000000
s31=0x00000000
}
More information about the lldb-commits
mailing list