diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2017-09-06 04:26:47 +0200 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2017-09-14 10:16:15 +0200 |
commit | 41b832fd133dd2bfebe858c42ae51db8f0ac0584 (patch) | |
tree | b190fd1896b7449f6e17786c07bc40c12d015711 /erts/emulator/beam/beam_debug.c | |
parent | be8fb5a57d1a30c203e79ae2baf9e541226020d8 (diff) | |
download | otp-41b832fd133dd2bfebe858c42ae51db8f0ac0584.tar.gz otp-41b832fd133dd2bfebe858c42ae51db8f0ac0584.tar.bz2 otp-41b832fd133dd2bfebe858c42ae51db8f0ac0584.zip |
Implement packing of 'f' and 'j'
Diffstat (limited to 'erts/emulator/beam/beam_debug.c')
-rw-r--r-- | erts/emulator/beam/beam_debug.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_debug.c b/erts/emulator/beam/beam_debug.c index 0ff4ed39b4..39e96126bf 100644 --- a/erts/emulator/beam/beam_debug.c +++ b/erts/emulator/beam/beam_debug.c @@ -425,7 +425,9 @@ print_op(fmtfn_t to, void *to_arg, int op, int size, BeamInstr* addr) while (start_prog < prog) { prog--; switch (*prog) { + case 'f': case 'g': + case 'q': *ap++ = *--sp; break; case 'i': /* Initialize packing accumulator. */ @@ -805,7 +807,7 @@ static void print_bif_name(fmtfn_t to, void* to_arg, BifFunction bif) static BeamInstr* f_to_addr(BeamInstr* base, int op, BeamInstr* ap) { - return base - 1 + opc[op].adjust + *ap; + return base - 1 + opc[op].adjust + (Sint32) *ap; } |