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_ARM | 7 #if V8_TARGET_ARCH_ARM |
8 | 8 |
9 #include "src/arm/assembler-arm.h" | 9 #include "src/arm/assembler-arm.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 855 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
866 // -- r0 : value | 866 // -- r0 : value |
867 // -- r1 : key | 867 // -- r1 : key |
868 // -- r2 : receiver | 868 // -- r2 : receiver |
869 // -- lr : return address | 869 // -- lr : return address |
870 // ----------------------------------- | 870 // ----------------------------------- |
871 | 871 |
872 // Push receiver, key and value for runtime call. | 872 // Push receiver, key and value for runtime call. |
873 __ Push(r2, r1, r0); | 873 __ Push(r2, r1, r0); |
874 | 874 |
875 __ mov(r0, Operand(Smi::FromInt(strict_mode))); // Strict mode. | 875 __ mov(r0, Operand(Smi::FromInt(strict_mode))); // Strict mode. |
876 __ Push(r1, r0); | 876 __ Push(r0); |
877 | 877 |
878 __ TailCallRuntime(Runtime::kSetProperty, 4, 1); | 878 __ TailCallRuntime(Runtime::kSetProperty, 4, 1); |
879 } | 879 } |
880 | 880 |
881 | 881 |
882 static void KeyedStoreGenerateGenericHelper( | 882 static void KeyedStoreGenerateGenericHelper( |
883 MacroAssembler* masm, | 883 MacroAssembler* masm, |
884 Label* fast_object, | 884 Label* fast_object, |
885 Label* fast_double, | 885 Label* fast_double, |
886 Label* slow, | 886 Label* slow, |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1206 StrictMode strict_mode) { | 1206 StrictMode strict_mode) { |
1207 // ----------- S t a t e ------------- | 1207 // ----------- S t a t e ------------- |
1208 // -- r0 : value | 1208 // -- r0 : value |
1209 // -- r1 : receiver | 1209 // -- r1 : receiver |
1210 // -- r2 : name | 1210 // -- r2 : name |
1211 // -- lr : return address | 1211 // -- lr : return address |
1212 // ----------------------------------- | 1212 // ----------------------------------- |
1213 | 1213 |
1214 __ Push(r1, r2, r0); | 1214 __ Push(r1, r2, r0); |
1215 | 1215 |
1216 __ mov(r1, Operand(Smi::FromInt(NONE))); // PropertyAttributes | |
1217 __ mov(r0, Operand(Smi::FromInt(strict_mode))); | 1216 __ mov(r0, Operand(Smi::FromInt(strict_mode))); |
1218 __ Push(r1, r0); | 1217 __ Push(r0); |
1219 | 1218 |
1220 // Do tail-call to runtime routine. | 1219 // Do tail-call to runtime routine. |
1221 __ TailCallRuntime(Runtime::kSetProperty, 5, 1); | 1220 __ TailCallRuntime(Runtime::kSetProperty, 4, 1); |
1222 } | 1221 } |
1223 | 1222 |
1224 | 1223 |
1225 #undef __ | 1224 #undef __ |
1226 | 1225 |
1227 | 1226 |
1228 Condition CompareIC::ComputeCondition(Token::Value op) { | 1227 Condition CompareIC::ComputeCondition(Token::Value op) { |
1229 switch (op) { | 1228 switch (op) { |
1230 case Token::EQ_STRICT: | 1229 case Token::EQ_STRICT: |
1231 case Token::EQ: | 1230 case Token::EQ: |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1315 } else { | 1314 } else { |
1316 ASSERT(Assembler::GetCondition(branch_instr) == ne); | 1315 ASSERT(Assembler::GetCondition(branch_instr) == ne); |
1317 patcher.EmitCondition(eq); | 1316 patcher.EmitCondition(eq); |
1318 } | 1317 } |
1319 } | 1318 } |
1320 | 1319 |
1321 | 1320 |
1322 } } // namespace v8::internal | 1321 } } // namespace v8::internal |
1323 | 1322 |
1324 #endif // V8_TARGET_ARCH_ARM | 1323 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |