Mercurial > hg > Papers > 2019 > anatofuz-thesis
view paper/codes/add.moarvmasm @ 122:a3ff00c33fd7 default tip
update slide
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 20 Feb 2019 12:05:38 +0900 |
parents | 9aff6e24950e |
children |
line wrap: on
line source
MoarVM dump of binary compilation unit: SC_0 : D180E910D13D0F8063BBC8EA3DDF32D9509BE85A-0 Callsite_0 : num_pos: 1 arg_count: 1 Arg 1 : positional obj Callsite_1 : num_pos: 2 arg_count: 2 Arg 1 : positional obj Arg 2 : positional obj Callsite_2 : num_pos: 2 arg_count: 2 Arg 1 : positional obj Arg 2 : positional str Callsite_3 : num_pos: 0 arg_count: 0 Callsite_4 : num_pos: 1 arg_count: 1 Arg 1 : flat obj flat Frame_0 : cuuid : 1 name : <mainline> Locals : 0: loc_0_obj 1: loc_1_obj 2: loc_2_obj 3: loc_3_obj 4: loc_4_obj 5: loc_5_str 6: loc_6_obj 7: loc_7_int 8: loc_8_int 9: loc_9_obj 10: loc_10_obj Lexicals : 0: lex_Frame_0__obj 1: lex_Frame_0__obj 2: lex_Frame_0__obj 3: lex_Frame_0__obj Instructions : 00000 getcode loc_1_obj, Frame_1 00001 takeclosure loc_1_obj, loc_1_obj 00002 checkarity 0, -1 00003 param_sp loc_0_obj, 0 00004 paramnamesused 00005 bindlex lex_Frame_0__obj, loc_1_obj 00006 const_s loc_5_str, '$*CTXSAVE' 00007 getdynlex loc_6_obj, loc_5_str 00008 set loc_4_obj, loc_6_obj 00009 isnull loc_7_int, loc_4_obj 00010 if_i loc_7_int, label_1(00020) 00011 decont loc_6_obj, loc_4_obj 00012 const_s loc_5_str, 'ctxsave' 00013 can_s loc_8_int, loc_6_obj, loc_5_str 00014 unless_i loc_8_int, label_1(00020) 00015 decont loc_9_obj, loc_4_obj 00016 findmeth loc_6_obj, loc_9_obj, 'ctxsave' 00017 prepargs Callsite_0 00018 arg_o 0, loc_4_obj 00019 invoke_o loc_6_obj, loc_6_obj annotation: add.nqp:7 label_1: 00020 const_i64_16 loc_7_int, 1 00021 hllboxtype_i loc_9_obj 00022 box_i loc_9_obj, loc_7_int, loc_9_obj 00023 set loc_2_obj, loc_9_obj annotation: add.nqp:8 00024 const_i64_16 loc_7_int, 8 00025 hllboxtype_i loc_9_obj 00026 box_i loc_9_obj, loc_7_int, loc_9_obj 00027 set loc_3_obj, loc_9_obj annotation: add.nqp:10 00028 getlex_no loc_9_obj, '&say' 00029 decont loc_9_obj, loc_9_obj 00030 const_s loc_5_str, '&test_func' 00031 getlexstatic_o loc_10_obj, loc_5_str 00032 decont loc_10_obj, loc_10_obj 00033 prepargs Callsite_1 00034 arg_o 0, loc_2_obj 00035 arg_o 1, loc_3_obj 00036 invoke_o loc_10_obj, loc_10_obj 00037 prepargs Callsite_0 00038 arg_o 0, loc_10_obj 00039 invoke_v loc_9_obj 00040 null loc_10_obj 00041 return_o loc_10_obj Frame_1 : cuuid : 2 name : test_func outer : Frame_0 Locals : 0: loc_0_int 1: loc_1_int 2: loc_2_int 3: loc_3_int 4: loc_4_obj 5: loc_5_obj Instructions : 00000 checkarity 2, 2 00001 param_rp_i loc_0_int, 0 00002 param_rp_i loc_1_int, 1 00003 paramnamesused annotation: add.nqp:2 00004 add_i loc_3_int, loc_0_int, loc_1_int 00005 set loc_2_int, loc_3_int annotation: add.nqp:3 00006 const_i64_16 loc_3_int, 1 00007 add_i loc_3_int, loc_2_int, loc_3_int 00008 set loc_2_int, loc_3_int 00009 hllboxtype_i loc_4_obj 00010 box_i loc_4_obj, loc_2_int, loc_4_obj 00011 throwpayloadlex loc_4_obj, 32, loc_4_obj 00012 goto label_1(00015) 00013 lastexpayload loc_5_obj 00014 set loc_4_obj, loc_5_obj label_1: 00015 return_o loc_4_obj Frame_2 : cuuid : 3 name : <dependencies+deserialize> Locals : 0: loc_0_obj 1: loc_1_str 2: loc_2_obj 3: loc_3_obj 4: loc_4_obj 5: loc_5_obj 6: loc_6_obj 7: loc_7_obj 8: loc_8_str 9: loc_9_obj 10: loc_10_int 11: loc_11_str 12: loc_12_obj Instructions : 00000 getcode loc_9_obj, Frame_3 00001 takeclosure loc_9_obj, loc_9_obj 00002 checkarity 0, 0 00003 paramnamesused 00004 const_s loc_1_str, 'ModuleLoader' 00005 getcurhllsym loc_2_obj, loc_1_str 00006 set loc_0_obj, loc_2_obj 00007 ifnonnull loc_2_obj, label_1(00013) 00008 const_s loc_1_str, 'ModuleLoader.moarvm' 00009 loadbytecode loc_1_str, loc_1_str 00010 hllboxtype_s loc_3_obj 00011 box_s loc_3_obj, loc_1_str, loc_3_obj 00012 set loc_0_obj, loc_3_obj label_1: 00013 getcode loc_3_obj, Frame_0 00014 const_s loc_1_str, 'ModuleLoader' 00015 getcurhllsym loc_2_obj, loc_1_str 00016 const_s loc_1_str, 'NQPCORE' 00017 decont loc_5_obj, loc_2_obj 00018 findmeth loc_4_obj, loc_5_obj, 'load_setting' 00019 prepargs Callsite_2 00020 arg_o 0, loc_2_obj 00021 arg_s 1, loc_1_str 00022 invoke_o loc_2_obj, loc_4_obj 00023 forceouterctx loc_3_obj, loc_2_obj 00024 const_s loc_1_str, 'ModuleLoader' 00025 getcurhllsym loc_2_obj, loc_1_str 00026 const_s loc_1_str, 'NQPP6QRegex' 00027 decont loc_5_obj, loc_2_obj 00028 findmeth loc_4_obj, loc_5_obj, 'load_module' 00029 prepargs Callsite_2 00030 arg_o 0, loc_2_obj 00031 arg_s 1, loc_1_str 00032 invoke_o loc_2_obj, loc_4_obj 00033 const_s loc_1_str, 'D180E910D13D0F8063BBC8EA3DDF32D9509BE85A-0' 00034 createsc loc_4_obj, loc_1_str 00035 set loc_6_obj, loc_4_obj 00036 const_s loc_1_str, 'add.nqp' 00037 scsetdesc loc_6_obj, loc_1_str 00038 hlllist loc_4_obj 00039 create loc_4_obj, loc_4_obj 00040 set loc_7_obj, loc_4_obj 00041 null_s loc_8_str 00042 null loc_4_obj 00043 prepargs Callsite_3 00044 invoke_o loc_5_obj, loc_9_obj 00045 deserialize loc_8_str, loc_6_obj, loc_4_obj, loc_5_obj, loc_7_obj 00046 elems loc_10_int, loc_7_obj 00047 unless_i loc_10_int, label_2(00050) 00048 const_s loc_11_str, 'Repossession conflicts occurred during deserialization' 00049 die loc_5_obj, loc_11_str label_2: 00050 null loc_4_obj 00051 return_o loc_4_obj Frame_3 : cuuid : 4 name : outer : Frame_2 Locals : 0: loc_0_obj 1: loc_1_obj Instructions : 00000 checkarity 0, 0 00001 paramnamesused 00002 bootarray loc_0_obj 00003 create loc_0_obj, loc_0_obj 00004 return_o loc_0_obj Frame_4 : cuuid : 5 name : <load> Locals : 0: loc_0_obj 1: loc_1_obj Instructions : 00000 checkarity 0, 0 00001 paramnamesused 00002 getcode loc_0_obj, Frame_0 00003 decont loc_0_obj, loc_0_obj 00004 prepargs Callsite_3 00005 invoke_o loc_0_obj, loc_0_obj 00006 return_o loc_0_obj Frame_5 : cuuid : 6 name : <entry> Locals : 0: loc_0_obj 1: loc_1_obj 2: loc_2_obj Instructions : 00000 getcode loc_0_obj, Frame_6 00001 takeclosure loc_0_obj, loc_0_obj 00002 checkarity 0, 0 00003 paramnamesused 00004 decont loc_1_obj, loc_0_obj 00005 clargs loc_2_obj 00006 prepargs Callsite_0 00007 arg_o 0, loc_2_obj 00008 invoke_o loc_2_obj, loc_1_obj 00009 return_o loc_2_obj Frame_6 : cuuid : 7 name : <main> outer : Frame_5 Locals : 0: loc_0_obj 1: loc_1_obj 2: loc_2_obj Instructions : 00000 checkarity 0, -1 00001 param_sp loc_1_obj, 0 00002 paramnamesused 00003 getcode loc_0_obj, Frame_0 00004 decont loc_0_obj, loc_0_obj 00005 prepargs Callsite_4 00006 arg_o 0, loc_1_obj 00007 invoke_o loc_0_obj, loc_0_obj 00008 return_o loc_0_obj