OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_IA32_LITHIUM_CODEGEN_IA32_H_ | 5 #ifndef V8_IA32_LITHIUM_CODEGEN_IA32_H_ |
6 #define V8_IA32_LITHIUM_CODEGEN_IA32_H_ | 6 #define V8_IA32_LITHIUM_CODEGEN_IA32_H_ |
7 | 7 |
8 #include "src/ia32/lithium-ia32.h" | 8 #include "src/ia32/lithium-ia32.h" |
9 | 9 |
10 #include "src/base/logging.h" | 10 #include "src/base/logging.h" |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 template <class InstrType> | 263 template <class InstrType> |
264 void EmitFalseBranch(InstrType instr, Condition cc); | 264 void EmitFalseBranch(InstrType instr, Condition cc); |
265 void EmitNumberUntagD(LNumberUntagD* instr, Register input, Register temp, | 265 void EmitNumberUntagD(LNumberUntagD* instr, Register input, Register temp, |
266 XMMRegister result, NumberUntagDMode mode); | 266 XMMRegister result, NumberUntagDMode mode); |
267 | 267 |
268 // Emits optimized code for typeof x == "y". Modifies input register. | 268 // Emits optimized code for typeof x == "y". Modifies input register. |
269 // Returns the condition on which a final split to | 269 // Returns the condition on which a final split to |
270 // true and false label should be made, to optimize fallthrough. | 270 // true and false label should be made, to optimize fallthrough. |
271 Condition EmitTypeofIs(LTypeofIsAndBranch* instr, Register input); | 271 Condition EmitTypeofIs(LTypeofIsAndBranch* instr, Register input); |
272 | 272 |
273 // Emits optimized code for %_IsObject(x). Preserves input register. | |
274 // Returns the condition on which a final split to | |
275 // true and false label should be made, to optimize fallthrough. | |
276 Condition EmitIsObject(Register input, | |
277 Register temp1, | |
278 Label* is_not_object, | |
279 Label* is_object); | |
280 | |
281 // Emits optimized code for %_IsString(x). Preserves input register. | 273 // Emits optimized code for %_IsString(x). Preserves input register. |
282 // Returns the condition on which a final split to | 274 // Returns the condition on which a final split to |
283 // true and false label should be made, to optimize fallthrough. | 275 // true and false label should be made, to optimize fallthrough. |
284 Condition EmitIsString(Register input, | 276 Condition EmitIsString(Register input, |
285 Register temp1, | 277 Register temp1, |
286 Label* is_not_string, | 278 Label* is_not_string, |
287 SmiCheck check_needed); | 279 SmiCheck check_needed); |
288 | 280 |
289 // Emits optimized code for %_IsConstructCall(). | 281 // Emits optimized code for %_IsConstructCall(). |
290 // Caller should branch on equal condition. | 282 // Caller should branch on equal condition. |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 Label entry_; | 394 Label entry_; |
403 Label exit_; | 395 Label exit_; |
404 Label* external_exit_; | 396 Label* external_exit_; |
405 Label done_; | 397 Label done_; |
406 int instruction_index_; | 398 int instruction_index_; |
407 }; | 399 }; |
408 | 400 |
409 } } // namespace v8::internal | 401 } } // namespace v8::internal |
410 | 402 |
411 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ | 403 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ |
OLD | NEW |