OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 | 291 |
292 | 292 |
293 void VirtualFrame::InvokeBuiltin(Builtins::JavaScript id, | 293 void VirtualFrame::InvokeBuiltin(Builtins::JavaScript id, |
294 InvokeJSFlags flags, | 294 InvokeJSFlags flags, |
295 int arg_count) { | 295 int arg_count) { |
296 Forget(arg_count); | 296 Forget(arg_count); |
297 __ InvokeBuiltin(id, flags); | 297 __ InvokeBuiltin(id, flags); |
298 } | 298 } |
299 | 299 |
300 | 300 |
301 void VirtualFrame::CallLoadIC(RelocInfo::Mode mode) { | 301 void VirtualFrame::CallLoadIC(Handle<String> name, RelocInfo::Mode mode) { |
302 Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize)); | 302 Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize)); |
| 303 SpillAllButCopyTOSToR0(); |
| 304 __ mov(r2, Operand(name)); |
303 CallCodeObject(ic, mode, 0); | 305 CallCodeObject(ic, mode, 0); |
304 } | 306 } |
305 | 307 |
306 | 308 |
307 void VirtualFrame::CallStoreIC(Handle<String> name, bool is_contextual) { | 309 void VirtualFrame::CallStoreIC(Handle<String> name, bool is_contextual) { |
308 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Initialize)); | 310 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Initialize)); |
309 PopToR0(); | 311 PopToR0(); |
310 if (is_contextual) { | 312 if (is_contextual) { |
311 SpillAll(); | 313 SpillAll(); |
312 __ ldr(r1, MemOperand(cp, Context::SlotOffset(Context::GLOBAL_INDEX))); | 314 __ ldr(r1, MemOperand(cp, Context::SlotOffset(Context::GLOBAL_INDEX))); |
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 default: | 658 default: |
657 UNREACHABLE(); | 659 UNREACHABLE(); |
658 break; | 660 break; |
659 } | 661 } |
660 ASSERT(register_allocation_map_ == 0); // Not yet implemented. | 662 ASSERT(register_allocation_map_ == 0); // Not yet implemented. |
661 } | 663 } |
662 | 664 |
663 #undef __ | 665 #undef __ |
664 | 666 |
665 } } // namespace v8::internal | 667 } } // namespace v8::internal |
OLD | NEW |