parent
5cd9c6bcd8
commit
75c2ca3638
|
@ -5667,6 +5667,7 @@ let Inst{1-0} = 0b00;
|
|||
let Inst{7-5} = 0b000;
|
||||
let Inst{13-13} = 0b0;
|
||||
let Inst{31-16} = 0b0101010000000000;
|
||||
let hasSideEffects = 1;
|
||||
let isSolo = 1;
|
||||
}
|
||||
def J2_trap1 : HInst<
|
||||
|
@ -5679,6 +5680,7 @@ let Inst{7-5} = 0b000;
|
|||
let Inst{13-13} = 0b0;
|
||||
let Inst{31-21} = 0b01010100100;
|
||||
let hasNewValue = 1;
|
||||
let hasSideEffects = 1;
|
||||
let opNewValue = 0;
|
||||
let isSolo = 1;
|
||||
let Uses = [GOSP];
|
||||
|
@ -5692,6 +5694,7 @@ def J2_trap1_noregmap : HInst<
|
|||
tc_59a01ead, TypeMAPPING> {
|
||||
let isPseudo = 1;
|
||||
let isCodeGenOnly = 1;
|
||||
let hasSideEffects = 1;
|
||||
}
|
||||
def J4_cmpeq_f_jumpnv_nt : HInst<
|
||||
(outs),
|
||||
|
|
|
@ -1274,21 +1274,21 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM,
|
|||
// which default to "expand" for at least one type.
|
||||
|
||||
// Misc operations.
|
||||
setOperationAction(ISD::ConstantFP, MVT::f32, Legal); // Default: expand
|
||||
setOperationAction(ISD::ConstantFP, MVT::f64, Legal); // Default: expand
|
||||
|
||||
setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
|
||||
setOperationAction(ISD::JumpTable, MVT::i32, Custom);
|
||||
setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
|
||||
setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
|
||||
setOperationAction(ISD::INLINEASM, MVT::Other, Custom);
|
||||
setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
|
||||
setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
|
||||
setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
|
||||
setOperationAction(ISD::EH_RETURN, MVT::Other, Custom);
|
||||
setOperationAction(ISD::GLOBAL_OFFSET_TABLE, MVT::i32, Custom);
|
||||
setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
|
||||
setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
|
||||
setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
|
||||
setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
|
||||
setOperationAction(ISD::TRAP, MVT::Other, Legal);
|
||||
setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
|
||||
setOperationAction(ISD::JumpTable, MVT::i32, Custom);
|
||||
setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
|
||||
setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
|
||||
setOperationAction(ISD::INLINEASM, MVT::Other, Custom);
|
||||
setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
|
||||
setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
|
||||
setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
|
||||
setOperationAction(ISD::EH_RETURN, MVT::Other, Custom);
|
||||
setOperationAction(ISD::GLOBAL_OFFSET_TABLE, MVT::i32, Custom);
|
||||
setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
|
||||
setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
|
||||
|
||||
// Custom legalize GlobalAddress nodes into CONST32.
|
||||
setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
|
||||
|
|
|
@ -2987,6 +2987,8 @@ def: Pat<(HexagonALLOCA I32:$Rs, (i32 imm:$A)),
|
|||
def HexagonBARRIER: SDNode<"HexagonISD::BARRIER", SDTNone, [SDNPHasChain]>;
|
||||
def: Pat<(HexagonBARRIER), (Y2_barrier)>;
|
||||
|
||||
def: Pat<(trap), (J2_trap0 (i32 0))>;
|
||||
|
||||
// Read cycle counter.
|
||||
def SDTInt64Leaf: SDTypeProfile<1, 0, [SDTCisVT<0, i64>]>;
|
||||
def HexagonREADCYCLE: SDNode<"HexagonISD::READCYCLE", SDTInt64Leaf,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: llc -march=hexagon -trap-unreachable < %s | FileCheck %s
|
||||
; CHECK: call abort
|
||||
; CHECK: trap
|
||||
|
||||
define void @fred() #0 {
|
||||
unreachable
|
||||
|
|
Loading…
Reference in New Issue