mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-27 12:26:08 +00:00
Add a new flag for targets where setjmp/longjmp saves/restores the signal mask,
and _setjmp/_longjmp should be used instead (for llvm.setjmp/llvm.longjmp). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23479 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -219,6 +219,12 @@ public:
|
|||||||
bool allowsUnalignedMemoryAccesses() const
|
bool allowsUnalignedMemoryAccesses() const
|
||||||
{ return allowUnalignedMemoryAccesses; }
|
{ return allowUnalignedMemoryAccesses; }
|
||||||
|
|
||||||
|
/// usesUnderscoreSetJmpLongJmp - Determine if we should use _setjmp or setjmp
|
||||||
|
/// to implement llvm.setjmp.
|
||||||
|
bool usesUnderscoreSetJmpLongJmp() const {
|
||||||
|
return UseUnderscoreSetJmpLongJmp;
|
||||||
|
}
|
||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
// TargetLowering Configuration Methods - These methods should be invoked by
|
// TargetLowering Configuration Methods - These methods should be invoked by
|
||||||
// the derived class constructor to configure this object for the target.
|
// the derived class constructor to configure this object for the target.
|
||||||
@@ -244,6 +250,13 @@ protected:
|
|||||||
ShiftAmtHandling = OORSA;
|
ShiftAmtHandling = OORSA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// setUseUnderscoreSetJmpLongJmp - Indicate whether this target prefers to
|
||||||
|
/// use _setjmp and _longjmp to or implement llvm.setjmp/llvm.longjmp or
|
||||||
|
/// the non _ versions. Defaults to false.
|
||||||
|
void setUseUnderscoreSetJmpLongJmp(bool Val) {
|
||||||
|
UseUnderscoreSetJmpLongJmp = Val;
|
||||||
|
}
|
||||||
|
|
||||||
/// setSetCCIxExpensive - This is a short term hack for targets that codegen
|
/// setSetCCIxExpensive - This is a short term hack for targets that codegen
|
||||||
/// setcc as a conditional branch. This encourages the code generator to fold
|
/// setcc as a conditional branch. This encourages the code generator to fold
|
||||||
/// setcc operations into other operations if possible.
|
/// setcc operations into other operations if possible.
|
||||||
@@ -380,6 +393,10 @@ private:
|
|||||||
/// the result of a setcc comparison operation.
|
/// the result of a setcc comparison operation.
|
||||||
SetCCResultValue SetCCResultContents;
|
SetCCResultValue SetCCResultContents;
|
||||||
|
|
||||||
|
/// UseUnderscoreSetJmpLongJmp - This target prefers to use _setjmp and
|
||||||
|
/// _longjmp to implement llvm.setjmp/llvm.longjmp. Defaults to false.
|
||||||
|
bool UseUnderscoreSetJmpLongJmp;
|
||||||
|
|
||||||
/// RegClassForVT - This indicates the default register class to use for
|
/// RegClassForVT - This indicates the default register class to use for
|
||||||
/// each ValueType the target supports natively.
|
/// each ValueType the target supports natively.
|
||||||
TargetRegisterClass *RegClassForVT[MVT::LAST_VALUETYPE];
|
TargetRegisterClass *RegClassForVT[MVT::LAST_VALUETYPE];
|
||||||
|
Reference in New Issue
Block a user