mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[mips] correct operand range for DINSM instruction
This patch corrects the definition of the DINSM instruction. Specification for DINSM instruction for Mips64 says that size operand should be 2 <= size <= 64, but it is defined as uimm5_inssize_plus1 which gives range of 1 .. 32. Patch by Aleksandar Beserminji. Differential Revision: https://reviews.llvm.org/D37683 llvm-svn: 313149
This commit is contained in:
parent
1e0f76a014
commit
288331a64a
@ -331,7 +331,7 @@ let AdditionalPredicates = [NotInMicroMips] in {
|
||||
EXT_FM<7>, ISA_MIPS64R2;
|
||||
def DINSU : InsBase<"dinsu", GPR64Opnd, uimm5_plus32, uimm5_inssize_plus1>,
|
||||
EXT_FM<6>, ISA_MIPS64R2;
|
||||
def DINSM : InsBase<"dinsm", GPR64Opnd, uimm5, uimm5_inssize_plus1>,
|
||||
def DINSM : InsBase<"dinsm", GPR64Opnd, uimm5, uimm_range_2_64>,
|
||||
EXT_FM<5>, ISA_MIPS64R2;
|
||||
}
|
||||
|
||||
|
@ -106,6 +106,7 @@ a:
|
||||
deret
|
||||
di $s8 # CHECK: di $fp # encoding: [0x41,0x7e,0x60,0x00]
|
||||
di # CHECK: di # encoding: [0x41,0x60,0x60,0x00]
|
||||
dinsm $2,$3,4,34 # CHECK: dinsm $2, $3, 4, 34 # encoding: [0x7c,0x62,0x29,0x05]
|
||||
ddiv $zero,$k0,$s3
|
||||
ddivu $zero,$s0,$s1
|
||||
div $zero,$25,$11
|
||||
|
@ -114,6 +114,7 @@ a:
|
||||
ddivu $2,$3,$4 # CHECK: ddivu $2, $3, $4 # encoding: [0x00,0x64,0x10,0x9f]
|
||||
di # CHECK: di # encoding: [0x41,0x60,0x60,0x00]
|
||||
di $s8 # CHECK: di $fp # encoding: [0x41,0x7e,0x60,0x00]
|
||||
dinsm $2,$3,4,34 # CHECK: dinsm $2, $3, 4, 34 # encoding: [0x7c,0x62,0x29,0x05]
|
||||
div $2,$3,$4 # CHECK: div $2, $3, $4 # encoding: [0x00,0x64,0x10,0x9a]
|
||||
divu $2,$3,$4 # CHECK: divu $2, $3, $4 # encoding: [0x00,0x64,0x10,0x9b]
|
||||
dlsa $2, $3, $4, 3 # CHECK: dlsa $2, $3, $4, 3 # encoding: [0x00,0x64,0x10,0x95]
|
||||
|
Loading…
x
Reference in New Issue
Block a user