| OLD | NEW |
| 1 //===- subzero/src/IceTargetLoweringX8632.cpp - x86-32 lowering -----------===// | 1 //===- subzero/src/IceTargetLoweringX8632.cpp - x86-32 lowering -----------===// |
| 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 /// \file | 10 /// \file |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 // that the left-most argument ends up on the top of the stack at the lowest | 109 // that the left-most argument ends up on the top of the stack at the lowest |
| 110 // memory address. | 110 // memory address. |
| 111 // | 111 // |
| 112 // * Stack arguments of vector type are aligned to start at the next highest | 112 // * Stack arguments of vector type are aligned to start at the next highest |
| 113 // multiple of 16 bytes. Other stack arguments are aligned to 4 bytes. | 113 // multiple of 16 bytes. Other stack arguments are aligned to 4 bytes. |
| 114 // | 114 // |
| 115 // This intends to match the section "IA-32 Function Calling Convention" of | 115 // This intends to match the section "IA-32 Function Calling Convention" of |
| 116 // the document "OS X ABI Function Call Guide" by Apple. | 116 // the document "OS X ABI Function Call Guide" by Apple. |
| 117 NeedsStackAlignment = true; | 117 NeedsStackAlignment = true; |
| 118 | 118 |
| 119 using OperandList = std::vector<Operand *>; | |
| 120 OperandList XmmArgs; | 119 OperandList XmmArgs; |
| 121 OperandList StackArgs, StackArgLocations; | 120 OperandList StackArgs, StackArgLocations; |
| 122 uint32_t ParameterAreaSizeBytes = 0; | 121 uint32_t ParameterAreaSizeBytes = 0; |
| 123 | 122 |
| 124 // Classify each argument operand according to the location where the | 123 // Classify each argument operand according to the location where the |
| 125 // argument is passed. | 124 // argument is passed. |
| 126 for (SizeT i = 0, NumArgs = Instr->getNumArgs(); i < NumArgs; ++i) { | 125 for (SizeT i = 0, NumArgs = Instr->getNumArgs(); i < NumArgs; ++i) { |
| 127 Operand *Arg = Instr->getArg(i); | 126 Operand *Arg = Instr->getArg(i); |
| 128 Type Ty = Arg->getType(); | 127 Type Ty = Arg->getType(); |
| 129 // The PNaCl ABI requires the width of arguments to be at least 32 bits. | 128 // The PNaCl ABI requires the width of arguments to be at least 32 bits. |
| (...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 933 // case the high-level table has extra entries. | 932 // case the high-level table has extra entries. |
| 934 #define X(tag, sizeLog2, align, elts, elty, str) \ | 933 #define X(tag, sizeLog2, align, elts, elty, str) \ |
| 935 static_assert(_table1_##tag == _table2_##tag, \ | 934 static_assert(_table1_##tag == _table2_##tag, \ |
| 936 "Inconsistency between ICETYPEX8632_TABLE and ICETYPE_TABLE"); | 935 "Inconsistency between ICETYPEX8632_TABLE and ICETYPE_TABLE"); |
| 937 ICETYPE_TABLE | 936 ICETYPE_TABLE |
| 938 #undef X | 937 #undef X |
| 939 } // end of namespace dummy3 | 938 } // end of namespace dummy3 |
| 940 } // end of anonymous namespace | 939 } // end of anonymous namespace |
| 941 | 940 |
| 942 } // end of namespace Ice | 941 } // end of namespace Ice |
| OLD | NEW |