A method, implemented at a computer system that includes a processor implementing a native instruction set architecture, ISA, for using a common reference memory address when processing calls within a process that supports execution of both (i) native code targeting a native application binary interface, ABI (107a, 107b), that corresponds to the native ISA and that has a first calling convention, and (ii) foreign code targeting a foreign ABI that corresponds to a foreign ISA and that has a second calling convention, the method comprising: based at least on identifying a call that targets a reference memory address for a callee function, determining whether the callee function corresponds to the native ABI or to the foreign ABI, wherein: the callee function is determined to correspond to the native ABI based on a fast-forward sequence being identified at the reference memory address, and the callee function is determined to correspond to the foreign ABI based at least on a lookup structure indicating that the reference memory address is contained within a second memory range not storing native code; and based at least on the determining, initiating execution of the callee function based on performing one of: when a caller function corresponds to the foreign ABI, and when the callee function is determined to correspond to the foreign ABI, directly calling the callee function using the reference memory address within an emulator; when the caller function corresponds to the foreign ABI, and when the callee function is determined to correspond to the native ABI, calling an entry thunk that (i) adapts a second calling convention to the first calling convention and then (ii) directly calls the callee function using the reference memory address; when the caller function corresponds to the native ABI, and when the callee function is determined to correspond to the foreign ABI, calling an exit thunk that (i) adapts a first calling convention of the native ABI to a second calling convention of the foreign ABI and then (ii) invokes the emulator to directly call the callee function using the reference memory address; or when the caller function corresponds to the native ABI, and when the callee function is determined to correspond to the native ABI, directly calling the callee function using the reference memory address. based at least on identifying a call that targets a reference memory address for a callee function, determining whether the callee function corresponds to the native ABI or to the foreign ABI, wherein: the callee function is determined to correspond to the native ABI based on a fast-forward sequence being identified at the reference memory address, and the callee function is determined to correspond to the foreign ABI based at least on a lookup structure indicating that the reference memory address is contained within a second memory range not storing native code; and the callee function is determined to correspond to the native ABI based on a fast-forward sequence being identified at the reference memory address, and the callee function is determined to correspond to the foreign ABI based at least on a lookup structure indicating that the reference memory address is contained within a second memory range not storing native code; and based at least on the determining, initiating execution of the callee function based on performing one of: when a caller function corresponds to the foreign ABI, and when the callee function is determined to correspond to the foreign ABI, directly calling the callee function using the reference memory address within an emulator; when the caller function corresponds to the foreign ABI, and when the callee function is determined to correspond to the native ABI, calling an entry thunk that (i) adapts a second calling convention to the first calling convention and then (ii) directly calls the callee function using the reference memory address; when the caller function corresponds to the native ABI, and when the callee function is determined to correspond to the foreign ABI, calling an exit thunk that (i) adapts a first calling convention of the native ABI to a second calling convention of the foreign ABI and then (ii) invokes the emulator to directly call the callee function using the reference memory address; or when the caller function corresponds to the native ABI, and when the callee function is determined to correspond to the native ABI, directly calling the callee function using the reference memory address. when a caller function corresponds to the foreign ABI, and when the callee function is determined to correspond to the foreign ABI, directly calling the callee function using the reference memory address within an emulator; when the caller function corresponds to the foreign ABI, and when the callee function is determined to correspond to the native ABI, calling an entry thunk that (i) adapts a second calling convention to the first calling convention and then (ii) directly calls the callee function using the reference memory address; when the caller function corresponds to the native ABI, and when the callee function is determined to correspond to the foreign ABI, calling an exit thunk that (i) adapts a first calling convention of the native ABI to a second calling convention of the foreign ABI and then (ii) invokes the emulator to directly call the callee function using the reference memory address; or when the caller function corresponds to the native ABI, and when the callee function is determined to correspond to the native ABI, directly calling the callee function using the reference memory address.