// Restore registers and dealloc return function call.
let isCall = 1, isBarrier = 1, isReturn = 1, isTerminator = 1,
- Defs = [R29, R30, R31, PC] in {
+ Defs = [R29, R30, R31, PC], isCodeGenOnly = 1 in {
let validSubTargets = HasV4SubT in
def RESTORE_DEALLOC_RET_JMP_V4 : JInst<(outs),
(ins calltarget:$dst),
}
// Restore registers and dealloc frame before a tail call.
-let isCall = 1, isBarrier = 1,
+let isCall = 1, isBarrier = 1, isCodeGenOnly = 1,
Defs = [R29, R30, R31, PC] in {
let validSubTargets = HasV4SubT in
def RESTORE_DEALLOC_BEFORE_TAILCALL_V4 : JInst<(outs),
}
// Save registers function call.
-let isCall = 1, isBarrier = 1,
+let isCall = 1, isBarrier = 1, isCodeGenOnly = 1,
Uses = [R29, R31] in {
def SAVE_REGISTERS_CALL_V4 : JInst<(outs),
(ins calltarget:$dst),
// if ([!]Pv[.new]) mem[bhwd](##global)=Rt
//===----------------------------------------------------------------------===//
-let validSubTargets = HasV4SubT in
+let validSubTargets = HasV4SubT, isCodeGenOnly = 1 in
class T_StoreGP <string mnemonic, string BaseOp, RegisterClass RC,
Operand ImmOp, bits<2> MajOp, bit isHalf = 0>
: T_StoreAbsGP <mnemonic, RC, ImmOp, MajOp, globaladdress, 0, isHalf> {
let BaseOpcode = BaseOp#_abs;
}
-let validSubTargets = HasV4SubT in
+let validSubTargets = HasV4SubT, isCodeGenOnly = 1 in
multiclass ST_GP <string mnemonic, string BaseOp, Operand ImmOp,
bits<2> MajOp, bit isHalf = 0> {
// Set BaseOpcode same as absolute addressing instructions so that
// if ([!]Pv[.new]) Rx=mem[bhwd](##global)
//===----------------------------------------------------------------------===//
+let isCodeGenOnly = 1 in
class T_LoadGP <string mnemonic, string BaseOp, RegisterClass RC, Operand ImmOp,
bits<3> MajOp>
: T_LoadAbsGP <mnemonic, RC, ImmOp, MajOp, globaladdress, 0>, PredNewRel {
let Inst{12-8} = Rtt;
}
-let hasSideEffects = 0 in
+let hasSideEffects = 0, isCodeGenOnly = 1 in
def A4_boundscheck : MInst <
(outs PredRegs:$Pd), (ins IntRegs:$Rs, DoubleRegs:$Rtt),
"$Pd=boundscheck($Rs,$Rtt)">;