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 3870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3881 | 3881 |
3882 | 3882 |
3883 void LCodeGen::DoDeoptimize(LDeoptimize* instr) { | 3883 void LCodeGen::DoDeoptimize(LDeoptimize* instr) { |
3884 DeoptimizeIf(al, instr->environment()); | 3884 DeoptimizeIf(al, instr->environment()); |
3885 } | 3885 } |
3886 | 3886 |
3887 | 3887 |
3888 void LCodeGen::DoDeleteProperty(LDeleteProperty* instr) { | 3888 void LCodeGen::DoDeleteProperty(LDeleteProperty* instr) { |
3889 Register object = ToRegister(instr->object()); | 3889 Register object = ToRegister(instr->object()); |
3890 Register key = ToRegister(instr->key()); | 3890 Register key = ToRegister(instr->key()); |
3891 __ Push(object, key); | 3891 Register strict = scratch0(); |
3892 __ mov(strict, Operand(Smi::FromInt(strict_mode_flag()))); | |
3893 __ Push(object, key, strict); | |
Martin Maly
2011/02/14 05:15:22
Not sure 100% about the use of scratch0() but saw
Mads Ager (chromium)
2011/02/14 10:27:24
This is fine. scratch0() is always free to use in
| |
3892 ASSERT(instr->HasPointerMap() && instr->HasDeoptimizationEnvironment()); | 3894 ASSERT(instr->HasPointerMap() && instr->HasDeoptimizationEnvironment()); |
3893 LPointerMap* pointers = instr->pointer_map(); | 3895 LPointerMap* pointers = instr->pointer_map(); |
3894 LEnvironment* env = instr->deoptimization_environment(); | 3896 LEnvironment* env = instr->deoptimization_environment(); |
3895 RecordPosition(pointers->position()); | 3897 RecordPosition(pointers->position()); |
3896 RegisterEnvironmentForDeoptimization(env); | 3898 RegisterEnvironmentForDeoptimization(env); |
3897 SafepointGenerator safepoint_generator(this, | 3899 SafepointGenerator safepoint_generator(this, |
3898 pointers, | 3900 pointers, |
3899 env->deoptimization_index()); | 3901 env->deoptimization_index()); |
3900 __ InvokeBuiltin(Builtins::DELETE, CALL_JS, &safepoint_generator); | 3902 __ InvokeBuiltin(Builtins::DELETE, CALL_JS, &safepoint_generator); |
3901 } | 3903 } |
(...skipping 24 matching lines...) Expand all Loading... | |
3926 ASSERT(!environment->HasBeenRegistered()); | 3928 ASSERT(!environment->HasBeenRegistered()); |
3927 RegisterEnvironmentForDeoptimization(environment); | 3929 RegisterEnvironmentForDeoptimization(environment); |
3928 ASSERT(osr_pc_offset_ == -1); | 3930 ASSERT(osr_pc_offset_ == -1); |
3929 osr_pc_offset_ = masm()->pc_offset(); | 3931 osr_pc_offset_ = masm()->pc_offset(); |
3930 } | 3932 } |
3931 | 3933 |
3932 | 3934 |
3933 #undef __ | 3935 #undef __ |
3934 | 3936 |
3935 } } // namespace v8::internal | 3937 } } // namespace v8::internal |
OLD | NEW |