OLD | NEW |
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 Loading... |
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 Loading... |
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_ |
OLD | NEW |