Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 3056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3067 __ jmp(&done); | 3067 __ jmp(&done); |
| 3068 } | 3068 } |
| 3069 | 3069 |
| 3070 __ bind(¬_date_object); | 3070 __ bind(¬_date_object); |
| 3071 __ CallRuntime(Runtime::kThrowNotDateError, 0); | 3071 __ CallRuntime(Runtime::kThrowNotDateError, 0); |
| 3072 __ bind(&done); | 3072 __ bind(&done); |
| 3073 context()->Plug(result); | 3073 context()->Plug(result); |
| 3074 } | 3074 } |
| 3075 | 3075 |
| 3076 | 3076 |
| 3077 void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) { | |
| 3078 ZoneList<Expression*>* args = expr->arguments(); | |
| 3079 ASSERT_EQ(3, args->length()); | |
| 3080 | |
| 3081 VisitForStackValue(args->at(1)); // index | |
| 3082 VisitForStackValue(args->at(2)); // value | |
| 3083 __ pop(ecx); | |
| 3084 __ pop(ebx); | |
| 3085 VisitForAccumulatorValue(args->at(0)); // string | |
| 3086 | |
| 3087 SeqStringSetCharGenerator::Generate(masm_, true, eax, ebx, ecx); | |
|
Toon Verwaest
2012/12/05 14:29:12
Can we use an enum rather than bool to indicate tw
| |
| 3088 context()->Plug(eax); | |
| 3089 } | |
| 3090 | |
| 3091 | |
| 3092 void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) { | |
| 3093 ZoneList<Expression*>* args = expr->arguments(); | |
| 3094 ASSERT_EQ(3, args->length()); | |
| 3095 | |
| 3096 VisitForStackValue(args->at(1)); // index | |
| 3097 VisitForStackValue(args->at(2)); // value | |
| 3098 __ pop(ecx); | |
| 3099 __ pop(ebx); | |
| 3100 VisitForAccumulatorValue(args->at(0)); // string | |
| 3101 | |
| 3102 SeqStringSetCharGenerator::Generate(masm_, false, eax, ebx, ecx); | |
| 3103 context()->Plug(eax); | |
| 3104 } | |
| 3105 | |
| 3106 | |
| 3077 void FullCodeGenerator::EmitMathPow(CallRuntime* expr) { | 3107 void FullCodeGenerator::EmitMathPow(CallRuntime* expr) { |
| 3078 // Load the arguments on the stack and call the runtime function. | 3108 // Load the arguments on the stack and call the runtime function. |
| 3079 ZoneList<Expression*>* args = expr->arguments(); | 3109 ZoneList<Expression*>* args = expr->arguments(); |
| 3080 ASSERT(args->length() == 2); | 3110 ASSERT(args->length() == 2); |
| 3081 VisitForStackValue(args->at(0)); | 3111 VisitForStackValue(args->at(0)); |
| 3082 VisitForStackValue(args->at(1)); | 3112 VisitForStackValue(args->at(1)); |
| 3083 | 3113 |
| 3084 if (CpuFeatures::IsSupported(SSE2)) { | 3114 if (CpuFeatures::IsSupported(SSE2)) { |
| 3085 MathPowStub stub(MathPowStub::ON_STACK); | 3115 MathPowStub stub(MathPowStub::ON_STACK); |
| 3086 __ CallStub(&stub); | 3116 __ CallStub(&stub); |
| (...skipping 1414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4501 *stack_depth = 0; | 4531 *stack_depth = 0; |
| 4502 *context_length = 0; | 4532 *context_length = 0; |
| 4503 return previous_; | 4533 return previous_; |
| 4504 } | 4534 } |
| 4505 | 4535 |
| 4506 #undef __ | 4536 #undef __ |
| 4507 | 4537 |
| 4508 } } // namespace v8::internal | 4538 } } // namespace v8::internal |
| 4509 | 4539 |
| 4510 #endif // V8_TARGET_ARCH_IA32 | 4540 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |