OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 3432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3443 | 3443 |
3444 // Pick the right runtime function to call. | 3444 // Pick the right runtime function to call. |
3445 if (instr->hydrogen()->depth() > 1) { | 3445 if (instr->hydrogen()->depth() > 1) { |
3446 CallRuntime(Runtime::kCreateObjectLiteral, 4, instr); | 3446 CallRuntime(Runtime::kCreateObjectLiteral, 4, instr); |
3447 } else { | 3447 } else { |
3448 CallRuntime(Runtime::kCreateObjectLiteralShallow, 4, instr); | 3448 CallRuntime(Runtime::kCreateObjectLiteralShallow, 4, instr); |
3449 } | 3449 } |
3450 } | 3450 } |
3451 | 3451 |
3452 | 3452 |
| 3453 void LCodeGen::DoToFastProperties(LToFastProperties* instr) { |
| 3454 ASSERT(ToRegister(instr->InputAt(0)).is(r0)); |
| 3455 __ push(r0); |
| 3456 CallRuntime(Runtime::kToFastProperties, 1, instr); |
| 3457 } |
| 3458 |
| 3459 |
3453 void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) { | 3460 void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) { |
3454 Label materialized; | 3461 Label materialized; |
3455 // Registers will be used as follows: | 3462 // Registers will be used as follows: |
3456 // r3 = JS function. | 3463 // r3 = JS function. |
3457 // r7 = literals array. | 3464 // r7 = literals array. |
3458 // r1 = regexp literal. | 3465 // r1 = regexp literal. |
3459 // r0 = regexp literal clone. | 3466 // r0 = regexp literal clone. |
3460 // r2 and r4-r6 are used as temporaries. | 3467 // r2 and r4-r6 are used as temporaries. |
3461 __ ldr(r3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); | 3468 __ ldr(r3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
3462 __ ldr(r7, FieldMemOperand(r3, JSFunction::kLiteralsOffset)); | 3469 __ ldr(r7, FieldMemOperand(r3, JSFunction::kLiteralsOffset)); |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3690 | 3697 |
3691 | 3698 |
3692 void LCodeGen::DoOsrEntry(LOsrEntry* instr) { | 3699 void LCodeGen::DoOsrEntry(LOsrEntry* instr) { |
3693 Abort("DoOsrEntry unimplemented."); | 3700 Abort("DoOsrEntry unimplemented."); |
3694 } | 3701 } |
3695 | 3702 |
3696 | 3703 |
3697 #undef __ | 3704 #undef __ |
3698 | 3705 |
3699 } } // namespace v8::internal | 3706 } } // namespace v8::internal |
OLD | NEW |