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 3205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3216 __ Branch(&miss, ne, a0, Operand(name)); | 3216 __ Branch(&miss, ne, a0, Operand(name)); |
3217 | 3217 |
3218 GenerateLoadArrayLength(masm(), a1, a2, &miss); | 3218 GenerateLoadArrayLength(masm(), a1, a2, &miss); |
3219 __ bind(&miss); | 3219 __ bind(&miss); |
3220 GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC); | 3220 GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC); |
3221 | 3221 |
3222 return GetCode(Code::CALLBACKS, name); | 3222 return GetCode(Code::CALLBACKS, name); |
3223 } | 3223 } |
3224 | 3224 |
3225 | 3225 |
3226 Handle<Code> KeyedLoadStubCompiler::CompileLoadStringLength( | |
3227 Handle<String> name) { | |
3228 // ----------- S t a t e ------------- | |
3229 // -- ra : return address | |
3230 // -- a0 : key | |
3231 // -- a1 : receiver | |
3232 // ----------------------------------- | |
3233 Label miss; | |
3234 | |
3235 Counters* counters = masm()->isolate()->counters(); | |
3236 __ IncrementCounter(counters->keyed_load_string_length(), 1, a2, a3); | |
3237 | |
3238 // Check the key is the cached one. | |
3239 __ Branch(&miss, ne, a0, Operand(name)); | |
3240 | |
3241 GenerateLoadStringLength(masm(), a1, a2, a3, &miss, true); | |
3242 __ bind(&miss); | |
3243 __ DecrementCounter(counters->keyed_load_string_length(), 1, a2, a3); | |
3244 | |
3245 GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC); | |
3246 | |
3247 return GetCode(Code::CALLBACKS, name); | |
3248 } | |
3249 | |
3250 | |
3251 Handle<Code> KeyedLoadStubCompiler::CompileLoadFunctionPrototype( | 3226 Handle<Code> KeyedLoadStubCompiler::CompileLoadFunctionPrototype( |
3252 Handle<String> name) { | 3227 Handle<String> name) { |
3253 // ----------- S t a t e ------------- | 3228 // ----------- S t a t e ------------- |
3254 // -- ra : return address | 3229 // -- ra : return address |
3255 // -- a0 : key | 3230 // -- a0 : key |
3256 // -- a1 : receiver | 3231 // -- a1 : receiver |
3257 // ----------------------------------- | 3232 // ----------------------------------- |
3258 Label miss; | 3233 Label miss; |
3259 | 3234 |
3260 Counters* counters = masm()->isolate()->counters(); | 3235 Counters* counters = masm()->isolate()->counters(); |
(...skipping 1167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4428 __ Jump(ic_slow, RelocInfo::CODE_TARGET); | 4403 __ Jump(ic_slow, RelocInfo::CODE_TARGET); |
4429 } | 4404 } |
4430 } | 4405 } |
4431 | 4406 |
4432 | 4407 |
4433 #undef __ | 4408 #undef __ |
4434 | 4409 |
4435 } } // namespace v8::internal | 4410 } } // namespace v8::internal |
4436 | 4411 |
4437 #endif // V8_TARGET_ARCH_MIPS | 4412 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |