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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_IA32 | 7 #if V8_TARGET_ARCH_IA32 |
8 | 8 |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 4705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4716 } else { | 4716 } else { |
4717 __ Push(isolate()->factory()->false_value()); | 4717 __ Push(isolate()->factory()->false_value()); |
4718 } | 4718 } |
4719 __ bind(&done); | 4719 __ bind(&done); |
4720 } | 4720 } |
4721 break; | 4721 break; |
4722 } | 4722 } |
4723 | 4723 |
4724 case Token::TYPEOF: { | 4724 case Token::TYPEOF: { |
4725 Comment cmnt(masm_, "[ UnaryOperation (TYPEOF)"); | 4725 Comment cmnt(masm_, "[ UnaryOperation (TYPEOF)"); |
4726 { StackValueContext context(this); | 4726 { |
| 4727 AccumulatorValueContext context(this); |
4727 VisitForTypeofValue(expr->expression()); | 4728 VisitForTypeofValue(expr->expression()); |
4728 } | 4729 } |
4729 __ CallRuntime(Runtime::kTypeof, 1); | 4730 __ mov(ebx, eax); |
| 4731 TypeofStub typeof_stub(isolate()); |
| 4732 __ CallStub(&typeof_stub); |
4730 context()->Plug(eax); | 4733 context()->Plug(eax); |
4731 break; | 4734 break; |
4732 } | 4735 } |
4733 | 4736 |
4734 default: | 4737 default: |
4735 UNREACHABLE(); | 4738 UNREACHABLE(); |
4736 } | 4739 } |
4737 } | 4740 } |
4738 | 4741 |
4739 | 4742 |
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5369 DCHECK_EQ(isolate->builtins()->OsrAfterStackCheck()->entry(), | 5372 DCHECK_EQ(isolate->builtins()->OsrAfterStackCheck()->entry(), |
5370 Assembler::target_address_at(call_target_address, | 5373 Assembler::target_address_at(call_target_address, |
5371 unoptimized_code)); | 5374 unoptimized_code)); |
5372 return OSR_AFTER_STACK_CHECK; | 5375 return OSR_AFTER_STACK_CHECK; |
5373 } | 5376 } |
5374 | 5377 |
5375 | 5378 |
5376 } } // namespace v8::internal | 5379 } } // namespace v8::internal |
5377 | 5380 |
5378 #endif // V8_TARGET_ARCH_IA32 | 5381 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |