aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_debug.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <bjorn@erlang.org>2017-09-06 04:26:47 +0200
committerBjörn Gustavsson <bjorn@erlang.org>2017-09-14 10:16:15 +0200
commit41b832fd133dd2bfebe858c42ae51db8f0ac0584 (patch)
treeb190fd1896b7449f6e17786c07bc40c12d015711 /erts/emulator/beam/beam_debug.c
parentbe8fb5a57d1a30c203e79ae2baf9e541226020d8 (diff)
downloadotp-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.c4
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;
}