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

Side by Side Diff: src/mips/assembler-mips.h

Issue 1474323002: Delete Assembler::FlushICacheWithoutIsolate (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 5 years 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
« no previous file with comments | « src/ic/ic-inl.h ('k') | src/mips/assembler-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 return branch_offset26(L) >> 2; 450 return branch_offset26(L) >> 2;
451 } 451 }
452 uint32_t jump_address(Label* L); 452 uint32_t jump_address(Label* L);
453 453
454 // Puts a labels target address at the given position. 454 // Puts a labels target address at the given position.
455 // The high 8 bits are set to zero. 455 // The high 8 bits are set to zero.
456 void label_at_put(Label* L, int at_offset); 456 void label_at_put(Label* L, int at_offset);
457 457
458 // Read/Modify the code target address in the branch/call instruction at pc. 458 // Read/Modify the code target address in the branch/call instruction at pc.
459 static Address target_address_at(Address pc); 459 static Address target_address_at(Address pc);
460 static void set_target_address_at(Address pc, 460 static void set_target_address_at(
461 Address target, 461 Isolate* isolate, Address pc, Address target,
462 ICacheFlushMode icache_flush_mode = 462 ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED);
463 FLUSH_ICACHE_IF_NEEDED);
464 // On MIPS there is no Constant Pool so we skip that parameter. 463 // On MIPS there is no Constant Pool so we skip that parameter.
465 INLINE(static Address target_address_at(Address pc, Address constant_pool)) { 464 INLINE(static Address target_address_at(Address pc, Address constant_pool)) {
466 return target_address_at(pc); 465 return target_address_at(pc);
467 } 466 }
468 INLINE(static void set_target_address_at( 467 INLINE(static void set_target_address_at(
469 Address pc, Address constant_pool, Address target, 468 Isolate* isolate, Address pc, Address constant_pool, Address target,
470 ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED)) { 469 ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED)) {
471 set_target_address_at(pc, target, icache_flush_mode); 470 set_target_address_at(isolate, pc, target, icache_flush_mode);
472 } 471 }
473 INLINE(static Address target_address_at(Address pc, Code* code)) { 472 INLINE(static Address target_address_at(Address pc, Code* code)) {
474 Address constant_pool = code ? code->constant_pool() : NULL; 473 Address constant_pool = code ? code->constant_pool() : NULL;
475 return target_address_at(pc, constant_pool); 474 return target_address_at(pc, constant_pool);
476 } 475 }
477 INLINE(static void set_target_address_at(Address pc, 476 INLINE(static void set_target_address_at(
478 Code* code, 477 Isolate* isolate, Address pc, Code* code, Address target,
479 Address target, 478 ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED)) {
480 ICacheFlushMode icache_flush_mode =
481 FLUSH_ICACHE_IF_NEEDED)) {
482 Address constant_pool = code ? code->constant_pool() : NULL; 479 Address constant_pool = code ? code->constant_pool() : NULL;
483 set_target_address_at(pc, constant_pool, target, icache_flush_mode); 480 set_target_address_at(isolate, pc, constant_pool, target,
481 icache_flush_mode);
484 } 482 }
485 483
486 // Return the code target address at a call site from the return address 484 // Return the code target address at a call site from the return address
487 // of that call in the instruction stream. 485 // of that call in the instruction stream.
488 inline static Address target_address_from_return_address(Address pc); 486 inline static Address target_address_from_return_address(Address pc);
489 487
490 static void QuietNaN(HeapObject* nan); 488 static void QuietNaN(HeapObject* nan);
491 489
492 // This sets the branch destination (which gets loaded at the call address). 490 // This sets the branch destination (which gets loaded at the call address).
493 // This is for calls and branches within generated code. The serializer 491 // This is for calls and branches within generated code. The serializer
494 // has already deserialized the lui/ori instructions etc. 492 // has already deserialized the lui/ori instructions etc.
495 inline static void deserialization_set_special_target_at( 493 inline static void deserialization_set_special_target_at(
496 Address instruction_payload, Code* code, Address target) { 494 Isolate* isolate, Address instruction_payload, Code* code,
495 Address target) {
497 set_target_address_at( 496 set_target_address_at(
498 instruction_payload - kInstructionsFor32BitConstant * kInstrSize, 497 isolate,
499 code, 498 instruction_payload - kInstructionsFor32BitConstant * kInstrSize, code,
500 target); 499 target);
501 } 500 }
502 501
503 // This sets the internal reference at the pc. 502 // This sets the internal reference at the pc.
504 inline static void deserialization_set_target_internal_reference_at( 503 inline static void deserialization_set_target_internal_reference_at(
505 Address pc, Address target, 504 Isolate* isolate, Address pc, Address target,
506 RelocInfo::Mode mode = RelocInfo::INTERNAL_REFERENCE); 505 RelocInfo::Mode mode = RelocInfo::INTERNAL_REFERENCE);
507 506
508 // Size of an instruction. 507 // Size of an instruction.
509 static const int kInstrSize = sizeof(Instr); 508 static const int kInstrSize = sizeof(Instr);
510 509
511 // Difference between address of current opcode and target address offset. 510 // Difference between address of current opcode and target address offset.
512 static const int kBranchPCOffset = 4; 511 static const int kBranchPCOffset = 4;
513 512
514 // Here we are patching the address in the LUI/ORI instruction pair. 513 // Here we are patching the address in the LUI/ORI instruction pair.
515 // These values are used in the serialization process and must be zero for 514 // These values are used in the serialization process and must be zero for
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1429 public: 1428 public:
1430 explicit EnsureSpace(Assembler* assembler) { 1429 explicit EnsureSpace(Assembler* assembler) {
1431 assembler->CheckBuffer(); 1430 assembler->CheckBuffer();
1432 } 1431 }
1433 }; 1432 };
1434 1433
1435 } // namespace internal 1434 } // namespace internal
1436 } // namespace v8 1435 } // namespace v8
1437 1436
1438 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1437 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/ic/ic-inl.h ('k') | src/mips/assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698