1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

Fix some issues exposed by more testing. XORIS had the wrong operands

specified.  The various *imm operands defined by PPC are really all i32,
even though the actual immediate is restricted to a smaller value in it.

llvm-svn: 23352
This commit is contained in:
Chris Lattner 2005-09-14 20:53:05 +00:00
parent 901ddab7b1
commit 3e8d9d8d08

View File

@ -238,16 +238,16 @@ class isDOT {
//===----------------------------------------------------------------------===//
// PowerPC Operand Definitions.
def u5imm : Operand<i8> {
def u5imm : Operand<i32> {
let PrintMethod = "printU5ImmOperand";
}
def u6imm : Operand<i8> {
def u6imm : Operand<i32> {
let PrintMethod = "printU6ImmOperand";
}
def s16imm : Operand<i16> {
def s16imm : Operand<i32> {
let PrintMethod = "printS16ImmOperand";
}
def u16imm : Operand<i16> {
def u16imm : Operand<i32> {
let PrintMethod = "printU16ImmOperand";
}
def target : Operand<i32> {
@ -409,7 +409,7 @@ def XORI : DForm_4<26, (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
[(set GPRC:$dst, (xor GPRC:$src1, immZExt16:$src2))]>;
def XORIS : DForm_4<27, (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
"xoris $dst, $src1, $src2",
[(set GPRC:$dst, (xor GPRC:$src2, imm16Shifted:$src2))]>;
[(set GPRC:$dst, (xor GPRC:$src1, imm16Shifted:$src2))]>;
def NOP : DForm_4_zero<24, (ops), "nop">;
def CMPI : DForm_5<11, (ops CRRC:$crD, i1imm:$L, GPRC:$rA, s16imm:$imm),
"cmpi $crD, $L, $rA, $imm">;