diff options
author | Björn Gustavsson <[email protected]> | 2019-04-12 10:25:39 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-04-12 10:25:39 +0200 |
commit | 2277e30d3dd207a81037d43a7328bbc91552bb76 (patch) | |
tree | 747a18948dfa9374e0c79d417fabfd094d7de40b /erts/emulator/beam | |
parent | 07be518a33d934837fe9745f0ec9399cc34a367f (diff) | |
parent | 7e4c18d1a750f53e16e4b06707722164411bf462 (diff) | |
download | otp-2277e30d3dd207a81037d43a7328bbc91552bb76.tar.gz otp-2277e30d3dd207a81037d43a7328bbc91552bb76.tar.bz2 otp-2277e30d3dd207a81037d43a7328bbc91552bb76.zip |
Merge branch 'bjorn/erts/measure-process_main/OTP-15620'
* bjorn/erts/measure-process_main/OTP-15620:
Add benchmark
Add erts_debug:interpreter_size/0
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/beam_debug.c | 16 | ||||
-rw-r--r-- | erts/emulator/beam/bif.tab | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_debug.c b/erts/emulator/beam/beam_debug.c index 762c5da9be..4d52435139 100644 --- a/erts/emulator/beam/beam_debug.c +++ b/erts/emulator/beam/beam_debug.c @@ -353,6 +353,22 @@ erts_debug_disassemble_1(BIF_ALIST_1) return TUPLE3(hp, addr, bin, mfa); } +BIF_RETTYPE +erts_debug_interpreter_size_0(BIF_ALIST_0) +{ + int i; + BeamInstr low, high; + + low = high = (BeamInstr) process_main; + for (i = 0; i < NUM_SPECIFIC_OPS; i++) { + BeamInstr a = BeamOpCodeAddr(i); + if (a > high) { + high = a; + } + } + return erts_make_integer(high - low, BIF_P); +} + void dbg_bt(Process* p, Eterm* sp) { diff --git a/erts/emulator/beam/bif.tab b/erts/emulator/beam/bif.tab index 34a0be4f2d..db9c258cb7 100644 --- a/erts/emulator/beam/bif.tab +++ b/erts/emulator/beam/bif.tab @@ -437,6 +437,7 @@ bif erts_debug:set_internal_state/2 bif erts_debug:display/1 bif erts_debug:dist_ext_to_term/2 bif erts_debug:instructions/0 +bif erts_debug:interpreter_size/0 bif erts_debug:dirty_cpu/2 bif erts_debug:dirty_io/2 bif erts_debug:dirty/3 |