summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Gorny <mgorny@gentoo.org>2019-04-25 19:56:54 +0000
committerMichal Gorny <mgorny@gentoo.org>2019-04-25 19:56:54 +0000
commit3bf8d7639f49b03ddb80fbc107a0f67fe03397f6 (patch)
treef854623cd98c1439652de120e074c34a775db4d7
parent2bbb7feda84f59134a3d3d1e7a083a6857507ea4 (diff)
downloadbcm5719-llvm-3bf8d7639f49b03ddb80fbc107a0f67fe03397f6.tar.gz
bcm5719-llvm-3bf8d7639f49b03ddb80fbc107a0f67fe03397f6.zip
[lldb] [lit] Use constexpr and better constraints in Register tests
Use constexpr to explicitly indicate that we're dealing with integer constants, and provoke clang to assign them straight to registers whenever possible. Adjust input constraints in %mmN tests to "rm" as using integer constants is apparently disallowed there. Also use "i" for %rN tests, as we don't want clang to accidentally clobber those general purpose registers while assigning to them (however unlikely that is). llvm-svn: 359228
-rw-r--r--lldb/lit/Register/Inputs/x86-64-read.cpp36
-rw-r--r--lldb/lit/Register/Inputs/x86-mm-xmm-read.cpp38
2 files changed, 37 insertions, 37 deletions
diff --git a/lldb/lit/Register/Inputs/x86-64-read.cpp b/lldb/lit/Register/Inputs/x86-64-read.cpp
index 13051180b1f..0174038602b 100644
--- a/lldb/lit/Register/Inputs/x86-64-read.cpp
+++ b/lldb/lit/Register/Inputs/x86-64-read.cpp
@@ -5,23 +5,23 @@ struct alignas(16) xmm_t {
};
int main() {
- uint64_t r8 = 0x0102030405060708;
- uint64_t r9 = 0x1112131415161718;
- uint64_t r10 = 0x2122232425262728;
- uint64_t r11 = 0x3132333435363738;
- uint64_t r12 = 0x4142434445464748;
- uint64_t r13 = 0x5152535455565758;
- uint64_t r14 = 0x6162636465666768;
- uint64_t r15 = 0x7172737475767778;
+ constexpr uint64_t r8 = 0x0102030405060708;
+ constexpr uint64_t r9 = 0x1112131415161718;
+ constexpr uint64_t r10 = 0x2122232425262728;
+ constexpr uint64_t r11 = 0x3132333435363738;
+ constexpr uint64_t r12 = 0x4142434445464748;
+ constexpr uint64_t r13 = 0x5152535455565758;
+ constexpr uint64_t r14 = 0x6162636465666768;
+ constexpr uint64_t r15 = 0x7172737475767778;
- xmm_t xmm8 = { 0x020406080A0C0E01, 0x030507090B0D0F00 };
- xmm_t xmm9 = { 0x121416181A1C1E11, 0x131517191B1D1F10 };
- xmm_t xmm10 = { 0x222426282A2C2E21, 0x232527292B2D2F20 };
- xmm_t xmm11 = { 0x323436383A3C3E31, 0x333537393B3D3F30 };
- xmm_t xmm12 = { 0x424446484A4C4E41, 0x434547494B4D4F40 };
- xmm_t xmm13 = { 0x525456585A5C5E51, 0x535557595B5D5F50 };
- xmm_t xmm14 = { 0x626466686A6C6E61, 0x636567696B6D6F60 };
- xmm_t xmm15 = { 0x727476787A7C7E71, 0x737577797B7D7F70 };
+ constexpr xmm_t xmm8 = { 0x020406080A0C0E01, 0x030507090B0D0F00 };
+ constexpr xmm_t xmm9 = { 0x121416181A1C1E11, 0x131517191B1D1F10 };
+ constexpr xmm_t xmm10 = { 0x222426282A2C2E21, 0x232527292B2D2F20 };
+ constexpr xmm_t xmm11 = { 0x323436383A3C3E31, 0x333537393B3D3F30 };
+ constexpr xmm_t xmm12 = { 0x424446484A4C4E41, 0x434547494B4D4F40 };
+ constexpr xmm_t xmm13 = { 0x525456585A5C5E51, 0x535557595B5D5F50 };
+ constexpr xmm_t xmm14 = { 0x626466686A6C6E61, 0x636567696B6D6F60 };
+ constexpr xmm_t xmm15 = { 0x727476787A7C7E71, 0x737577797B7D7F70 };
asm volatile(
"movq %0, %%r8\n\t"
@@ -44,8 +44,8 @@ int main() {
"\n\t"
"int3"
:
- : "g"(r8), "g"(r9), "g"(r10), "g"(r11), "g"(r12), "g"(r13), "g"(r14),
- "g"(r15), "m"(xmm8), "m"(xmm9), "m"(xmm10), "m"(xmm11), "m"(xmm12),
+ : "i"(r8), "i"(r9), "i"(r10), "i"(r11), "i"(r12), "i"(r13), "i"(r14),
+ "i"(r15), "m"(xmm8), "m"(xmm9), "m"(xmm10), "m"(xmm11), "m"(xmm12),
"m"(xmm13), "m"(xmm14), "m"(xmm15)
: "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "%xmm8",
"%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15"
diff --git a/lldb/lit/Register/Inputs/x86-mm-xmm-read.cpp b/lldb/lit/Register/Inputs/x86-mm-xmm-read.cpp
index c4322fb9973..4e4b0ca93cc 100644
--- a/lldb/lit/Register/Inputs/x86-mm-xmm-read.cpp
+++ b/lldb/lit/Register/Inputs/x86-mm-xmm-read.cpp
@@ -5,23 +5,23 @@ struct alignas(16) xmm_t {
};
int main() {
- uint64_t mm0 = 0x0102030405060708;
- uint64_t mm1 = 0x1112131415161718;
- uint64_t mm2 = 0x2122232425262728;
- uint64_t mm3 = 0x3132333435363738;
- uint64_t mm4 = 0x4142434445464748;
- uint64_t mm5 = 0x5152535455565758;
- uint64_t mm6 = 0x6162636465666768;
- uint64_t mm7 = 0x7172737475767778;
+ constexpr uint64_t mm0 = 0x0102030405060708;
+ constexpr uint64_t mm1 = 0x1112131415161718;
+ constexpr uint64_t mm2 = 0x2122232425262728;
+ constexpr uint64_t mm3 = 0x3132333435363738;
+ constexpr uint64_t mm4 = 0x4142434445464748;
+ constexpr uint64_t mm5 = 0x5152535455565758;
+ constexpr uint64_t mm6 = 0x6162636465666768;
+ constexpr uint64_t mm7 = 0x7172737475767778;
- xmm_t xmm0 = { 0x020406080A0C0E01, 0x030507090B0D0F00 };
- xmm_t xmm1 = { 0x121416181A1C1E11, 0x131517191B1D1F10 };
- xmm_t xmm2 = { 0x222426282A2C2E21, 0x232527292B2D2F20 };
- xmm_t xmm3 = { 0x323436383A3C3E31, 0x333537393B3D3F30 };
- xmm_t xmm4 = { 0x424446484A4C4E41, 0x434547494B4D4F40 };
- xmm_t xmm5 = { 0x525456585A5C5E51, 0x535557595B5D5F50 };
- xmm_t xmm6 = { 0x626466686A6C6E61, 0x636567696B6D6F60 };
- xmm_t xmm7 = { 0x727476787A7C7E71, 0x737577797B7D7F70 };
+ constexpr xmm_t xmm0 = { 0x020406080A0C0E01, 0x030507090B0D0F00 };
+ constexpr xmm_t xmm1 = { 0x121416181A1C1E11, 0x131517191B1D1F10 };
+ constexpr xmm_t xmm2 = { 0x222426282A2C2E21, 0x232527292B2D2F20 };
+ constexpr xmm_t xmm3 = { 0x323436383A3C3E31, 0x333537393B3D3F30 };
+ constexpr xmm_t xmm4 = { 0x424446484A4C4E41, 0x434547494B4D4F40 };
+ constexpr xmm_t xmm5 = { 0x525456585A5C5E51, 0x535557595B5D5F50 };
+ constexpr xmm_t xmm6 = { 0x626466686A6C6E61, 0x636567696B6D6F60 };
+ constexpr xmm_t xmm7 = { 0x727476787A7C7E71, 0x737577797B7D7F70 };
asm volatile(
"movq %0, %%mm0\n\t"
@@ -44,9 +44,9 @@ int main() {
"\n\t"
"int3"
:
- : "g"(mm0), "g"(mm1), "g"(mm2), "g"(mm3), "g"(mm4), "g"(mm5), "g"(mm6),
- "g"(mm7), "m"(xmm0), "m"(xmm1), "m"(xmm2), "m"(xmm3), "m"(xmm4),
- "m"(xmm5), "m"(xmm6), "m"(xmm7)
+ : "rm"(mm0), "rm"(mm1), "rm"(mm2), "rm"(mm3), "rm"(mm4), "rm"(mm5),
+ "rm"(mm6), "rm"(mm7), "m"(xmm0), "m"(xmm1), "m"(xmm2), "m"(xmm3),
+ "m"(xmm4), "m"(xmm5), "m"(xmm6), "m"(xmm7)
: "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7",
"%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7"
);
OpenPOWER on IntegriCloud