diff options
| author | Damien George <damien.p.george@gmail.com> | 2015-03-18 17:47:47 +0000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2015-11-13 12:49:18 +0000 |
| commit | 9b7f583b0ca37ee87e5fb82e2d65fcd96a609b2f (patch) | |
| tree | 7e061a768312190c62c1fb400619ca59c2f92f70 /py/bc.h | |
| parent | f882d53fcd4ba9775409c994cbf183770963b37e (diff) | |
py: Reorganise bytecode layout so it's more structured, easier to edit.
Diffstat (limited to 'py/bc.h')
| -rw-r--r-- | py/bc.h | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -29,6 +29,30 @@ #include "py/runtime.h" #include "py/obj.h" +// bytecode layout: +// +// n_state : var uint +// n_exc_stack : var uint +// +// <word alignment padding> +// +// argname0 : obj (qstr) +// ... : obj (qstr) +// argnameN : obj (qstr) N = num_pos_args + num_kwonly_args +// +// code_info_size : var uint | code_info_size counts bytes in this chunk +// simple_name : var qstr | +// source_file : var qstr | +// <line number info> | +// <word alignment padding> | +// +// num_cells : byte number of locals that are cells +// local_num0 : byte +// ... : byte +// local_numN : byte N = num_cells +// +// <bytecode> + // Exception stack entry typedef struct _mp_exc_stack { const byte *handler; |
