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 4277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4288 __ IncrementCounter(counters->keyed_load_full(), 1, r1, r2); | 4288 __ IncrementCounter(counters->keyed_load_full(), 1, r1, r2); |
4289 break; | 4289 break; |
4290 case Code::STORE_IC: | 4290 case Code::STORE_IC: |
4291 __ IncrementCounter(counters->named_store_full(), 1, r1, r2); | 4291 __ IncrementCounter(counters->named_store_full(), 1, r1, r2); |
4292 break; | 4292 break; |
4293 case Code::KEYED_STORE_IC: | 4293 case Code::KEYED_STORE_IC: |
4294 __ IncrementCounter(counters->keyed_store_full(), 1, r1, r2); | 4294 __ IncrementCounter(counters->keyed_store_full(), 1, r1, r2); |
4295 default: | 4295 default: |
4296 break; | 4296 break; |
4297 } | 4297 } |
4298 | |
4299 __ Call(ic, mode); | 4298 __ Call(ic, mode); |
4300 } | 4299 } |
4301 | 4300 |
4302 | 4301 |
4303 void FullCodeGenerator::EmitCallIC(Handle<Code> ic, JumpPatchSite* patch_site) { | 4302 void FullCodeGenerator::EmitCallIC(Handle<Code> ic, JumpPatchSite* patch_site) { |
4304 Counters* counters = isolate()->counters(); | 4303 Counters* counters = isolate()->counters(); |
4305 switch (ic->kind()) { | 4304 switch (ic->kind()) { |
4306 case Code::LOAD_IC: | 4305 case Code::LOAD_IC: |
4307 __ IncrementCounter(counters->named_load_full(), 1, r1, r2); | 4306 __ IncrementCounter(counters->named_load_full(), 1, r1, r2); |
4308 break; | 4307 break; |
4309 case Code::KEYED_LOAD_IC: | 4308 case Code::KEYED_LOAD_IC: |
4310 __ IncrementCounter(counters->keyed_load_full(), 1, r1, r2); | 4309 __ IncrementCounter(counters->keyed_load_full(), 1, r1, r2); |
4311 break; | 4310 break; |
4312 case Code::STORE_IC: | 4311 case Code::STORE_IC: |
4313 __ IncrementCounter(counters->named_store_full(), 1, r1, r2); | 4312 __ IncrementCounter(counters->named_store_full(), 1, r1, r2); |
4314 break; | 4313 break; |
4315 case Code::KEYED_STORE_IC: | 4314 case Code::KEYED_STORE_IC: |
4316 __ IncrementCounter(counters->keyed_store_full(), 1, r1, r2); | 4315 __ IncrementCounter(counters->keyed_store_full(), 1, r1, r2); |
4317 default: | 4316 default: |
4318 break; | 4317 break; |
4319 } | 4318 } |
4320 | |
4321 __ Call(ic, RelocInfo::CODE_TARGET); | 4319 __ Call(ic, RelocInfo::CODE_TARGET); |
4322 if (patch_site != NULL && patch_site->is_bound()) { | 4320 if (patch_site != NULL && patch_site->is_bound()) { |
4323 patch_site->EmitPatchInfo(); | 4321 patch_site->EmitPatchInfo(); |
4324 } else { | 4322 } else { |
4325 __ nop(); // Signals no inlined code. | 4323 __ nop(); // Signals no inlined code. |
4326 } | 4324 } |
4327 } | 4325 } |
4328 | 4326 |
4329 | 4327 |
4330 void FullCodeGenerator::StoreToFrameField(int frame_offset, Register value) { | 4328 void FullCodeGenerator::StoreToFrameField(int frame_offset, Register value) { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4364 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value. | 4362 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value. |
4365 __ add(pc, r1, Operand(masm_->CodeObject())); | 4363 __ add(pc, r1, Operand(masm_->CodeObject())); |
4366 } | 4364 } |
4367 | 4365 |
4368 | 4366 |
4369 #undef __ | 4367 #undef __ |
4370 | 4368 |
4371 } } // namespace v8::internal | 4369 } } // namespace v8::internal |
4372 | 4370 |
4373 #endif // V8_TARGET_ARCH_ARM | 4371 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |