diff options
author | Sverker Eriksson <[email protected]> | 2011-12-01 20:20:09 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2012-02-17 10:58:47 +0100 |
commit | 99c0207298251d5557335864f15547ca07a7b050 (patch) | |
tree | 989be0778ead12f4c413e957d10b8bba22a49a0b /lib/kernel/src | |
parent | 02deff1b04a12be50e346c104e73a6841859d602 (diff) | |
download | otp-99c0207298251d5557335864f15547ca07a7b050.tar.gz otp-99c0207298251d5557335864f15547ca07a7b050.tar.bz2 otp-99c0207298251d5557335864f15547ca07a7b050.zip |
hipe,erts: Add DEBUG support with MFA's in stack descriptors
Diffstat (limited to 'lib/kernel/src')
-rw-r--r-- | lib/kernel/src/hipe_unified_loader.erl | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/kernel/src/hipe_unified_loader.erl b/lib/kernel/src/hipe_unified_loader.erl index 8010bc6a91..cedaaf4f7e 100644 --- a/lib/kernel/src/hipe_unified_loader.erl +++ b/lib/kernel/src/hipe_unified_loader.erl @@ -503,7 +503,7 @@ patch_offset(Type, Data, Address, ConstAndZone, Addresses) -> Atom = Data, patch_atom(Address, Atom); sdesc -> - patch_sdesc(Data, Address, ConstAndZone); + patch_sdesc(Data, Address, ConstAndZone, Addresses); x86_abs_pcrel -> patch_instr(Address, Data, x86_abs_pcrel) %% _ -> @@ -516,14 +516,16 @@ patch_atom(Address, Atom) -> patch_instr(Address, hipe_bifs:atom_to_word(Atom), atom). patch_sdesc(?STACK_DESC(SymExnRA, FSize, Arity, Live), - Address, {_ConstMap2,CodeAddress}) -> + Address, {_ConstMap2,CodeAddress}, _Addresses) -> ExnRA = case SymExnRA of [] -> 0; % No catch LabelOffset -> CodeAddress + LabelOffset end, ?ASSERT(assert_local_patch(Address)), - hipe_bifs:enter_sdesc({Address, ExnRA, FSize, Arity, Live}). + DBG_MFA = ?IF_DEBUG(address_to_mfa_lth(Address, _Addresses), {undefined,undefined,0}), + hipe_bifs:enter_sdesc({Address, ExnRA, FSize, Arity, Live, DBG_MFA}). + %%---------------------------------------------------------------- %% Handle a 'load_address'-type patch. |