aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2011-12-01 20:20:09 +0100
committerSverker Eriksson <[email protected]>2012-02-17 10:58:47 +0100
commit99c0207298251d5557335864f15547ca07a7b050 (patch)
tree989be0778ead12f4c413e957d10b8bba22a49a0b /lib/kernel/src
parent02deff1b04a12be50e346c104e73a6841859d602 (diff)
downloadotp-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.erl8
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.