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

Side by Side Diff: src/assembler.h

Issue 976623002: Serializer: correctly deal with internal references. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: argh I keep making mistakes. Created 5 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/arm64/assembler-arm64-inl.h ('k') | src/assembler.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 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 // stream. For most architectures this is just the size of a pointer. For 571 // stream. For most architectures this is just the size of a pointer. For
572 // an instruction like movw/movt where the target bits are mixed into the 572 // an instruction like movw/movt where the target bits are mixed into the
573 // instruction bits the size of the target will be zero, indicating that the 573 // instruction bits the size of the target will be zero, indicating that the
574 // serializer should not step forwards in memory after a target is resolved 574 // serializer should not step forwards in memory after a target is resolved
575 // and written. In this case the target_address_address function above 575 // and written. In this case the target_address_address function above
576 // should return the end of the instructions to be patched, allowing the 576 // should return the end of the instructions to be patched, allowing the
577 // deserializer to deserialize the instructions as raw bytes and put them in 577 // deserializer to deserialize the instructions as raw bytes and put them in
578 // place, ready to be patched with the target. 578 // place, ready to be patched with the target.
579 INLINE(int target_address_size()); 579 INLINE(int target_address_size());
580 580
581 // Read the reference in the instruction this relocation
582 // applies to; can only be called if rmode_ is EXTERNAL_REFERENCE.
583 INLINE(Address target_external_reference());
584
581 // Read/modify the reference in the instruction this relocation 585 // Read/modify the reference in the instruction this relocation
582 // applies to; can only be called if rmode_ is external_reference 586 // applies to; can only be called if rmode_ is INTERNAL_REFERENCE.
583 INLINE(Address target_reference()); 587 INLINE(Address target_internal_reference());
588 INLINE(void set_target_internal_reference(Address target));
584 589
585 // Read/modify the address of a call instruction. This is used to relocate 590 // Read/modify the address of a call instruction. This is used to relocate
586 // the break points where straight-line code is patched with a call 591 // the break points where straight-line code is patched with a call
587 // instruction. 592 // instruction.
588 INLINE(Address call_address()); 593 INLINE(Address call_address());
589 INLINE(void set_call_address(Address target)); 594 INLINE(void set_call_address(Address target));
590 INLINE(Object* call_object()); 595 INLINE(Object* call_object());
591 INLINE(void set_call_object(Object* target)); 596 INLINE(void set_call_object(Object* target));
592 INLINE(Object** call_object_address()); 597 INLINE(Object** call_object_address());
593 598
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 NullCallWrapper() { } 1168 NullCallWrapper() { }
1164 virtual ~NullCallWrapper() { } 1169 virtual ~NullCallWrapper() { }
1165 virtual void BeforeCall(int call_size) const { } 1170 virtual void BeforeCall(int call_size) const { }
1166 virtual void AfterCall() const { } 1171 virtual void AfterCall() const { }
1167 }; 1172 };
1168 1173
1169 1174
1170 } } // namespace v8::internal 1175 } } // namespace v8::internal
1171 1176
1172 #endif // V8_ASSEMBLER_H_ 1177 #endif // V8_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « src/arm64/assembler-arm64-inl.h ('k') | src/assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698