[SystemZ] Add MC support for R[NOX]SBG

CodeGen support will come later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186401 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Sandiford 2013-07-16 11:28:08 +00:00
parent 3764521658
commit c25d21e05b
4 changed files with 179 additions and 0 deletions

View File

@ -827,6 +827,14 @@ let Defs = [CC] in {
def RISBG : RotateSelectRIEf<"risbg", 0xEC55, GR64, GR64>;
}
// Rotate second operand left and perform a logical operation with selected
// bits of the first operand.
let Defs = [CC] in {
def RNSBG : RotateSelectRIEf<"rnsbg", 0xEC54, GR64, GR64>;
def ROSBG : RotateSelectRIEf<"rosbg", 0xEC56, GR64, GR64>;
def RXSBG : RotateSelectRIEf<"rxsbg", 0xEC57, GR64, GR64>;
}
//===----------------------------------------------------------------------===//
// Comparison
//===----------------------------------------------------------------------===//

View File

@ -4657,6 +4657,69 @@
# CHECK: risbg %r4, %r5, 6, 7, 8
0xec 0x45 0x06 0x07 0x08 0x55
# CHECK: rnsbg %r0, %r0, 0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x54
# CHECK: rnsbg %r0, %r0, 0, 0, 63
0xec 0x00 0x00 0x00 0x3f 0x54
# CHECK: rnsbg %r0, %r0, 0, 255, 0
0xec 0x00 0x00 0xff 0x00 0x54
# CHECK: rnsbg %r0, %r0, 255, 0, 0
0xec 0x00 0xff 0x00 0x00 0x54
# CHECK: rnsbg %r0, %r15, 0, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x54
# CHECK: rnsbg %r15, %r0, 0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x54
# CHECK: rnsbg %r4, %r5, 6, 7, 8
0xec 0x45 0x06 0x07 0x08 0x54
# CHECK: rosbg %r0, %r0, 0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x56
# CHECK: rosbg %r0, %r0, 0, 0, 63
0xec 0x00 0x00 0x00 0x3f 0x56
# CHECK: rosbg %r0, %r0, 0, 255, 0
0xec 0x00 0x00 0xff 0x00 0x56
# CHECK: rosbg %r0, %r0, 255, 0, 0
0xec 0x00 0xff 0x00 0x00 0x56
# CHECK: rosbg %r0, %r15, 0, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x56
# CHECK: rosbg %r15, %r0, 0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x56
# CHECK: rosbg %r4, %r5, 6, 7, 8
0xec 0x45 0x06 0x07 0x08 0x56
# CHECK: rxsbg %r0, %r0, 0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x57
# CHECK: rxsbg %r0, %r0, 0, 0, 63
0xec 0x00 0x00 0x00 0x3f 0x57
# CHECK: rxsbg %r0, %r0, 0, 255, 0
0xec 0x00 0x00 0xff 0x00 0x57
# CHECK: rxsbg %r0, %r0, 255, 0, 0
0xec 0x00 0xff 0x00 0x00 0x57
# CHECK: rxsbg %r0, %r15, 0, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x57
# CHECK: rxsbg %r15, %r0, 0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x57
# CHECK: rxsbg %r4, %r5, 6, 7, 8
0xec 0x45 0x06 0x07 0x08 0x57
# CHECK: rllg %r0, %r0, 0
0xeb 0x00 0x00 0x00 0x00 0x1c

View File

@ -2115,6 +2115,66 @@
risbg %r0,%r0,-1,0,0
risbg %r0,%r0,256,0,0
#CHECK: error: invalid operand
#CHECK: rnsbg %r0,%r0,0,0,-1
#CHECK: error: invalid operand
#CHECK: rnsbg %r0,%r0,0,0,64
#CHECK: error: invalid operand
#CHECK: rnsbg %r0,%r0,0,-1,0
#CHECK: error: invalid operand
#CHECK: rnsbg %r0,%r0,0,256,0
#CHECK: error: invalid operand
#CHECK: rnsbg %r0,%r0,-1,0,0
#CHECK: error: invalid operand
#CHECK: rnsbg %r0,%r0,256,0,0
rnsbg %r0,%r0,0,0,-1
rnsbg %r0,%r0,0,0,64
rnsbg %r0,%r0,0,-1,0
rnsbg %r0,%r0,0,256,0
rnsbg %r0,%r0,-1,0,0
rnsbg %r0,%r0,256,0,0
#CHECK: error: invalid operand
#CHECK: rosbg %r0,%r0,0,0,-1
#CHECK: error: invalid operand
#CHECK: rosbg %r0,%r0,0,0,64
#CHECK: error: invalid operand
#CHECK: rosbg %r0,%r0,0,-1,0
#CHECK: error: invalid operand
#CHECK: rosbg %r0,%r0,0,256,0
#CHECK: error: invalid operand
#CHECK: rosbg %r0,%r0,-1,0,0
#CHECK: error: invalid operand
#CHECK: rosbg %r0,%r0,256,0,0
rosbg %r0,%r0,0,0,-1
rosbg %r0,%r0,0,0,64
rosbg %r0,%r0,0,-1,0
rosbg %r0,%r0,0,256,0
rosbg %r0,%r0,-1,0,0
rosbg %r0,%r0,256,0,0
#CHECK: error: invalid operand
#CHECK: rxsbg %r0,%r0,0,0,-1
#CHECK: error: invalid operand
#CHECK: rxsbg %r0,%r0,0,0,64
#CHECK: error: invalid operand
#CHECK: rxsbg %r0,%r0,0,-1,0
#CHECK: error: invalid operand
#CHECK: rxsbg %r0,%r0,0,256,0
#CHECK: error: invalid operand
#CHECK: rxsbg %r0,%r0,-1,0,0
#CHECK: error: invalid operand
#CHECK: rxsbg %r0,%r0,256,0,0
rxsbg %r0,%r0,0,0,-1
rxsbg %r0,%r0,0,0,64
rxsbg %r0,%r0,0,-1,0
rxsbg %r0,%r0,0,256,0
rxsbg %r0,%r0,-1,0,0
rxsbg %r0,%r0,256,0,0
#CHECK: error: invalid operand
#CHECK: rll %r0,%r0,-524289
#CHECK: error: invalid operand

View File

@ -5849,6 +5849,54 @@
risbg %r15,%r0,0,0,0
risbg %r4,%r5,6,7,8
#CHECK: rnsbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x54]
#CHECK: rnsbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x54]
#CHECK: rnsbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x54]
#CHECK: rnsbg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x54]
#CHECK: rnsbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x54]
#CHECK: rnsbg %r15, %r0, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0x54]
#CHECK: rnsbg %r4, %r5, 6, 7, 8 # encoding: [0xec,0x45,0x06,0x07,0x08,0x54]
rnsbg %r0,%r0,0,0,0
rnsbg %r0,%r0,0,0,63
rnsbg %r0,%r0,0,255,0
rnsbg %r0,%r0,255,0,0
rnsbg %r0,%r15,0,0,0
rnsbg %r15,%r0,0,0,0
rnsbg %r4,%r5,6,7,8
#CHECK: rosbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x56]
#CHECK: rosbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x56]
#CHECK: rosbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x56]
#CHECK: rosbg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x56]
#CHECK: rosbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x56]
#CHECK: rosbg %r15, %r0, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0x56]
#CHECK: rosbg %r4, %r5, 6, 7, 8 # encoding: [0xec,0x45,0x06,0x07,0x08,0x56]
rosbg %r0,%r0,0,0,0
rosbg %r0,%r0,0,0,63
rosbg %r0,%r0,0,255,0
rosbg %r0,%r0,255,0,0
rosbg %r0,%r15,0,0,0
rosbg %r15,%r0,0,0,0
rosbg %r4,%r5,6,7,8
#CHECK: rxsbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x57]
#CHECK: rxsbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x57]
#CHECK: rxsbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x57]
#CHECK: rxsbg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x57]
#CHECK: rxsbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x57]
#CHECK: rxsbg %r15, %r0, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0x57]
#CHECK: rxsbg %r4, %r5, 6, 7, 8 # encoding: [0xec,0x45,0x06,0x07,0x08,0x57]
rxsbg %r0,%r0,0,0,0
rxsbg %r0,%r0,0,0,63
rxsbg %r0,%r0,0,255,0
rxsbg %r0,%r0,255,0,0
rxsbg %r0,%r15,0,0,0
rxsbg %r15,%r0,0,0,0
rxsbg %r4,%r5,6,7,8
#CHECK: rll %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x1d]
#CHECK: rll %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0x1d]
#CHECK: rll %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0x1d]