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

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

Issue 2732273003: Disentangle assembler from isolate. (Closed)
Patch Set: Address feedback. Created 3 years, 9 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
« no previous file with comments | « src/mips/macro-assembler-mips.cc ('k') | src/mips64/assembler-mips64.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 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 // for a detailed comment on the layout (globals.h). 383 // for a detailed comment on the layout (globals.h).
384 // 384 //
385 // If the provided buffer is NULL, the assembler allocates and grows its own 385 // If the provided buffer is NULL, the assembler allocates and grows its own
386 // buffer, and buffer_size determines the initial buffer size. The buffer is 386 // buffer, and buffer_size determines the initial buffer size. The buffer is
387 // owned by the assembler and deallocated upon destruction of the assembler. 387 // owned by the assembler and deallocated upon destruction of the assembler.
388 // 388 //
389 // If the provided buffer is not NULL, the assembler uses the provided buffer 389 // If the provided buffer is not NULL, the assembler uses the provided buffer
390 // for code generation and assumes its size to be buffer_size. If the buffer 390 // for code generation and assumes its size to be buffer_size. If the buffer
391 // is too small, a fatal error occurs. No deallocation of the buffer is done 391 // is too small, a fatal error occurs. No deallocation of the buffer is done
392 // upon destruction of the assembler. 392 // upon destruction of the assembler.
393 Assembler(Isolate* isolate, void* buffer, int buffer_size); 393 Assembler(Isolate* isolate, void* buffer, int buffer_size)
394 : Assembler(IsolateData(isolate), buffer, buffer_size) {}
395 Assembler(IsolateData isolate_data, void* buffer, int buffer_size);
394 virtual ~Assembler() { } 396 virtual ~Assembler() { }
395 397
396 // GetCode emits any pending (non-emitted) code and fills the descriptor 398 // GetCode emits any pending (non-emitted) code and fills the descriptor
397 // desc. GetCode() is idempotent; it returns the same result if no other 399 // desc. GetCode() is idempotent; it returns the same result if no other
398 // Assembler functions are invoked in between GetCode() calls. 400 // Assembler functions are invoked in between GetCode() calls.
399 void GetCode(CodeDesc* desc); 401 void GetCode(CodeDesc* desc);
400 402
401 // Label operations & relative jumps (PPUM Appendix D). 403 // Label operations & relative jumps (PPUM Appendix D).
402 // 404 //
403 // Takes a branch opcode (cc) and a label (L) and generates 405 // Takes a branch opcode (cc) and a label (L) and generates
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 return branch_offset26(L) >> 2; 457 return branch_offset26(L) >> 2;
456 } 458 }
457 uint64_t jump_address(Label* L); 459 uint64_t jump_address(Label* L);
458 uint64_t jump_offset(Label* L); 460 uint64_t jump_offset(Label* L);
459 461
460 // Puts a labels target address at the given position. 462 // Puts a labels target address at the given position.
461 // The high 8 bits are set to zero. 463 // The high 8 bits are set to zero.
462 void label_at_put(Label* L, int at_offset); 464 void label_at_put(Label* L, int at_offset);
463 465
464 // Read/Modify the code target address in the branch/call instruction at pc. 466 // Read/Modify the code target address in the branch/call instruction at pc.
467 // The isolate argument is unused (and may be nullptr) when skipping flushing.
465 static Address target_address_at(Address pc); 468 static Address target_address_at(Address pc);
466 static void set_target_address_at( 469 static void set_target_address_at(
467 Isolate* isolate, Address pc, Address target, 470 Isolate* isolate, Address pc, Address target,
468 ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED); 471 ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED);
469 // On MIPS there is no Constant Pool so we skip that parameter. 472 // On MIPS there is no Constant Pool so we skip that parameter.
470 INLINE(static Address target_address_at(Address pc, Address constant_pool)) { 473 INLINE(static Address target_address_at(Address pc, Address constant_pool)) {
471 return target_address_at(pc); 474 return target_address_at(pc);
472 } 475 }
473 INLINE(static void set_target_address_at( 476 INLINE(static void set_target_address_at(
474 Isolate* isolate, Address pc, Address constant_pool, Address target, 477 Isolate* isolate, Address pc, Address constant_pool, Address target,
(...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after
1523 public: 1526 public:
1524 explicit EnsureSpace(Assembler* assembler) { 1527 explicit EnsureSpace(Assembler* assembler) {
1525 assembler->CheckBuffer(); 1528 assembler->CheckBuffer();
1526 } 1529 }
1527 }; 1530 };
1528 1531
1529 } // namespace internal 1532 } // namespace internal
1530 } // namespace v8 1533 } // namespace v8
1531 1534
1532 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1535 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/mips/macro-assembler-mips.cc ('k') | src/mips64/assembler-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698