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 3021 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3032 | 3032 |
3033 | 3033 |
3034 void LCodeGen::DoObjectLiteral(LObjectLiteral* instr) { | 3034 void LCodeGen::DoObjectLiteral(LObjectLiteral* instr) { |
3035 // Setup the parameters to the stub/runtime call. | 3035 // Setup the parameters to the stub/runtime call. |
3036 __ mov(eax, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); | 3036 __ mov(eax, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
3037 __ push(FieldOperand(eax, JSFunction::kLiteralsOffset)); | 3037 __ push(FieldOperand(eax, JSFunction::kLiteralsOffset)); |
3038 __ push(Immediate(Smi::FromInt(instr->hydrogen()->literal_index()))); | 3038 __ push(Immediate(Smi::FromInt(instr->hydrogen()->literal_index()))); |
3039 __ push(Immediate(instr->hydrogen()->constant_properties())); | 3039 __ push(Immediate(instr->hydrogen()->constant_properties())); |
3040 __ push(Immediate(Smi::FromInt(instr->hydrogen()->fast_elements() ? 1 : 0))); | 3040 __ push(Immediate(Smi::FromInt(instr->hydrogen()->fast_elements() ? 1 : 0))); |
3041 | 3041 |
3042 // Pick the right runtime function or stub to call. | 3042 // Pick the right runtime function to call. |
3043 if (instr->hydrogen()->depth() > 1) { | 3043 if (instr->hydrogen()->depth() > 1) { |
3044 CallRuntime(Runtime::kCreateObjectLiteral, 4, instr); | 3044 CallRuntime(Runtime::kCreateObjectLiteral, 4, instr); |
3045 } else { | 3045 } else { |
3046 CallRuntime(Runtime::kCreateObjectLiteralShallow, 4, instr); | 3046 CallRuntime(Runtime::kCreateObjectLiteralShallow, 4, instr); |
3047 } | 3047 } |
3048 } | 3048 } |
3049 | 3049 |
3050 | 3050 |
3051 void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) { | 3051 void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) { |
3052 NearLabel materialized; | 3052 NearLabel materialized; |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3300 ASSERT(!environment->HasBeenRegistered()); | 3300 ASSERT(!environment->HasBeenRegistered()); |
3301 RegisterEnvironmentForDeoptimization(environment); | 3301 RegisterEnvironmentForDeoptimization(environment); |
3302 ASSERT(osr_pc_offset_ == -1); | 3302 ASSERT(osr_pc_offset_ == -1); |
3303 osr_pc_offset_ = masm()->pc_offset(); | 3303 osr_pc_offset_ = masm()->pc_offset(); |
3304 } | 3304 } |
3305 | 3305 |
3306 | 3306 |
3307 #undef __ | 3307 #undef __ |
3308 | 3308 |
3309 } } // namespace v8::internal | 3309 } } // namespace v8::internal |
OLD | NEW |