class MachineOperand {
public:
enum MachineOperandType {
- MO_Register, // Register operand.
- MO_Immediate, // Immediate Operand
- MO_FPImmediate,
- MO_MachineBasicBlock, // MachineBasicBlock reference
- MO_FrameIndex, // Abstract Stack Frame Index
- MO_ConstantPoolIndex, // Address of indexed Constant in Constant Pool
- MO_JumpTableIndex, // Address of indexed Jump Table for switch
- MO_ExternalSymbol, // Name of external global symbol
- MO_GlobalAddress // Address of a global value
+ MO_Register, ///< Register operand.
+ MO_Immediate, ///< Immediate operand
+ MO_FPImmediate, ///< Floating-point immediate operand
+ MO_MachineBasicBlock, ///< MachineBasicBlock reference
+ MO_FrameIndex, ///< Abstract Stack Frame Index
+ MO_ConstantPoolIndex, ///< Address of indexed Constant in Constant Pool
+ MO_JumpTableIndex, ///< Address of indexed Jump Table for switch
+ MO_ExternalSymbol, ///< Name of external global symbol
+ MO_GlobalAddress ///< Address of a global value
};
private:
const char *SymbolName; // For MO_ExternalSymbol.
GlobalValue *GV; // For MO_GlobalAddress.
} Val;
- int Offset; // An offset from the object.
+ int64_t Offset; // An offset from the object.
} OffsetedInfo;
} Contents;
return Contents.OffsetedInfo.Val.GV;
}
- int getOffset() const {
+ int64_t getOffset() const {
assert((isGlobal() || isSymbol() || isCPI()) &&
"Wrong MachineOperand accessor");
return Contents.OffsetedInfo.Offset;
Contents.ImmVal = immVal;
}
- void setOffset(int Offset) {
+ void setOffset(int64_t Offset) {
assert((isGlobal() || isSymbol() || isCPI()) &&
"Wrong MachineOperand accessor");
Contents.OffsetedInfo.Offset = Offset;
Op.setIndex(Idx);
return Op;
}
- static MachineOperand CreateGA(GlobalValue *GV, int Offset) {
+ static MachineOperand CreateGA(GlobalValue *GV, int64_t Offset) {
MachineOperand Op(MachineOperand::MO_GlobalAddress);
Op.Contents.OffsetedInfo.Val.GV = GV;
Op.setOffset(Offset);
return Op;
}
- static MachineOperand CreateES(const char *SymName, int Offset = 0) {
+ static MachineOperand CreateES(const char *SymName, int64_t Offset = 0) {
MachineOperand Op(MachineOperand::MO_ExternalSymbol);
Op.Contents.OffsetedInfo.Val.SymbolName = SymName;
Op.setOffset(Offset);