Open Quuxplusone opened 7 years ago
test_ldstrex.pl
Created attachment 17878 Script that reproduced the lack of error messages The attached Perl script tests a matrix of arch/isa support for all exclusive load/store operations, and it seems LLVM allows pre-v6T2 arches to emit Thumb2 code. This is the script's output: LLVM passes with: echo 'ldrexd r2, r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'strexd r0, r2, r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'ldrexd r2, r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'strexd r0, r2, r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'ldrexd r2, r3, [r4]' | llvm-mc -triple armv6 -o /dev/null LLVM passes with: echo 'strexd r0, r2, r3, [r4]' | llvm-mc -triple armv6 -o /dev/null LLVM passes with: echo 'ldrexd r2, r3, [r4]' | llvm-mc -triple armv6t2 -o /dev/null LLVM passes with: echo 'strexd r0, r2, r3, [r4]' | llvm-mc -triple armv6t2 -o /dev/null LLVM passes with: echo 'ldrex r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'strex r2, r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'ldrex r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'strex r2, r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'ldrexb r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'strexb r2, r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'ldrexb r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'strexb r2, r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'ldrexb r3, [r4]' | llvm-mc -triple armv6 -o /dev/null LLVM passes with: echo 'strexb r2, r3, [r4]' | llvm-mc -triple armv6 -o /dev/null LLVM passes with: echo 'ldrexb r3, [r4]' | llvm-mc -triple armv6t2 -o /dev/null LLVM passes with: echo 'strexb r2, r3, [r4]' | llvm-mc -triple armv6t2 -o /dev/null LLVM passes with: echo 'ldrexh r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'strexh r2, r3, [r4]' | llvm-mc -triple armv4 -o /dev/null LLVM passes with: echo 'ldrexh r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'strexh r2, r3, [r4]' | llvm-mc -triple armv5 -o /dev/null LLVM passes with: echo 'ldrexh r3, [r4]' | llvm-mc -triple armv6 -o /dev/null LLVM passes with: echo 'strexh r2, r3, [r4]' | llvm-mc -triple armv6 -o /dev/null LLVM passes with: echo 'ldrexh r3, [r4]' | llvm-mc -triple armv6t2 -o /dev/null LLVM passes with: echo 'strexh r2, r3, [r4]' | llvm-mc -triple armv6t2 -o /dev/null Number of tests: 128 GCC failures: 0 LLVM failures: 28
Attached test_ldstrex.pl (2972 bytes, application/x-perl): Script that reproduced the lack of error messages
This bug was discovered while investigating Bug #31058
test_ldstrex.pl
(2972 bytes, application/x-perl)