| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved.7 | 1 // Copyright 2012 the V8 project authors. All rights reserved.7 |
| 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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 | 143 |
| 144 // a1: Callee's JS function. | 144 // a1: Callee's JS function. |
| 145 // cp: Callee's context. | 145 // cp: Callee's context. |
| 146 // fp: Caller's frame pointer. | 146 // fp: Caller's frame pointer. |
| 147 // lr: Caller's pc. | 147 // lr: Caller's pc. |
| 148 | 148 |
| 149 // Classic mode functions and builtins need to replace the receiver with the | 149 // Classic mode functions and builtins need to replace the receiver with the |
| 150 // global proxy when called as functions (without an explicit receiver | 150 // global proxy when called as functions (without an explicit receiver |
| 151 // object). | 151 // object). |
| 152 if (info_->this_has_uses() && | 152 if (info_->this_has_uses() && |
| 153 info_->is_classic_mode() && | 153 info_->is_sloppy_mode() && |
| 154 !info_->is_native()) { | 154 !info_->is_native()) { |
| 155 Label ok; | 155 Label ok; |
| 156 int receiver_offset = info_->scope()->num_parameters() * kPointerSize; | 156 int receiver_offset = info_->scope()->num_parameters() * kPointerSize; |
| 157 __ LoadRoot(at, Heap::kUndefinedValueRootIndex); | 157 __ LoadRoot(at, Heap::kUndefinedValueRootIndex); |
| 158 __ lw(a2, MemOperand(sp, receiver_offset)); | 158 __ lw(a2, MemOperand(sp, receiver_offset)); |
| 159 __ Branch(&ok, ne, a2, Operand(at)); | 159 __ Branch(&ok, ne, a2, Operand(at)); |
| 160 | 160 |
| 161 __ lw(a2, GlobalObjectOperand()); | 161 __ lw(a2, GlobalObjectOperand()); |
| 162 __ lw(a2, FieldMemOperand(a2, GlobalObject::kGlobalReceiverOffset)); | 162 __ lw(a2, FieldMemOperand(a2, GlobalObject::kGlobalReceiverOffset)); |
| 163 | 163 |
| (...skipping 2912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3076 case FLOAT64_ELEMENTS: | 3076 case FLOAT64_ELEMENTS: |
| 3077 case EXTERNAL_FLOAT32_ELEMENTS: | 3077 case EXTERNAL_FLOAT32_ELEMENTS: |
| 3078 case EXTERNAL_FLOAT64_ELEMENTS: | 3078 case EXTERNAL_FLOAT64_ELEMENTS: |
| 3079 case FAST_DOUBLE_ELEMENTS: | 3079 case FAST_DOUBLE_ELEMENTS: |
| 3080 case FAST_ELEMENTS: | 3080 case FAST_ELEMENTS: |
| 3081 case FAST_SMI_ELEMENTS: | 3081 case FAST_SMI_ELEMENTS: |
| 3082 case FAST_HOLEY_DOUBLE_ELEMENTS: | 3082 case FAST_HOLEY_DOUBLE_ELEMENTS: |
| 3083 case FAST_HOLEY_ELEMENTS: | 3083 case FAST_HOLEY_ELEMENTS: |
| 3084 case FAST_HOLEY_SMI_ELEMENTS: | 3084 case FAST_HOLEY_SMI_ELEMENTS: |
| 3085 case DICTIONARY_ELEMENTS: | 3085 case DICTIONARY_ELEMENTS: |
| 3086 case NON_STRICT_ARGUMENTS_ELEMENTS: | 3086 case SLOPPY_ARGUMENTS_ELEMENTS: |
| 3087 UNREACHABLE(); | 3087 UNREACHABLE(); |
| 3088 break; | 3088 break; |
| 3089 } | 3089 } |
| 3090 } | 3090 } |
| 3091 } | 3091 } |
| 3092 | 3092 |
| 3093 | 3093 |
| 3094 void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) { | 3094 void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) { |
| 3095 Register elements = ToRegister(instr->elements()); | 3095 Register elements = ToRegister(instr->elements()); |
| 3096 bool key_is_constant = instr->key()->IsConstantOperand(); | 3096 bool key_is_constant = instr->key()->IsConstantOperand(); |
| (...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4183 case FLOAT64_ELEMENTS: | 4183 case FLOAT64_ELEMENTS: |
| 4184 case EXTERNAL_FLOAT32_ELEMENTS: | 4184 case EXTERNAL_FLOAT32_ELEMENTS: |
| 4185 case EXTERNAL_FLOAT64_ELEMENTS: | 4185 case EXTERNAL_FLOAT64_ELEMENTS: |
| 4186 case FAST_DOUBLE_ELEMENTS: | 4186 case FAST_DOUBLE_ELEMENTS: |
| 4187 case FAST_ELEMENTS: | 4187 case FAST_ELEMENTS: |
| 4188 case FAST_SMI_ELEMENTS: | 4188 case FAST_SMI_ELEMENTS: |
| 4189 case FAST_HOLEY_DOUBLE_ELEMENTS: | 4189 case FAST_HOLEY_DOUBLE_ELEMENTS: |
| 4190 case FAST_HOLEY_ELEMENTS: | 4190 case FAST_HOLEY_ELEMENTS: |
| 4191 case FAST_HOLEY_SMI_ELEMENTS: | 4191 case FAST_HOLEY_SMI_ELEMENTS: |
| 4192 case DICTIONARY_ELEMENTS: | 4192 case DICTIONARY_ELEMENTS: |
| 4193 case NON_STRICT_ARGUMENTS_ELEMENTS: | 4193 case SLOPPY_ARGUMENTS_ELEMENTS: |
| 4194 UNREACHABLE(); | 4194 UNREACHABLE(); |
| 4195 break; | 4195 break; |
| 4196 } | 4196 } |
| 4197 } | 4197 } |
| 4198 } | 4198 } |
| 4199 | 4199 |
| 4200 | 4200 |
| 4201 void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) { | 4201 void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) { |
| 4202 DoubleRegister value = ToDoubleRegister(instr->value()); | 4202 DoubleRegister value = ToDoubleRegister(instr->value()); |
| 4203 Register elements = ToRegister(instr->elements()); | 4203 Register elements = ToRegister(instr->elements()); |
| (...skipping 1538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5742 __ Subu(scratch, result, scratch); | 5742 __ Subu(scratch, result, scratch); |
| 5743 __ lw(result, FieldMemOperand(scratch, | 5743 __ lw(result, FieldMemOperand(scratch, |
| 5744 FixedArray::kHeaderSize - kPointerSize)); | 5744 FixedArray::kHeaderSize - kPointerSize)); |
| 5745 __ bind(&done); | 5745 __ bind(&done); |
| 5746 } | 5746 } |
| 5747 | 5747 |
| 5748 | 5748 |
| 5749 #undef __ | 5749 #undef __ |
| 5750 | 5750 |
| 5751 } } // namespace v8::internal | 5751 } } // namespace v8::internal |
| OLD | NEW |