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

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: fixed ports, disabled context specialization for serializer 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
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 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 // stream. For most architectures this is just the size of a pointer. For 568 // stream. For most architectures this is just the size of a pointer. For
569 // an instruction like movw/movt where the target bits are mixed into the 569 // an instruction like movw/movt where the target bits are mixed into the
570 // instruction bits the size of the target will be zero, indicating that the 570 // instruction bits the size of the target will be zero, indicating that the
571 // serializer should not step forwards in memory after a target is resolved 571 // serializer should not step forwards in memory after a target is resolved
572 // and written. In this case the target_address_address function above 572 // and written. In this case the target_address_address function above
573 // should return the end of the instructions to be patched, allowing the 573 // should return the end of the instructions to be patched, allowing the
574 // deserializer to deserialize the instructions as raw bytes and put them in 574 // deserializer to deserialize the instructions as raw bytes and put them in
575 // place, ready to be patched with the target. 575 // place, ready to be patched with the target.
576 INLINE(int target_address_size()); 576 INLINE(int target_address_size());
577 577
578 // Read the reference in the instruction this relocation
579 // applies to; can only be called if rmode_ is EXTERNAL_REFERENCE.
580 INLINE(Address target_external_reference());
581
578 // Read/modify the reference in the instruction this relocation 582 // Read/modify the reference in the instruction this relocation
579 // applies to; can only be called if rmode_ is external_reference 583 // applies to; can only be called if rmode_ is INTERNAL_REFERENCE.
580 INLINE(Address target_reference()); 584 INLINE(Address target_internal_reference());
585 INLINE(void set_target_internal_reference(Address target));
581 586
582 // Read/modify the address of a call instruction. This is used to relocate 587 // Read/modify the address of a call instruction. This is used to relocate
583 // the break points where straight-line code is patched with a call 588 // the break points where straight-line code is patched with a call
584 // instruction. 589 // instruction.
585 INLINE(Address call_address()); 590 INLINE(Address call_address());
586 INLINE(void set_call_address(Address target)); 591 INLINE(void set_call_address(Address target));
587 INLINE(Object* call_object()); 592 INLINE(Object* call_object());
588 INLINE(void set_call_object(Object* target)); 593 INLINE(void set_call_object(Object* target));
589 INLINE(Object** call_object_address()); 594 INLINE(Object** call_object_address());
590 595
(...skipping 572 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') | src/compiler.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698