B.2.6 Far Call Trampoline List
The <far_call_trampoline_list> is a list of <far_call_trampoline> elements. The linker supports the generation of far call trampolines to help a call site reach a destination that is out of range. A far call trampoline function is guaranteed to reach the called function (callee) as it may utilize an indirect call to the called function.
The <far_call_trampoline_list> enumerates all of the far call trampolines that are generated by the linker for a particular link. The <far_call_trampoline_list> can contain any number of <far_call_trampoline> elements. Each <far_call_trampoline> is a container enclosing the following elements:
- The <callee_name> element names the destination function (string).
- The <callee_address> is the address of the called function (constant).
- The <trampoline_object_component_ref> is a reference to an object component that contains the definition of the trampoline function (reference).
- The <trampoline_address> is the address of the trampoline function (constant).
- The <caller_list> enumerates all call sites that utilize this trampoline to reach the called function (container).
- The <trampoline_call_site> provides the details of a trampoline call site (container) and consists of these items:
- The <caller_address> specifies the call site address (constant).
- The <caller_object_component_ref> is the object component where the call site resides (reference).