projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
inline GetGlobalValueSymbol into the rest its callers and
[oota-llvm.git]
/
lib
/
Target
/
Alpha
/
AlphaInstrFormats.td
diff --git
a/lib/Target/Alpha/AlphaInstrFormats.td
b/lib/Target/Alpha/AlphaInstrFormats.td
index 259e9afe22c756faf581a7d3a8e1ca162957d15b..6d82875fad2d7d80ba86be1b27907d7cd2690170 100644
(file)
--- a/
lib/Target/Alpha/AlphaInstrFormats.td
+++ b/
lib/Target/Alpha/AlphaInstrFormats.td
@@
-2,8
+2,8
@@
//
// The LLVM Compiler Infrastructure
//
//
// The LLVM Compiler Infrastructure
//
-// This file
was developed by the LLVM research group and is distributed under
-//
the University of Illinois Open Source
License. See LICENSE.TXT for details.
+// This file
is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
//
//===----------------------------------------------------------------------===//
//
@@
-38,11
+38,10
@@
class InstAlpha<bits<6> op, string asmstr, InstrItinClass itin> : Instruction {
//3.3.1
//3.3.1
-class MForm<bits<6> opcode, bit
store, bit
load, string asmstr, list<dag> pattern, InstrItinClass itin>
+class MForm<bits<6> opcode, bit load, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
- let isStore = store;
- let isLoad = load;
+ let canFoldAsLoad = load;
let Defs = [R28]; //We may use this for frame index calculations, so reserve it here
bits<5> Ra;
let Defs = [R28]; //We may use this for frame index calculations, so reserve it here
bits<5> Ra;
@@
-57,11
+56,20
@@
class MfcForm<bits<6> opcode, bits<16> fc, string asmstr, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
bits<5> Ra;
: InstAlpha<opcode, asmstr, itin> {
bits<5> Ra;
- let OperandList = (ops GPRC:$RA);
+ let OutOperandList = (ops GPRC:$RA);
+ let InOperandList = (ops);
let Inst{25-21} = Ra;
let Inst{20-16} = 0;
let Inst{15-0} = fc;
}
let Inst{25-21} = Ra;
let Inst{20-16} = 0;
let Inst{15-0} = fc;
}
+class MfcPForm<bits<6> opcode, bits<16> fc, string asmstr, InstrItinClass itin>
+ : InstAlpha<opcode, asmstr, itin> {
+ let OutOperandList = (ops);
+ let InOperandList = (ops);
+ let Inst{25-21} = 0;
+ let Inst{20-16} = 0;
+ let Inst{15-0} = fc;
+}
class MbrForm<bits<6> opcode, bits<2> TB, dag OL, string asmstr, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
class MbrForm<bits<6> opcode, bits<2> TB, dag OL, string asmstr, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
@@
-69,7
+77,8
@@
class MbrForm<bits<6> opcode, bits<2> TB, dag OL, string asmstr, InstrItinClass
bits<5> Rb;
bits<14> disp;
bits<5> Rb;
bits<14> disp;
- let OperandList = OL;
+ let OutOperandList = (ops);
+ let InOperandList = OL;
let Inst{25-21} = Ra;
let Inst{20-16} = Rb;
let Inst{25-21} = Ra;
let Inst{20-16} = Rb;
@@
-83,7
+92,8
@@
class MbrpForm<bits<6> opcode, bits<2> TB, dag OL, string asmstr, list<dag> patt
bits<5> Rb;
bits<14> disp;
bits<5> Rb;
bits<14> disp;
- let OperandList = OL;
+ let OutOperandList = (ops);
+ let InOperandList = OL;
let Inst{25-21} = Ra;
let Inst{20-16} = Rb;
let Inst{25-21} = Ra;
let Inst{20-16} = Rb;
@@
-94,10
+104,11
@@
class MbrpForm<bits<6> opcode, bits<2> TB, dag OL, string asmstr, list<dag> patt
//3.3.2
def target : Operand<OtherVT> {}
//3.3.2
def target : Operand<OtherVT> {}
-let isBranch = 1, isTerminator = 1, hasCtrlDep = 1
, noResults = 1
in {
+let isBranch = 1, isTerminator = 1, hasCtrlDep = 1 in {
class BFormN<bits<6> opcode, dag OL, string asmstr, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
class BFormN<bits<6> opcode, dag OL, string asmstr, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
- let OperandList = OL;
+ let OutOperandList = (ops);
+ let InOperandList = OL;
bits<64> Opc; //dummy
bits<5> Ra;
bits<21> disp;
bits<64> Opc; //dummy
bits<5> Ra;
bits<21> disp;
@@
-111,7
+122,8
@@
let isBranch = 1, isTerminator = 1 in
class BFormD<bits<6> opcode, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
class BFormD<bits<6> opcode, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
- let OperandList = (ops target:$DISP);
+ let OutOperandList = (ops);
+ let InOperandList = (ops target:$DISP);
bits<5> Ra;
bits<21> disp;
bits<5> Ra;
bits<21> disp;
@@
-123,7
+135,8
@@
class BFormD<bits<6> opcode, string asmstr, list<dag> pattern, InstrItinClass it
class OForm<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
class OForm<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
- let OperandList = (ops GPRC:$RC, GPRC:$RA, GPRC:$RB);
+ let OutOperandList = (outs GPRC:$RC);
+ let InOperandList = (ins GPRC:$RA, GPRC:$RB);
bits<5> Rc;
bits<5> Ra;
bits<5> Rc;
bits<5> Ra;
@@
-141,7
+154,8
@@
class OForm<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, Instr
class OForm2<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
class OForm2<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
- let OperandList = (ops GPRC:$RC, GPRC:$RB);
+ let OutOperandList = (outs GPRC:$RC);
+ let InOperandList = (ins GPRC:$RB);
bits<5> Rc;
bits<5> Rb;
bits<5> Rc;
bits<5> Rb;
@@
-158,7
+172,8
@@
class OForm2<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, Inst
class OForm4<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
class OForm4<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
- let OperandList = (ops GPRC:$RDEST, GPRC:$RCOND, GPRC:$RTRUE, GPRC:$RFALSE);
+ let OutOperandList = (outs GPRC:$RDEST);
+ let InOperandList = (ins GPRC:$RCOND, GPRC:$RTRUE, GPRC:$RFALSE);
let Constraints = "$RFALSE = $RDEST";
let DisableEncoding = "$RFALSE";
let Constraints = "$RFALSE = $RDEST";
let DisableEncoding = "$RFALSE";
@@
-180,7
+195,8
@@
class OForm4<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, Inst
class OFormL<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
class OFormL<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
- let OperandList = (ops GPRC:$RC, GPRC:$RA, u8imm:$L);
+ let OutOperandList = (outs GPRC:$RC);
+ let InOperandList = (ins GPRC:$RA, u8imm:$L);
bits<5> Rc;
bits<5> Ra;
bits<5> Rc;
bits<5> Ra;
@@
-197,7
+213,8
@@
class OFormL<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, Inst
class OForm4L<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
class OForm4L<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
let Pattern = pattern;
- let OperandList = (ops GPRC:$RDEST, GPRC:$RCOND, s64imm:$RTRUE, GPRC:$RFALSE);
+ let OutOperandList = (outs GPRC:$RDEST);
+ let InOperandList = (ins GPRC:$RCOND, s64imm:$RTRUE, GPRC:$RFALSE);
let Constraints = "$RFALSE = $RDEST";
let DisableEncoding = "$RFALSE";
let Constraints = "$RFALSE = $RDEST";
let DisableEncoding = "$RFALSE";
@@
-233,7
+250,8
@@
class FPForm<bits<6> opcode, bits<11> fun, string asmstr, list<dag> pattern, Ins
//3.3.5
class PALForm<bits<6> opcode, dag OL, string asmstr, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
//3.3.5
class PALForm<bits<6> opcode, dag OL, string asmstr, InstrItinClass itin>
: InstAlpha<opcode, asmstr, itin> {
- let OperandList = OL;
+ let OutOperandList = (ops);
+ let InOperandList = OL;
bits<26> Function;
let Inst{25-0} = Function;
bits<26> Function;
let Inst{25-0} = Function;
@@
-241,9
+259,10
@@
class PALForm<bits<6> opcode, dag OL, string asmstr, InstrItinClass itin>
// Pseudo instructions.
// Pseudo instructions.
-class PseudoInstAlpha<dag OL, string nm, list<dag> pattern, InstrItinClass itin>
+class PseudoInstAlpha<dag O
OL, dag IO
L, string nm, list<dag> pattern, InstrItinClass itin>
: InstAlpha<0, nm, itin> {
: InstAlpha<0, nm, itin> {
- let OperandList = OL;
+ let OutOperandList = OOL;
+ let InOperandList = IOL;
let Pattern = pattern;
}
let Pattern = pattern;
}