mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
More flexible TargetLowering LSR hooks for testing whether an immediate is a legal target address immediate or scale.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35074 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -3152,8 +3152,9 @@ isOperandValidForConstraint(SDOperand Op, char Letter, SelectionDAG &DAG) {
|
||||
}
|
||||
|
||||
/// isLegalAddressImmediate - Return true if the integer value can be used
|
||||
/// as the offset of the target addressing mode.
|
||||
bool PPCTargetLowering::isLegalAddressImmediate(int64_t V) const {
|
||||
/// as the offset of the target addressing mode for load / store of the
|
||||
/// given type.
|
||||
bool PPCTargetLowering::isLegalAddressImmediate(int64_t V,const Type *Ty) const{
|
||||
// PPC allows a sign-extended 16-bit immediate field.
|
||||
return (V > -(1 << 16) && V < (1 << 16)-1);
|
||||
}
|
||||
|
@@ -237,9 +237,13 @@ namespace llvm {
|
||||
SelectionDAG &DAG);
|
||||
|
||||
/// isLegalAddressImmediate - Return true if the integer value can be used
|
||||
/// as the offset of the target addressing mode.
|
||||
virtual bool isLegalAddressImmediate(int64_t V) const;
|
||||
virtual bool isLegalAddressImmediate(llvm::GlobalValue*) const;
|
||||
/// as the offset of the target addressing mode for load / store of the
|
||||
/// given type.
|
||||
virtual bool isLegalAddressImmediate(int64_t V, const Type *Ty) const;
|
||||
|
||||
/// isLegalAddressImmediate - Return true if the GlobalValue can be used as
|
||||
/// the offset of the target addressing mode.
|
||||
virtual bool isLegalAddressImmediate(GlobalValue *GV) const;
|
||||
|
||||
SDOperand LowerFRAMEADDR(SDOperand Op, SelectionDAG &DAG);
|
||||
};
|
||||
|
Reference in New Issue
Block a user