OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 3412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3423 | 3423 |
3424 void CodeGenerator::GenerateRandomPositiveSmi(ZoneList<Expression*>* a) { | 3424 void CodeGenerator::GenerateRandomPositiveSmi(ZoneList<Expression*>* a) { |
3425 UNIMPLEMENTED(); | 3425 UNIMPLEMENTED(); |
3426 } | 3426 } |
3427 | 3427 |
3428 void CodeGenerator::GenerateFastMathOp(MathOp op, ZoneList<Expression*>* args) { | 3428 void CodeGenerator::GenerateFastMathOp(MathOp op, ZoneList<Expression*>* args) { |
3429 UNIMPLEMENTED(); | 3429 UNIMPLEMENTED(); |
3430 } | 3430 } |
3431 | 3431 |
3432 | 3432 |
| 3433 void CodeGenerator::GenerateClassOf(ZoneList<Expression*>* args) { |
| 3434 // TODO(X64): Optimize this like it's done on IA-32. |
| 3435 ASSERT(args->length() == 1); |
| 3436 Load(args->at(0)); // Load the object. |
| 3437 Result result = frame_->CallRuntime(Runtime::kClassOf, 1); |
| 3438 frame_->Push(&result); |
| 3439 } |
| 3440 |
| 3441 |
3433 void CodeGenerator::GenerateSetValueOf(ZoneList<Expression*>* args) { | 3442 void CodeGenerator::GenerateSetValueOf(ZoneList<Expression*>* args) { |
3434 ASSERT(args->length() == 2); | 3443 ASSERT(args->length() == 2); |
3435 JumpTarget leave; | 3444 JumpTarget leave; |
3436 Load(args->at(0)); // Load the object. | 3445 Load(args->at(0)); // Load the object. |
3437 Load(args->at(1)); // Load the value. | 3446 Load(args->at(1)); // Load the value. |
3438 Result value = frame_->Pop(); | 3447 Result value = frame_->Pop(); |
3439 Result object = frame_->Pop(); | 3448 Result object = frame_->Pop(); |
3440 value.ToRegister(); | 3449 value.ToRegister(); |
3441 object.ToRegister(); | 3450 object.ToRegister(); |
3442 | 3451 |
(...skipping 3355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6798 break; | 6807 break; |
6799 default: | 6808 default: |
6800 UNREACHABLE(); | 6809 UNREACHABLE(); |
6801 } | 6810 } |
6802 } | 6811 } |
6803 | 6812 |
6804 | 6813 |
6805 #undef __ | 6814 #undef __ |
6806 | 6815 |
6807 } } // namespace v8::internal | 6816 } } // namespace v8::internal |
OLD | NEW |