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 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 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 |