OLD | NEW |
1 //===- subzero/src/IceTargetLoweringX8632.h - x86-32 lowering ---*- C++ -*-===// | 1 //===- subzero/src/IceTargetLoweringX8632.h - x86-32 lowering ---*- C++ -*-===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file declares the TargetLoweringX8632 class, which | 10 // This file declares the TargetLoweringX8632 class, which |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 // Ensure that a 64-bit Variable has been split into 2 32-bit | 60 // Ensure that a 64-bit Variable has been split into 2 32-bit |
61 // Variables, creating them if necessary. This is needed for all | 61 // Variables, creating them if necessary. This is needed for all |
62 // I64 operations, and it is needed for pushing F64 arguments for | 62 // I64 operations, and it is needed for pushing F64 arguments for |
63 // function calls using the 32-bit push instruction (though the | 63 // function calls using the 32-bit push instruction (though the |
64 // latter could be done by directly writing to the stack). | 64 // latter could be done by directly writing to the stack). |
65 void split64(Variable *Var); | 65 void split64(Variable *Var); |
66 void finishArgumentLowering(Variable *Arg, Variable *FramePtr, | 66 void finishArgumentLowering(Variable *Arg, Variable *FramePtr, |
67 size_t BasicFrameOffset, size_t &InArgsSizeBytes); | 67 size_t BasicFrameOffset, size_t &InArgsSizeBytes); |
68 Operand *loOperand(Operand *Operand); | 68 Operand *loOperand(Operand *Operand); |
69 Operand *hiOperand(Operand *Operand); | 69 Operand *hiOperand(Operand *Operand); |
70 x86::Address stackVarToAsmOperand(const Variable *Var) const; | 70 X8632::Address stackVarToAsmOperand(const Variable *Var) const; |
71 | 71 |
72 enum X86InstructionSet { | 72 enum X86InstructionSet { |
73 Begin, | 73 Begin, |
74 // SSE2 is the PNaCl baseline instruction set. | 74 // SSE2 is the PNaCl baseline instruction set. |
75 SSE2 = Begin, | 75 SSE2 = Begin, |
76 SSE4_1, | 76 SSE4_1, |
77 End | 77 End |
78 }; | 78 }; |
79 | 79 |
80 X86InstructionSet getInstructionSet() const { return InstructionSet; } | 80 X86InstructionSet getInstructionSet() const { return InstructionSet; } |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 }; | 521 }; |
522 | 522 |
523 template <> void ConstantInteger32::emit(GlobalContext *Ctx) const; | 523 template <> void ConstantInteger32::emit(GlobalContext *Ctx) const; |
524 template <> void ConstantInteger64::emit(GlobalContext *Ctx) const; | 524 template <> void ConstantInteger64::emit(GlobalContext *Ctx) const; |
525 template <> void ConstantFloat::emit(GlobalContext *Ctx) const; | 525 template <> void ConstantFloat::emit(GlobalContext *Ctx) const; |
526 template <> void ConstantDouble::emit(GlobalContext *Ctx) const; | 526 template <> void ConstantDouble::emit(GlobalContext *Ctx) const; |
527 | 527 |
528 } // end of namespace Ice | 528 } // end of namespace Ice |
529 | 529 |
530 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_H | 530 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_H |
OLD | NEW |