[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