diff options
author | Matheus Almeida <matheus.almeida@imgtec.com> | 2013-10-21 12:43:54 +0000 |
---|---|---|
committer | Matheus Almeida <matheus.almeida@imgtec.com> | 2013-10-21 12:43:54 +0000 |
commit | 83d797de4a58661d18ce7f53953767cf00be0fdd (patch) | |
tree | 205282d6c3abedf4231b6615e24147868af0754c | |
parent | b2ccade3434b7ed09d087d2484e5af0fd64903fd (diff) | |
download | bcm5719-llvm-83d797de4a58661d18ce7f53953767cf00be0fdd.tar.gz bcm5719-llvm-83d797de4a58661d18ce7f53953767cf00be0fdd.zip |
[mips][msa] Direct Object Emission support for MOVE.v.
llvm-svn: 193080
-rw-r--r-- | llvm/lib/Target/Mips/MipsMSAInstrFormats.td | 5 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MipsMSAInstrInfo.td | 4 | ||||
-rw-r--r-- | llvm/test/MC/Mips/msa/test_elm.s | 3 |
3 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/Target/Mips/MipsMSAInstrFormats.td b/llvm/lib/Target/Mips/MipsMSAInstrFormats.td index 8fe4dbca569..6e5a5eaf313 100644 --- a/llvm/lib/Target/Mips/MipsMSAInstrFormats.td +++ b/llvm/lib/Target/Mips/MipsMSAInstrFormats.td @@ -146,7 +146,12 @@ class MSA_3R_INDEX_FMT<bits<3> major, bits<2> df, bits<6> minor>: MSAInst { } class MSA_ELM_FMT<bits<10> major, bits<6> minor>: MSAInst { + bits<5> ws; + bits<5> wd; + let Inst{25-16} = major; + let Inst{15-11} = ws; + let Inst{10-6} = wd; let Inst{5-0} = minor; } diff --git a/llvm/lib/Target/Mips/MipsMSAInstrInfo.td b/llvm/lib/Target/Mips/MipsMSAInstrInfo.td index 09c06bcd8ab..b4d05f7438e 100644 --- a/llvm/lib/Target/Mips/MipsMSAInstrInfo.td +++ b/llvm/lib/Target/Mips/MipsMSAInstrInfo.td @@ -2158,8 +2158,8 @@ class MOD_U_W_DESC : MSA_3R_DESC_BASE<"mod_u.w", urem, MSA128WOpnd>; class MOD_U_D_DESC : MSA_3R_DESC_BASE<"mod_u.d", urem, MSA128DOpnd>; class MOVE_V_DESC { - dag OutOperandList = (outs MSA128B:$wd); - dag InOperandList = (ins MSA128B:$ws); + dag OutOperandList = (outs MSA128BOpnd:$wd); + dag InOperandList = (ins MSA128BOpnd:$ws); string AsmString = "move.v\t$wd, $ws"; list<dag> Pattern = []; InstrItinClass Itinerary = NoItinerary; diff --git a/llvm/test/MC/Mips/msa/test_elm.s b/llvm/test/MC/Mips/msa/test_elm.s index 6b467077305..1d0483826a9 100644 --- a/llvm/test/MC/Mips/msa/test_elm.s +++ b/llvm/test/MC/Mips/msa/test_elm.s @@ -16,6 +16,7 @@ # CHECK: splati.h $w24, $w28[1] # encoding: [0x78,0x61,0xe6,0x19] # CHECK: splati.w $w13, $w18[0] # encoding: [0x78,0x70,0x93,0x59] # CHECK: splati.d $w28, $w1[0] # encoding: [0x78,0x78,0x0f,0x19] +# CHECK: move.v $w23, $w24 # encoding: [0x78,0xbe,0xc5,0xd9] # CHECKOBJDUMP: copy_s.b $13, $w8[2] # CHECKOBJDUMP: copy_s.h $1, $w25[0] @@ -31,6 +32,7 @@ # CHECKOBJDUMP: splati.h $w24, $w28[1] # CHECKOBJDUMP: splati.w $w13, $w18[0] # CHECKOBJDUMP: splati.d $w28, $w1[0] +# CHECKOBJDUMP: move.v $w23, $w24 copy_s.b $13, $w8[2] copy_s.h $1, $w25[0] @@ -46,3 +48,4 @@ splati.h $w24, $w28[1] splati.w $w13, $w18[0] splati.d $w28, $w1[0] + move.v $w23, $w24 |