Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

pbc_dump: Mark branch targets in -d mode #518

Open
aghast opened this Issue Feb 13, 2010 · 0 comments

Comments

Projects
None yet
1 participant

aghast commented Feb 13, 2010

pbc_dump -d shows opcodes but does not indicate branch targets:

 012b:  0000001b 00000001 00000046                            unless_p_ic
 012e:  00000348 00000002 00000001                            shift_p_p
 0131:  00000023 00000004                                     set_args_pc
 0134:  00000024 00000004                                     get_results_pc
 0137:  000002c4 00000002 00000044                            callmethodcc_p_sc
 013a:  00000367 00000009 00000007                            iter_p_p
 013d:  0000001b 00000009 ffffffee                            unless_p_ic
 0140:  00000347 00000001 00000009                            shift_s_p
 0143:  000003d1 00000003 00000007 00000049                   set_p_p_kc
 0147:  000002d5 00000000 00000003 00000043                   isa_i_p_sc
 014b:  00000014 00000000 fffffff2                            if_i_ic

While backwards branching means that marking branch targets in the output stream as labels would be a two pass operation, it should be possible to do the match and indicate the target offset as part of the opcode:

 012b:  0000001b 00000001 00000046                            unless_p_ic 0171
 ...
 013d:  0000001b 00000009 ffffffee                            unless_p_ic 012b
 ...
 014b:  00000014 00000000 fffffff2                            if_i_ic 013d

Note: I make no guarantee those offsets are right.

Originally http://trac.parrot.org/parrot/ticket/1439

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment