OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 // LCmpJSObjectEq | 60 // LCmpJSObjectEq |
61 // LCmpJSObjectEqAndBranch | 61 // LCmpJSObjectEqAndBranch |
62 // LCmpT | 62 // LCmpT |
63 // LDivI | 63 // LDivI |
64 // LInstanceOf | 64 // LInstanceOf |
65 // LInstanceOfAndBranch | 65 // LInstanceOfAndBranch |
66 // LLoadKeyedFastElement | 66 // LLoadKeyedFastElement |
67 // LLoadKeyedGeneric | 67 // LLoadKeyedGeneric |
68 // LModI | 68 // LModI |
69 // LMulI | 69 // LMulI |
70 // LPower | |
71 // LShiftI | 70 // LShiftI |
72 // LSubI | 71 // LSubI |
73 // LCallConstantFunction | 72 // LCallConstantFunction |
74 // LCallFunction | 73 // LCallFunction |
75 // LCallGlobal | 74 // LCallGlobal |
76 // LCallKeyed | 75 // LCallKeyed |
77 // LCallKnownGlobal | 76 // LCallKnownGlobal |
78 // LCallNamed | 77 // LCallNamed |
79 // LCallRuntime | 78 // LCallRuntime |
80 // LCallStub | 79 // LCallStub |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 V(LoadNamedField) \ | 222 V(LoadNamedField) \ |
224 V(LoadNamedGeneric) \ | 223 V(LoadNamedGeneric) \ |
225 V(ModI) \ | 224 V(ModI) \ |
226 V(MulI) \ | 225 V(MulI) \ |
227 V(NumberTagD) \ | 226 V(NumberTagD) \ |
228 V(NumberTagI) \ | 227 V(NumberTagI) \ |
229 V(NumberUntagD) \ | 228 V(NumberUntagD) \ |
230 V(ObjectLiteral) \ | 229 V(ObjectLiteral) \ |
231 V(OsrEntry) \ | 230 V(OsrEntry) \ |
232 V(Parameter) \ | 231 V(Parameter) \ |
233 V(Power) \ | |
234 V(PushArgument) \ | 232 V(PushArgument) \ |
235 V(RegExpLiteral) \ | 233 V(RegExpLiteral) \ |
236 V(Return) \ | 234 V(Return) \ |
237 V(ShiftI) \ | 235 V(ShiftI) \ |
238 V(SmiTag) \ | 236 V(SmiTag) \ |
239 V(SmiUntag) \ | 237 V(SmiUntag) \ |
240 V(StackCheck) \ | 238 V(StackCheck) \ |
241 V(StoreGlobal) \ | 239 V(StoreGlobal) \ |
242 V(StoreKeyedFastElement) \ | 240 V(StoreKeyedFastElement) \ |
243 V(StoreKeyedGeneric) \ | 241 V(StoreKeyedGeneric) \ |
(...skipping 905 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 class LAddI: public LBinaryOperation { | 1147 class LAddI: public LBinaryOperation { |
1150 public: | 1148 public: |
1151 LAddI(LOperand* left, LOperand* right) | 1149 LAddI(LOperand* left, LOperand* right) |
1152 : LBinaryOperation(left, right) { } | 1150 : LBinaryOperation(left, right) { } |
1153 | 1151 |
1154 DECLARE_CONCRETE_INSTRUCTION(AddI, "add-i") | 1152 DECLARE_CONCRETE_INSTRUCTION(AddI, "add-i") |
1155 DECLARE_HYDROGEN_ACCESSOR(Add) | 1153 DECLARE_HYDROGEN_ACCESSOR(Add) |
1156 }; | 1154 }; |
1157 | 1155 |
1158 | 1156 |
1159 class LPower: public LBinaryOperation { | |
1160 public: | |
1161 LPower(LOperand* left, LOperand* right) | |
1162 : LBinaryOperation(left, right) { } | |
1163 | |
1164 DECLARE_CONCRETE_INSTRUCTION(Power, "power") | |
1165 DECLARE_HYDROGEN_ACCESSOR(Power) | |
1166 }; | |
1167 | |
1168 | |
1169 class LArithmeticD: public LBinaryOperation { | 1157 class LArithmeticD: public LBinaryOperation { |
1170 public: | 1158 public: |
1171 LArithmeticD(Token::Value op, LOperand* left, LOperand* right) | 1159 LArithmeticD(Token::Value op, LOperand* left, LOperand* right) |
1172 : LBinaryOperation(left, right), op_(op) { } | 1160 : LBinaryOperation(left, right), op_(op) { } |
1173 | 1161 |
1174 Token::Value op() const { return op_; } | 1162 Token::Value op() const { return op_; } |
1175 | 1163 |
1176 virtual void CompileToNative(LCodeGen* generator); | 1164 virtual void CompileToNative(LCodeGen* generator); |
1177 virtual const char* Mnemonic() const; | 1165 virtual const char* Mnemonic() const; |
1178 | 1166 |
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1895 | 1883 |
1896 int ParameterAt(int index); | 1884 int ParameterAt(int index); |
1897 int GetParameterStackSlot(int index) const; | 1885 int GetParameterStackSlot(int index) const; |
1898 int spill_slot_count() const { return spill_slot_count_; } | 1886 int spill_slot_count() const { return spill_slot_count_; } |
1899 HGraph* graph() const { return graph_; } | 1887 HGraph* graph() const { return graph_; } |
1900 const ZoneList<LInstruction*>* instructions() const { return &instructions_; } | 1888 const ZoneList<LInstruction*>* instructions() const { return &instructions_; } |
1901 void AddGapMove(int index, LOperand* from, LOperand* to); | 1889 void AddGapMove(int index, LOperand* from, LOperand* to); |
1902 LGap* GetGapAt(int index) const; | 1890 LGap* GetGapAt(int index) const; |
1903 bool IsGapAt(int index) const; | 1891 bool IsGapAt(int index) const; |
1904 int NearestGapPos(int index) const; | 1892 int NearestGapPos(int index) const; |
| 1893 int NearestNextGapPos(int index) const; |
1905 void MarkEmptyBlocks(); | 1894 void MarkEmptyBlocks(); |
1906 const ZoneList<LPointerMap*>* pointer_maps() const { return &pointer_maps_; } | 1895 const ZoneList<LPointerMap*>* pointer_maps() const { return &pointer_maps_; } |
1907 LLabel* GetLabel(int block_id) const { | 1896 LLabel* GetLabel(int block_id) const { |
1908 HBasicBlock* block = graph_->blocks()->at(block_id); | 1897 HBasicBlock* block = graph_->blocks()->at(block_id); |
1909 int first_instruction = block->first_instruction_index(); | 1898 int first_instruction = block->first_instruction_index(); |
1910 return LLabel::cast(instructions_[first_instruction]); | 1899 return LLabel::cast(instructions_[first_instruction]); |
1911 } | 1900 } |
1912 int LookupDestination(int block_id) const { | 1901 int LookupDestination(int block_id) const { |
1913 LLabel* cur = GetLabel(block_id); | 1902 LLabel* cur = GetLabel(block_id); |
1914 while (cur->replacement() != NULL) { | 1903 while (cur->replacement() != NULL) { |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2073 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2062 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2074 }; | 2063 }; |
2075 | 2064 |
2076 #undef DECLARE_HYDROGEN_ACCESSOR | 2065 #undef DECLARE_HYDROGEN_ACCESSOR |
2077 #undef DECLARE_INSTRUCTION | 2066 #undef DECLARE_INSTRUCTION |
2078 #undef DECLARE_CONCRETE_INSTRUCTION | 2067 #undef DECLARE_CONCRETE_INSTRUCTION |
2079 | 2068 |
2080 } } // namespace v8::internal | 2069 } } // namespace v8::internal |
2081 | 2070 |
2082 #endif // V8_IA32_LITHIUM_IA32_H_ | 2071 #endif // V8_IA32_LITHIUM_IA32_H_ |
OLD | NEW |