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 } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits