Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: src/arm/virtual-frame-arm.cc

Issue 2840018: [Isolates] Moved more compilation-related globals (builtins, runtime, &c.)... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: rebase Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 // +1 for receiver. 282 // +1 for receiver.
283 Forget(arg_count + 1); 283 Forget(arg_count + 1);
284 ASSERT(cgen()->HasValidEntryRegisters()); 284 ASSERT(cgen()->HasValidEntryRegisters());
285 ParameterCount count(arg_count); 285 ParameterCount count(arg_count);
286 __ InvokeFunction(r1, count, CALL_FUNCTION); 286 __ InvokeFunction(r1, count, CALL_FUNCTION);
287 // Restore the context. 287 // Restore the context.
288 __ ldr(cp, Context()); 288 __ ldr(cp, Context());
289 } 289 }
290 290
291 291
292 void VirtualFrame::CallRuntime(Runtime::Function* f, int arg_count) { 292 void VirtualFrame::CallRuntime(const Runtime::Function* f, int arg_count) {
293 SpillAll(); 293 SpillAll();
294 Forget(arg_count); 294 Forget(arg_count);
295 ASSERT(cgen()->HasValidEntryRegisters()); 295 ASSERT(cgen()->HasValidEntryRegisters());
296 __ CallRuntime(f, arg_count); 296 __ CallRuntime(f, arg_count);
297 } 297 }
298 298
299 299
300 void VirtualFrame::CallRuntime(Runtime::FunctionId id, int arg_count) { 300 void VirtualFrame::CallRuntime(Runtime::FunctionId id, int arg_count) {
301 SpillAll(); 301 SpillAll();
302 Forget(arg_count); 302 Forget(arg_count);
(...skipping 12 matching lines...) Expand all
315 315
316 void VirtualFrame::InvokeBuiltin(Builtins::JavaScript id, 316 void VirtualFrame::InvokeBuiltin(Builtins::JavaScript id,
317 InvokeJSFlags flags, 317 InvokeJSFlags flags,
318 int arg_count) { 318 int arg_count) {
319 Forget(arg_count); 319 Forget(arg_count);
320 __ InvokeBuiltin(id, flags); 320 __ InvokeBuiltin(id, flags);
321 } 321 }
322 322
323 323
324 void VirtualFrame::CallLoadIC(Handle<String> name, RelocInfo::Mode mode) { 324 void VirtualFrame::CallLoadIC(Handle<String> name, RelocInfo::Mode mode) {
325 Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize)); 325 Handle<Code> ic(Isolate::Current()->builtins()->builtin(
326 Builtins::LoadIC_Initialize));
326 PopToR0(); 327 PopToR0();
327 SpillAll(); 328 SpillAll();
328 __ mov(r2, Operand(name)); 329 __ mov(r2, Operand(name));
329 CallCodeObject(ic, mode, 0); 330 CallCodeObject(ic, mode, 0);
330 } 331 }
331 332
332 333
333 void VirtualFrame::CallStoreIC(Handle<String> name, bool is_contextual) { 334 void VirtualFrame::CallStoreIC(Handle<String> name, bool is_contextual) {
334 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Initialize)); 335 Handle<Code> ic(Isolate::Current()->builtins()->builtin(
336 Builtins::StoreIC_Initialize));
335 PopToR0(); 337 PopToR0();
336 if (is_contextual) { 338 if (is_contextual) {
337 SpillAll(); 339 SpillAll();
338 __ ldr(r1, MemOperand(cp, Context::SlotOffset(Context::GLOBAL_INDEX))); 340 __ ldr(r1, MemOperand(cp, Context::SlotOffset(Context::GLOBAL_INDEX)));
339 } else { 341 } else {
340 EmitPop(r1); 342 EmitPop(r1);
341 SpillAll(); 343 SpillAll();
342 } 344 }
343 __ mov(r2, Operand(name)); 345 __ mov(r2, Operand(name));
344 CallCodeObject(ic, RelocInfo::CODE_TARGET, 0); 346 CallCodeObject(ic, RelocInfo::CODE_TARGET, 0);
345 } 347 }
346 348
347 349
348 void VirtualFrame::CallKeyedLoadIC() { 350 void VirtualFrame::CallKeyedLoadIC() {
349 Handle<Code> ic(Builtins::builtin(Builtins::KeyedLoadIC_Initialize)); 351 Handle<Code> ic(Isolate::Current()->builtins()->builtin(
352 Builtins::KeyedLoadIC_Initialize));
350 PopToR1R0(); 353 PopToR1R0();
351 SpillAll(); 354 SpillAll();
352 CallCodeObject(ic, RelocInfo::CODE_TARGET, 0); 355 CallCodeObject(ic, RelocInfo::CODE_TARGET, 0);
353 } 356 }
354 357
355 358
356 void VirtualFrame::CallKeyedStoreIC() { 359 void VirtualFrame::CallKeyedStoreIC() {
357 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize)); 360 Handle<Code> ic(Isolate::Current()->builtins()->builtin(
361 Builtins::KeyedStoreIC_Initialize));
358 PopToR1R0(); 362 PopToR1R0();
359 SpillAll(); 363 SpillAll();
360 EmitPop(r2); 364 EmitPop(r2);
361 CallCodeObject(ic, RelocInfo::CODE_TARGET, 0); 365 CallCodeObject(ic, RelocInfo::CODE_TARGET, 0);
362 } 366 }
363 367
364 368
365 void VirtualFrame::CallCodeObject(Handle<Code> code, 369 void VirtualFrame::CallCodeObject(Handle<Code> code,
366 RelocInfo::Mode rmode, 370 RelocInfo::Mode rmode,
367 int dropped_args) { 371 int dropped_args) {
368 switch (code->kind()) { 372 switch (code->kind()) {
369 case Code::CALL_IC: 373 case Code::CALL_IC:
370 case Code::KEYED_CALL_IC: 374 case Code::KEYED_CALL_IC:
371 case Code::FUNCTION: 375 case Code::FUNCTION:
372 break; 376 break;
373 case Code::KEYED_LOAD_IC: 377 case Code::KEYED_LOAD_IC:
374 case Code::LOAD_IC: 378 case Code::LOAD_IC:
375 case Code::KEYED_STORE_IC: 379 case Code::KEYED_STORE_IC:
376 case Code::STORE_IC: 380 case Code::STORE_IC:
377 ASSERT(dropped_args == 0); 381 ASSERT(dropped_args == 0);
378 break; 382 break;
379 case Code::BUILTIN: 383 case Code::BUILTIN:
380 ASSERT(*code == Builtins::builtin(Builtins::JSConstructCall)); 384 ASSERT(*code == Isolate::Current()->builtins()->builtin(
385 Builtins::JSConstructCall));
381 break; 386 break;
382 default: 387 default:
383 UNREACHABLE(); 388 UNREACHABLE();
384 break; 389 break;
385 } 390 }
386 Forget(dropped_args); 391 Forget(dropped_args);
387 ASSERT(cgen()->HasValidEntryRegisters()); 392 ASSERT(cgen()->HasValidEntryRegisters());
388 __ Call(code, rmode); 393 __ Call(code, rmode);
389 } 394 }
390 395
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 break; 783 break;
779 } 784 }
780 ASSERT(register_allocation_map_ == 0); // Not yet implemented. 785 ASSERT(register_allocation_map_ == 0); // Not yet implemented.
781 } 786 }
782 787
783 #undef __ 788 #undef __
784 789
785 } } // namespace v8::internal 790 } } // namespace v8::internal
786 791
787 #endif // V8_TARGET_ARCH_ARM 792 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/virtual-frame-arm.h ('k') | src/assembler.h » ('j') | src/runtime.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698