1263320SdimPull in r199974 from upstream llvm trunk (by Venkatraman Govindaraju): 2263320Sdim 3263320Sdim [Sparc] Correct quad register list in the asm parser. 4263320Sdim Add test cases to check parsing of v9 double registers and their aliased quad registers. 5263320Sdim 6269012SemasteIntroduced here: http://svnweb.freebsd.org/changeset/base/262261 7263320Sdim 8263320SdimIndex: test/MC/Disassembler/Sparc/sparc-fp.txt 9263320Sdim=================================================================== 10263320Sdim--- test/MC/Disassembler/Sparc/sparc-fp.txt 11263320Sdim+++ test/MC/Disassembler/Sparc/sparc-fp.txt 12263320Sdim@@ -81,6 +81,12 @@ 13263320Sdim # CHECK: faddq %f0, %f4, %f8 14263320Sdim 0x91 0xa0 0x08 0x64 15263320Sdim 16263320Sdim+# CHECK: faddd %f32, %f34, %f62 17263320Sdim+0xbf 0xa0 0x48 0x43 18263320Sdim+ 19263320Sdim+# CHECK: faddq %f32, %f36, %f60 20263320Sdim+0xbb 0xa0 0x48 0x65 21263320Sdim+ 22263320Sdim # CHECK: fsubs %f0, %f4, %f8 23263320Sdim 0x91 0xa0 0x08 0xa4 24263320Sdim 25263320SdimIndex: test/MC/Sparc/sparc-fp-instructions.s 26263320Sdim=================================================================== 27263320Sdim--- test/MC/Sparc/sparc-fp-instructions.s 28263320Sdim+++ test/MC/Sparc/sparc-fp-instructions.s 29263320Sdim@@ -64,6 +64,12 @@ 30263320Sdim faddd %f0, %f4, %f8 31263320Sdim faddq %f0, %f4, %f8 32263320Sdim 33263320Sdim+ ! make sure we can handle V9 double registers and their aliased quad registers. 34263320Sdim+ ! CHECK: faddd %f32, %f34, %f62 ! encoding: [0xbf,0xa0,0x48,0x43] 35263320Sdim+ ! CHECK: faddq %f32, %f36, %f60 ! encoding: [0xbb,0xa0,0x48,0x65] 36263320Sdim+ faddd %f32, %f34, %f62 37263320Sdim+ faddq %f32, %f36, %f60 38263320Sdim+ 39263320Sdim ! CHECK: fsubs %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xa4] 40263320Sdim ! CHECK: fsubd %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xc4] 41263320Sdim ! CHECK: fsubq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xe4] 42263320SdimIndex: lib/Target/Sparc/AsmParser/SparcAsmParser.cpp 43263320Sdim=================================================================== 44263320Sdim--- lib/Target/Sparc/AsmParser/SparcAsmParser.cpp 45263320Sdim+++ lib/Target/Sparc/AsmParser/SparcAsmParser.cpp 46263320Sdim@@ -117,7 +117,7 @@ class SparcAsmParser : public MCTargetAsmParser { 47263320Sdim static unsigned QuadFPRegs[32] = { 48263320Sdim Sparc::Q0, Sparc::Q1, Sparc::Q2, Sparc::Q3, 49263320Sdim Sparc::Q4, Sparc::Q5, Sparc::Q6, Sparc::Q7, 50263320Sdim- Sparc::Q8, Sparc::Q7, Sparc::Q8, Sparc::Q9, 51263320Sdim+ Sparc::Q8, Sparc::Q9, Sparc::Q10, Sparc::Q11, 52263320Sdim Sparc::Q12, Sparc::Q13, Sparc::Q14, Sparc::Q15 }; 53263320Sdim 54263320Sdim 55