diff --git a/common-insts.rst b/common-insts.rst index bd7a9ec7d18362062aab7b3e9268d4dcf48accf3..29022ff2c9f122224c5505a53544a68ba70f1fe7 100644 --- a/common-insts.rst +++ b/common-insts.rst @@ -553,97 +553,84 @@ The canonical definition of each function is in the `IR Builder API :: - [0x300]@uvm.irbuilder.new_bundle () -> (irnoderef) - [0x301]@uvm.irbuilder.load_bundle_from_node (%b: irnoderef) -> () - [0x302]@uvm.irbuilder.abort_bundle_node (%b: irnoderef) -> () - [0x303]@uvm.irbuilder.get_node (%b: irnoderef, %id: int<32>) -> (irnoderef) - [0x304]@uvm.irbuilder.get_id (%b: irnoderef, %node: irnoderef) -> (int<32>) - [0x305]@uvm.irbuilder.set_name (%b: irnoderef, %node: irnoderef, %name: iref>) -> () - [0x306]@uvm.irbuilder.new_type_int (%b: irnoderef, %len: int<32>) -> (irnoderef) - [0x307]@uvm.irbuilder.new_type_float (%b: irnoderef) -> (irnoderef) - [0x308]@uvm.irbuilder.new_type_double (%b: irnoderef) -> (irnoderef) - [0x309]@uvm.irbuilder.new_type_uptr (%b: irnoderef) -> (irnoderef) - [0x30a]@uvm.irbuilder.set_type_uptr (%uptr: irnoderef, %ty: irnoderef) -> () - [0x30b]@uvm.irbuilder.new_type_ufuncptr (%b: irnoderef) -> (irnoderef) - [0x30c]@uvm.irbuilder.set_type_ufuncptr (%ufuncptr: irnoderef, %sig: irnoderef) -> () - [0x30d]@uvm.irbuilder.new_type_struct (%b: irnoderef, %fieldtys: iref, %nfieldtys: int<64>) -> (irnoderef) - [0x30e]@uvm.irbuilder.new_type_hybrid (%b: irnoderef, %fixedtys: iref, %nfixedtys: int<64>, %varty: irnoderef) -> (irnoderef) - [0x30f]@uvm.irbuilder.new_type_array (%b: irnoderef, %elemty: irnoderef, %len: int<64>) -> (irnoderef) - [0x310]@uvm.irbuilder.new_type_vector (%b: irnoderef, %elemty: irnoderef, %len: int<64>) -> (irnoderef) - [0x311]@uvm.irbuilder.new_type_void (%b: irnoderef) -> (irnoderef) - [0x312]@uvm.irbuilder.new_type_ref (%b: irnoderef) -> (irnoderef) - [0x313]@uvm.irbuilder.set_type_ref (%ref: irnoderef, %ty: irnoderef) -> () - [0x314]@uvm.irbuilder.new_type_iref (%b: irnoderef) -> (irnoderef) - [0x315]@uvm.irbuilder.set_type_iref (%iref: irnoderef, %ty: irnoderef) -> () - [0x316]@uvm.irbuilder.new_type_weakref (%b: irnoderef) -> (irnoderef) - [0x317]@uvm.irbuilder.set_type_weakref (%weakref: irnoderef, %ty: irnoderef) -> () - [0x318]@uvm.irbuilder.new_type_funcref (%b: irnoderef) -> (irnoderef) - [0x319]@uvm.irbuilder.set_type_funcref (%funcref: irnoderef, %sig: irnoderef) -> () - [0x31a]@uvm.irbuilder.new_type_tagref64 (%b: irnoderef) -> (irnoderef) - [0x31b]@uvm.irbuilder.new_type_threadref (%b: irnoderef) -> (irnoderef) - [0x31c]@uvm.irbuilder.new_type_stackref (%b: irnoderef) -> (irnoderef) - [0x31d]@uvm.irbuilder.new_type_framecursorref (%b: irnoderef) -> (irnoderef) - [0x31e]@uvm.irbuilder.new_type_irnoderef (%b: irnoderef) -> (irnoderef) - [0x31f]@uvm.irbuilder.new_funcsig (%b: irnoderef, %paramtys: iref, %nparamtys: int<64>, %rettys: iref, %nrettys: int<64>) -> (irnoderef) - [0x320]@uvm.irbuilder.new_const_int (%b: irnoderef, %ty: irnoderef, %value: int<64>) -> (irnoderef) - [0x321]@uvm.irbuilder.new_const_int_ex (%b: irnoderef, %ty: irnoderef, %values: iref>, %nvalues: int<64>) -> (irnoderef) - [0x322]@uvm.irbuilder.new_const_float (%b: irnoderef, %ty: irnoderef, %value: float) -> (irnoderef) - [0x323]@uvm.irbuilder.new_const_double (%b: irnoderef, %ty: irnoderef, %value: double) -> (irnoderef) - [0x324]@uvm.irbuilder.new_const_null (%b: irnoderef, %ty: irnoderef) -> (irnoderef) - [0x325]@uvm.irbuilder.new_const_seq (%b: irnoderef, %ty: irnoderef, %elems: iref, %nelems: int<64>) -> (irnoderef) - [0x326]@uvm.irbuilder.new_const_extern (%b: irnoderef, %ty: irnoderef, %symbol: iref>) -> (irnoderef) - [0x327]@uvm.irbuilder.new_global_cell (%b: irnoderef, %ty: irnoderef) -> (irnoderef) - [0x328]@uvm.irbuilder.new_func (%b: irnoderef, %sig: irnoderef) -> (irnoderef) - [0x329]@uvm.irbuilder.new_func_ver (%b: irnoderef, %func: irnoderef) -> (irnoderef) - [0x32a]@uvm.irbuilder.new_exp_func (%b: irnoderef, %func: irnoderef, %callconv: int<32>, %cookie: irnoderef) -> (irnoderef) - [0x32b]@uvm.irbuilder.new_bb (%fv: irnoderef) -> (irnoderef) - [0x32c]@uvm.irbuilder.new_nor_param (%bb: irnoderef, %ty: irnoderef) -> (irnoderef) - [0x32d]@uvm.irbuilder.new_exc_param (%bb: irnoderef) -> (irnoderef) - [0x32e]@uvm.irbuilder.get_inst_res (%inst: irnoderef, %index: int<32>) -> (irnoderef) - [0x32f]@uvm.irbuilder.get_num_inst_res (%inst: irnoderef) -> (int<32>) - [0x330]@uvm.irbuilder.add_dest (%inst: irnoderef, %kind: int<32>, %dest: irnoderef, %vars: iref, %nvars: int<64>) -> () - [0x331]@uvm.irbuilder.add_keepalives (%inst: irnoderef, %vars: iref, %nvars: int<64>) -> () - [0x332]@uvm.irbuilder.new_binop (%bb: irnoderef, %optr: int<32>, %ty: irnoderef, %opnd1: irnoderef, %opnd2: irnoderef) -> (irnoderef) - [0x333]@uvm.irbuilder.new_cmp (%bb: irnoderef, %optr: int<32>, %ty: irnoderef, %opnd1: irnoderef, %opnd2: irnoderef) -> (irnoderef) - [0x334]@uvm.irbuilder.new_conv (%bb: irnoderef, %optr: int<32>, %from_ty: irnoderef, %to_ty: irnoderef, %opnd: irnoderef) -> (irnoderef) - [0x335]@uvm.irbuilder.new_select (%bb: irnoderef, %cond_ty: irnoderef, %opnd_ty: irnoderef, %cond: irnoderef, %if_true: irnoderef, %if_false: irnoderef) -> (irnoderef) - [0x336]@uvm.irbuilder.new_branch (%bb: irnoderef) -> (irnoderef) - [0x337]@uvm.irbuilder.new_branch2 (%bb: irnoderef, %cond: irnoderef) -> (irnoderef) - [0x338]@uvm.irbuilder.new_switch (%bb: irnoderef, %opnd_ty: irnoderef, %opnd: irnoderef) -> (irnoderef) - [0x339]@uvm.irbuilder.add_switch_dest (%sw: irnoderef, %key: irnoderef, %dest: irnoderef, %vars: iref, %nvars: int<64>) -> () - [0x33a]@uvm.irbuilder.new_call (%bb: irnoderef, %sig: irnoderef, %callee: irnoderef, %args: iref, %nargs: int<64>) -> (irnoderef) - [0x33b]@uvm.irbuilder.new_tailcall (%bb: irnoderef, %sig: irnoderef, %callee: irnoderef, %args: iref, %nargs: int<64>) -> (irnoderef) - [0x33c]@uvm.irbuilder.new_ret (%bb: irnoderef, %rvs: iref, %nrvs: int<64>) -> (irnoderef) - [0x33d]@uvm.irbuilder.new_throw (%bb: irnoderef, %exc: irnoderef) -> (irnoderef) - [0x33e]@uvm.irbuilder.new_extractvalue (%bb: irnoderef, %strty: irnoderef, %index: int<32>, %opnd: irnoderef) -> (irnoderef) - [0x33f]@uvm.irbuilder.new_insertvalue (%bb: irnoderef, %strty: irnoderef, %index: int<32>, %opnd: irnoderef, %newval: irnoderef) -> (irnoderef) - [0x340]@uvm.irbuilder.new_extractelement (%bb: irnoderef, %seqty: irnoderef, %indty: irnoderef, %opnd: irnoderef, %index: irnoderef) -> (irnoderef) - [0x341]@uvm.irbuilder.new_insertelement (%bb: irnoderef, %seqty: irnoderef, %indty: irnoderef, %opnd: irnoderef, %index: irnoderef, %newval: irnoderef) -> (irnoderef) - [0x342]@uvm.irbuilder.new_shufflevector (%bb: irnoderef, %vecty: irnoderef, %maskty: irnoderef, %vec1: irnoderef, %vec2: irnoderef, %mask: irnoderef) -> (irnoderef) - [0x343]@uvm.irbuilder.new_new (%bb: irnoderef, %allocty: irnoderef) -> (irnoderef) - [0x344]@uvm.irbuilder.new_newhybrid (%bb: irnoderef, %allocty: irnoderef, %lenty: irnoderef, %length: irnoderef) -> (irnoderef) - [0x345]@uvm.irbuilder.new_alloca (%bb: irnoderef, %allocty: irnoderef) -> (irnoderef) - [0x346]@uvm.irbuilder.new_allocahybrid (%bb: irnoderef, %allocty: irnoderef, %lenty: irnoderef, %length: irnoderef) -> (irnoderef) - [0x347]@uvm.irbuilder.new_getiref (%bb: irnoderef, %refty: irnoderef, %opnd: irnoderef) -> (irnoderef) - [0x348]@uvm.irbuilder.new_getfieldiref (%bb: irnoderef, %is_ptr: int<32>, %refty: irnoderef, %index: int<32>, %opnd: irnoderef) -> (irnoderef) - [0x349]@uvm.irbuilder.new_getelemiref (%bb: irnoderef, %is_ptr: int<32>, %refty: irnoderef, %indty: irnoderef, %opnd: irnoderef, %index: irnoderef) -> (irnoderef) - [0x34a]@uvm.irbuilder.new_shiftiref (%bb: irnoderef, %is_ptr: int<32>, %refty: irnoderef, %offty: irnoderef, %opnd: irnoderef, %offset: irnoderef) -> (irnoderef) - [0x34b]@uvm.irbuilder.new_getvarpartiref (%bb: irnoderef, %is_ptr: int<32>, %refty: irnoderef, %opnd: irnoderef) -> (irnoderef) - [0x34c]@uvm.irbuilder.new_load (%bb: irnoderef, %is_ptr: int<32>, %ord: int<32>, %refty: irnoderef, %loc: irnoderef) -> (irnoderef) - [0x34d]@uvm.irbuilder.new_store (%bb: irnoderef, %is_ptr: int<32>, %ord: int<32>, %refty: irnoderef, %loc: irnoderef, %newval: irnoderef) -> (irnoderef) - [0x34e]@uvm.irbuilder.new_cmpxchg (%bb: irnoderef, %is_ptr: int<32>, %is_weak: int<32>, %ord_succ: int<32>, %ord_fail: int<32>, %refty: irnoderef, %loc: irnoderef, %expected: irnoderef, %desired: irnoderef) -> (irnoderef) - [0x34f]@uvm.irbuilder.new_atomicrmw (%bb: irnoderef, %is_ptr: int<32>, %ord: int<32>, %optr: int<32>, %refTy: irnoderef, %loc: irnoderef, %opnd: irnoderef) -> (irnoderef) - [0x350]@uvm.irbuilder.new_fence (%bb: irnoderef, %ord: int<32>) -> (irnoderef) - [0x351]@uvm.irbuilder.new_trap (%bb: irnoderef, %rettys: iref, %nrettys: int<64>) -> (irnoderef) - [0x352]@uvm.irbuilder.new_watchpoint (%bb: irnoderef, %wpid: int<32>, %rettys: iref, %nrettys: int<64>) -> (irnoderef) - [0x353]@uvm.irbuilder.new_wpbranch (%bb: irnoderef, %wpid: int<32>) -> (irnoderef) - [0x354]@uvm.irbuilder.new_ccall (%bb: irnoderef, %callconv: int<32>, %callee_ty: irnoderef, %sig: irnoderef, %callee: irnoderef, %args: iref, %nargs: int<64>) -> (irnoderef) - [0x355]@uvm.irbuilder.new_newthread (%bb: irnoderef, %stack: irnoderef, %threadlocal: irnoderef) -> (irnoderef) - [0x356]@uvm.irbuilder.new_swapstack_ret (%bb: irnoderef, %swappee: irnoderef, %ret_tys: iref, %nret_tys: int<64>) -> (irnoderef) - [0x357]@uvm.irbuilder.new_swapstack_kill (%bb: irnoderef, %swappee: irnoderef) -> (irnoderef) - [0x358]@uvm.irbuilder.set_newstack_pass_values (%inst: irnoderef, %tys: iref, %vars: iref, %nvars: int<64>) -> () - [0x359]@uvm.irbuilder.set_newstack_throw_exc (%inst: irnoderef, %exc: irnoderef) -> () - [0x35a]@uvm.irbuilder.new_comminst (%bb: irnoderef, %opcode: int<32>, %flags: iref>, %nflags: int<64>, %tys: iref, %ntys: int<64>, %sigs: iref, %nsigs: int<64>, %args: iref, %nargs: int<64>) -> (irnoderef) + [0x300]@uvm.irbuilder.load () -> () + [0x301]@uvm.irbuilder.abort () -> () + [0x302]@uvm.irbuilder.gen_sym (%name: iref>) -> (int<32>) + [0x303]@uvm.irbuilder.new_type_int (%id: int<32>, %len: int<32>) -> () + [0x304]@uvm.irbuilder.new_type_float (%id: int<32>) -> () + [0x305]@uvm.irbuilder.new_type_double (%id: int<32>) -> () + [0x306]@uvm.irbuilder.new_type_uptr (%id: int<32>, %ty: int<32>) -> () + [0x307]@uvm.irbuilder.new_type_ufuncptr (%id: int<32>, %sig: int<32>) -> () + [0x308]@uvm.irbuilder.new_type_struct (%id: int<32>, %fieldtys: iref>, %nfieldtys: int<64>) -> () + [0x309]@uvm.irbuilder.new_type_hybrid (%id: int<32>, %fixedtys: iref>, %nfixedtys: int<64>, %varty: int<32>) -> () + [0x30a]@uvm.irbuilder.new_type_array (%id: int<32>, %elemty: int<32>, %len: int<64>) -> () + [0x30b]@uvm.irbuilder.new_type_vector (%id: int<32>, %elemty: int<32>, %len: int<64>) -> () + [0x30c]@uvm.irbuilder.new_type_void (%id: int<32>) -> () + [0x30d]@uvm.irbuilder.new_type_ref (%id: int<32>, %ty: int<32>) -> () + [0x30e]@uvm.irbuilder.new_type_iref (%id: int<32>, %ty: int<32>) -> () + [0x30f]@uvm.irbuilder.new_type_weakref (%id: int<32>, %ty: int<32>) -> () + [0x310]@uvm.irbuilder.new_type_funcref (%id: int<32>, %sig: int<32>) -> () + [0x311]@uvm.irbuilder.new_type_tagref64 (%id: int<32>) -> () + [0x312]@uvm.irbuilder.new_type_threadref (%id: int<32>) -> () + [0x313]@uvm.irbuilder.new_type_stackref (%id: int<32>) -> () + [0x314]@uvm.irbuilder.new_type_framecursorref (%id: int<32>) -> () + [0x315]@uvm.irbuilder.new_funcsig (%id: int<32>, %paramtys: iref>, %nparamtys: int<64>, %rettys: iref>, %nrettys: int<64>) -> () + [0x316]@uvm.irbuilder.new_const_int (%id: int<32>, %ty: int<32>, %value: int<64>) -> () + [0x317]@uvm.irbuilder.new_const_int_ex (%id: int<32>, %ty: int<32>, %values: iref>, %nvalues: int<64>) -> () + [0x318]@uvm.irbuilder.new_const_float (%id: int<32>, %ty: int<32>, %value: float) -> () + [0x319]@uvm.irbuilder.new_const_double (%id: int<32>, %ty: int<32>, %value: double) -> () + [0x31a]@uvm.irbuilder.new_const_null (%id: int<32>, %ty: int<32>) -> () + [0x31b]@uvm.irbuilder.new_const_seq (%id: int<32>, %ty: int<32>, %elems: iref>, %nelems: int<64>) -> () + [0x31c]@uvm.irbuilder.new_const_extern (%id: int<32>, %ty: int<32>, %symbol: iref>) -> () + [0x31d]@uvm.irbuilder.new_global_cell (%id: int<32>, %ty: int<32>) -> () + [0x31e]@uvm.irbuilder.new_func (%id: int<32>, %sig: int<32>) -> () + [0x31f]@uvm.irbuilder.new_exp_func (%id: int<32>, %func: int<32>, %callconv: int<32>, %cookie: int<32>) -> () + [0x320]@uvm.irbuilder.new_func_ver (%id: int<32>, %func: int<32>, %bbs: iref>, %nbbs: int<64>) -> () + [0x321]@uvm.irbuilder.new_bb (%id: int<32>, %nor_param_ids: iref>, %n_nor_param_ids: int<64>, %exc_param_id: int<32>, %insts: iref>, %ninsts: int<64>) -> () + [0x322]@uvm.irbuilder.new_dest_clause (%id: int<32>, %dest: int<32>, %vars: iref>, %nvars: int<64>) -> () + [0x323]@uvm.irbuilder.new_exc_clause (%id: int<32>, %nor: int<32>, %exc: int<32>) -> () + [0x324]@uvm.irbuilder.new_keepalive_clause (%id: int<32>, %vars: iref>, %nvars: int<64>) -> () + [0x325]@uvm.irbuilder.new_csc_ret_with (%id: int<32>, %rettys: iref>, %nrettys: int<64>) -> () + [0x326]@uvm.irbuilder.new_csc_kill_old (%id: int<32>) -> () + [0x327]@uvm.irbuilder.new_nsc_pass_values (%id: int<32>, %tys: iref>, %vars: iref>, %ntysvars: int<64>) -> () + [0x328]@uvm.irbuilder.new_nsc_throw_exc (%id: int<32>, %exc: int<32>) -> () + [0x329]@uvm.irbuilder.new_binop (%id: int<32>, %result_id: int<32>, %optr: int<32>, %ty: int<32>, %opnd1: int<32>, %opnd2: int<32>, %exc_clause: int<32>) -> () + [0x32a]@uvm.irbuilder.new_cmp (%id: int<32>, %result_id: int<32>, %optr: int<32>, %ty: int<32>, %opnd1: int<32>, %opnd2: int<32>) -> () + [0x32b]@uvm.irbuilder.new_conv (%id: int<32>, %result_id: int<32>, %optr: int<32>, %from_ty: int<32>, %to_ty: int<32>, %opnd: int<32>) -> () + [0x32c]@uvm.irbuilder.new_select (%id: int<32>, %result_id: int<32>, %cond_ty: int<32>, %opnd_ty: int<32>, %cond: int<32>, %if_true: int<32>, %if_false: int<32>) -> () + [0x32d]@uvm.irbuilder.new_branch (%id: int<32>, %dest: int<32>) -> () + [0x32e]@uvm.irbuilder.new_branch2 (%id: int<32>, %cond: int<32>, %if_true: int<32>, %if_false: int<32>) -> () + [0x32f]@uvm.irbuilder.new_switch (%id: int<32>, %opnd_ty: int<32>, %opnd: int<32>, %default_dest: int<32>, %cases: iref>, %dests: iref>, %ncasesdests: int<64>) -> () + [0x330]@uvm.irbuilder.new_call (%id: int<32>, %result_ids: iref>, %n_result_ids: int<64>, %sig: int<32>, %callee: int<32>, %args: iref>, %nargs: int<64>, %exc_clause: int<32>, %keepalive_clause: int<32>) -> () + [0x331]@uvm.irbuilder.new_tailcall (%id: int<32>, %sig: int<32>, %callee: int<32>, %args: iref>, %nargs: int<64>) -> () + [0x332]@uvm.irbuilder.new_ret (%id: int<32>, %rvs: iref>, %nrvs: int<64>) -> () + [0x333]@uvm.irbuilder.new_throw (%id: int<32>, %exc: int<32>) -> () + [0x334]@uvm.irbuilder.new_extractvalue (%id: int<32>, %result_id: int<32>, %strty: int<32>, %index: int<32>, %opnd: int<32>) -> () + [0x335]@uvm.irbuilder.new_insertvalue (%id: int<32>, %result_id: int<32>, %strty: int<32>, %index: int<32>, %opnd: int<32>, %newval: int<32>) -> () + [0x336]@uvm.irbuilder.new_extractelement (%id: int<32>, %result_id: int<32>, %seqty: int<32>, %indty: int<32>, %opnd: int<32>, %index: int<32>) -> () + [0x337]@uvm.irbuilder.new_insertelement (%id: int<32>, %result_id: int<32>, %seqty: int<32>, %indty: int<32>, %opnd: int<32>, %index: int<32>, %newval: int<32>) -> () + [0x338]@uvm.irbuilder.new_shufflevector (%id: int<32>, %result_id: int<32>, %vecty: int<32>, %maskty: int<32>, %vec1: int<32>, %vec2: int<32>, %mask: int<32>) -> () + [0x339]@uvm.irbuilder.new_new (%id: int<32>, %result_id: int<32>, %allocty: int<32>, %exc_clause: int<32>) -> () + [0x33a]@uvm.irbuilder.new_newhybrid (%id: int<32>, %result_id: int<32>, %allocty: int<32>, %lenty: int<32>, %length: int<32>, %exc_clause: int<32>) -> () + [0x33b]@uvm.irbuilder.new_alloca (%id: int<32>, %result_id: int<32>, %allocty: int<32>, %exc_clause: int<32>) -> () + [0x33c]@uvm.irbuilder.new_allocahybrid (%id: int<32>, %result_id: int<32>, %allocty: int<32>, %lenty: int<32>, %length: int<32>, %exc_clause: int<32>) -> () + [0x33d]@uvm.irbuilder.new_getiref (%id: int<32>, %result_id: int<32>, %refty: int<32>, %opnd: int<32>) -> () + [0x33e]@uvm.irbuilder.new_getfieldiref (%id: int<32>, %result_id: int<32>, %is_ptr: int<32>, %refty: int<32>, %index: int<32>, %opnd: int<32>) -> () + [0x33f]@uvm.irbuilder.new_getelemiref (%id: int<32>, %result_id: int<32>, %is_ptr: int<32>, %refty: int<32>, %indty: int<32>, %opnd: int<32>, %index: int<32>) -> () + [0x340]@uvm.irbuilder.new_shiftiref (%id: int<32>, %result_id: int<32>, %is_ptr: int<32>, %refty: int<32>, %offty: int<32>, %opnd: int<32>, %offset: int<32>) -> () + [0x341]@uvm.irbuilder.new_getvarpartiref (%id: int<32>, %result_id: int<32>, %is_ptr: int<32>, %refty: int<32>, %opnd: int<32>) -> () + [0x342]@uvm.irbuilder.new_load (%id: int<32>, %result_id: int<32>, %is_ptr: int<32>, %ord: int<32>, %refty: int<32>, %loc: int<32>, %exc_clause: int<32>) -> () + [0x343]@uvm.irbuilder.new_store (%id: int<32>, %is_ptr: int<32>, %ord: int<32>, %refty: int<32>, %loc: int<32>, %newval: int<32>, %exc_clause: int<32>) -> () + [0x344]@uvm.irbuilder.new_cmpxchg (%id: int<32>, %value_result_id: int<32>, %succ_result_id: int<32>, %is_ptr: int<32>, %is_weak: int<32>, %ord_succ: int<32>, %ord_fail: int<32>, %refty: int<32>, %loc: int<32>, %expected: int<32>, %desired: int<32>, %exc_clause: int<32>) -> () + [0x345]@uvm.irbuilder.new_atomicrmw (%id: int<32>, %result_id: int<32>, %is_ptr: int<32>, %ord: int<32>, %optr: int<32>, %refTy: int<32>, %loc: int<32>, %opnd: int<32>, %exc_clause: int<32>) -> () + [0x346]@uvm.irbuilder.new_fence (%id: int<32>, %ord: int<32>) -> () + [0x347]@uvm.irbuilder.new_trap (%id: int<32>, %result_ids: iref>, %rettys: iref>, %nretvals: int<64>, %exc_clause: int<32>, %keepalive_clause: int<32>) -> () + [0x348]@uvm.irbuilder.new_watchpoint (%id: int<32>, %wpid: int<32>, %result_ids: iref>, %rettys: iref>, %nretvals: int<64>, %exc_clause: int<32>, %keepalive_clause: int<32>) -> () + [0x349]@uvm.irbuilder.new_wpbranch (%id: int<32>, %wpid: int<32>) -> () + [0x34a]@uvm.irbuilder.new_ccall (%id: int<32>, %result_ids: iref>, %n_result_ids: int<64>, %callconv: int<32>, %callee_ty: int<32>, %sig: int<32>, %callee: int<32>, %args: iref>, %nargs: int<64>, %exc_clause: int<32>, %keepalive_clause: int<32>) -> () + [0x34b]@uvm.irbuilder.new_newthread (%id: int<32>, %result_id: int<32>, %stack: int<32>, %threadlocal: int<32>, %new_stack_clause: int<32>, %exc_clause: int<32>) -> () + [0x34c]@uvm.irbuilder.new_swapstack (%id: int<32>, %result_ids: iref>, %n_result_ids: int<64>, %swappee: int<32>, %cur_stack_clause: int<32>, %new_stack_clause: int<32>, %exc_clause: int<32>, %keepalive_clause: int<32>) -> () + [0x34d]@uvm.irbuilder.new_comminst (%id: int<32>, %result_ids: iref>, %n_result_ids: int<64>, %opcode: int<32>, %flags: iref>, %nflags: int<64>, %tys: iref>, %ntys: int<64>, %sigs: iref>, %nsigs: int<64>, %args: iref>, %nargs: int<64>) -> () .. GEN:END:IRBUILDER_COMMINSTS diff --git a/muapi.h b/muapi.h index ef939d9185753a21253a97df75ecc8f6136f46e6..f1da99b84370a541112186173cda1bd10f924aa7 100644 --- a/muapi.h +++ b/muapi.h @@ -67,7 +67,7 @@ typedef MuValue MuDoubleValue; // double typedef MuValue MuUPtrValue; // uptr typedef MuValue MuUFPValue; // ufuncptr -typedef MuSeqValue MuStructValue; // struct<...> +typedef MuValue MuStructValue; // struct<...> typedef MuSeqValue MuArrayValue; // array typedef MuSeqValue MuVectorValue; // vector @@ -78,6 +78,9 @@ typedef MuGenRefValue MuFuncRefValue; // funcref typedef MuGenRefValue MuThreadRefValue; // threadref typedef MuGenRefValue MuStackRefValue; // stackref typedef MuGenRefValue MuFCRefValue; // framecursorref +typedef MuGenRefValue MuIBRefValue; // irbuilderref +// NOTE: The "irbuilderref" exists so that Mu IR programs themselves can build +// Mu IR. If you want to build IR using this C API, use MuCtx->new_ir_builder. // C-style '\0'-terminated string typedef char *MuCString; @@ -326,7 +329,7 @@ struct MuCtx { void (*delete_value)(MuCtx *ctx, MuValue opnd); // Compare reference or general reference types. - // EQ. Available for ref, iref, funcref, threadref and stackref. + // EQ. Available for ref, iref, funcref, threadref, stackref, framecursorref and irbuilderref MuBool (*ref_eq )(MuCtx *ctx, MuGenRefValue lhs, MuGenRefValue rhs); // ULT. Available for iref only. MuBool (*ref_ult)(MuCtx *ctx, MuIRefValue lhs, MuIRefValue rhs); @@ -716,140 +719,127 @@ struct MuIRBuilder { // Common instruction opcodes /// GEN:BEGIN:COMMINSTS -#define MU_CI_UVM_NEW_STACK ((MuCommInst)0x201) /// MUAPIPARSER muname:@uvm.new_stack -#define MU_CI_UVM_KILL_STACK ((MuCommInst)0x202) /// MUAPIPARSER muname:@uvm.kill_stack -#define MU_CI_UVM_THREAD_EXIT ((MuCommInst)0x203) /// MUAPIPARSER muname:@uvm.thread_exit -#define MU_CI_UVM_CURRENT_STACK ((MuCommInst)0x204) /// MUAPIPARSER muname:@uvm.current_stack -#define MU_CI_UVM_SET_THREADLOCAL ((MuCommInst)0x205) /// MUAPIPARSER muname:@uvm.set_threadlocal -#define MU_CI_UVM_GET_THREADLOCAL ((MuCommInst)0x206) /// MUAPIPARSER muname:@uvm.get_threadlocal -#define MU_CI_UVM_TR64_IS_FP ((MuCommInst)0x211) /// MUAPIPARSER muname:@uvm.tr64.is_fp -#define MU_CI_UVM_TR64_IS_INT ((MuCommInst)0x212) /// MUAPIPARSER muname:@uvm.tr64.is_int -#define MU_CI_UVM_TR64_IS_REF ((MuCommInst)0x213) /// MUAPIPARSER muname:@uvm.tr64.is_ref -#define MU_CI_UVM_TR64_FROM_FP ((MuCommInst)0x214) /// MUAPIPARSER muname:@uvm.tr64.from_fp -#define MU_CI_UVM_TR64_FROM_INT ((MuCommInst)0x215) /// MUAPIPARSER muname:@uvm.tr64.from_int -#define MU_CI_UVM_TR64_FROM_REF ((MuCommInst)0x216) /// MUAPIPARSER muname:@uvm.tr64.from_ref -#define MU_CI_UVM_TR64_TO_FP ((MuCommInst)0x217) /// MUAPIPARSER muname:@uvm.tr64.to_fp -#define MU_CI_UVM_TR64_TO_INT ((MuCommInst)0x218) /// MUAPIPARSER muname:@uvm.tr64.to_int -#define MU_CI_UVM_TR64_TO_REF ((MuCommInst)0x219) /// MUAPIPARSER muname:@uvm.tr64.to_ref -#define MU_CI_UVM_TR64_TO_TAG ((MuCommInst)0x21a) /// MUAPIPARSER muname:@uvm.tr64.to_tag -#define MU_CI_UVM_FUTEX_WAIT ((MuCommInst)0x220) /// MUAPIPARSER muname:@uvm.futex.wait -#define MU_CI_UVM_FUTEX_WAIT_TIMEOUT ((MuCommInst)0x221) /// MUAPIPARSER muname:@uvm.futex.wait_timeout -#define MU_CI_UVM_FUTEX_WAKE ((MuCommInst)0x222) /// MUAPIPARSER muname:@uvm.futex.wake -#define MU_CI_UVM_FUTEX_CMP_REQUEUE ((MuCommInst)0x223) /// MUAPIPARSER muname:@uvm.futex.cmp_requeue -#define MU_CI_UVM_KILL_DEPENDENCY ((MuCommInst)0x230) /// MUAPIPARSER muname:@uvm.kill_dependency -#define MU_CI_UVM_NATIVE_PIN ((MuCommInst)0x240) /// MUAPIPARSER muname:@uvm.native.pin -#define MU_CI_UVM_NATIVE_UNPIN ((MuCommInst)0x241) /// MUAPIPARSER muname:@uvm.native.unpin -#define MU_CI_UVM_NATIVE_EXPOSE ((MuCommInst)0x242) /// MUAPIPARSER muname:@uvm.native.expose -#define MU_CI_UVM_NATIVE_UNEXPOSE ((MuCommInst)0x243) /// MUAPIPARSER muname:@uvm.native.unexpose -#define MU_CI_UVM_NATIVE_GET_COOKIE ((MuCommInst)0x244) /// MUAPIPARSER muname:@uvm.native.get_cookie -#define MU_CI_UVM_META_ID_OF ((MuCommInst)0x250) /// MUAPIPARSER muname:@uvm.meta.id_of -#define MU_CI_UVM_META_NAME_OF ((MuCommInst)0x251) /// MUAPIPARSER muname:@uvm.meta.name_of -#define MU_CI_UVM_META_LOAD_BUNDLE ((MuCommInst)0x252) /// MUAPIPARSER muname:@uvm.meta.load_bundle -#define MU_CI_UVM_META_LOAD_HAIL ((MuCommInst)0x253) /// MUAPIPARSER muname:@uvm.meta.load_hail -#define MU_CI_UVM_META_NEW_CURSOR ((MuCommInst)0x254) /// MUAPIPARSER muname:@uvm.meta.new_cursor -#define MU_CI_UVM_META_NEXT_FRAME ((MuCommInst)0x255) /// MUAPIPARSER muname:@uvm.meta.next_frame -#define MU_CI_UVM_META_COPY_CURSOR ((MuCommInst)0x256) /// MUAPIPARSER muname:@uvm.meta.copy_cursor -#define MU_CI_UVM_META_CLOSE_CURSOR ((MuCommInst)0x257) /// MUAPIPARSER muname:@uvm.meta.close_cursor -#define MU_CI_UVM_META_CUR_FUNC ((MuCommInst)0x258) /// MUAPIPARSER muname:@uvm.meta.cur_func -#define MU_CI_UVM_META_CUR_FUNC_VER ((MuCommInst)0x259) /// MUAPIPARSER muname:@uvm.meta.cur_func_Ver -#define MU_CI_UVM_META_CUR_INST ((MuCommInst)0x25a) /// MUAPIPARSER muname:@uvm.meta.cur_inst -#define MU_CI_UVM_META_DUMP_KEEPALIVES ((MuCommInst)0x25b) /// MUAPIPARSER muname:@uvm.meta.dump_keepalives -#define MU_CI_UVM_META_POP_FRAMES_TO ((MuCommInst)0x25c) /// MUAPIPARSER muname:@uvm.meta.pop_frames_to -#define MU_CI_UVM_META_PUSH_FRAME ((MuCommInst)0x25d) /// MUAPIPARSER muname:@uvm.meta.push_frame -#define MU_CI_UVM_META_ENABLE_WATCHPOINT ((MuCommInst)0x25e) /// MUAPIPARSER muname:@uvm.meta.enable_watchpoint -#define MU_CI_UVM_META_DISABLE_WATCHPOINT ((MuCommInst)0x25f) /// MUAPIPARSER muname:@uvm.meta.disable_watchpoint -#define MU_CI_UVM_META_SET_TRAP_HANDLER ((MuCommInst)0x260) /// MUAPIPARSER muname:@uvm.meta.set_trap_handler -#define MU_CI_UVM_IRBUILDER_NEW_BUNDLE ((MuCommInst)0x300) /// MUAPIPARSER muname:@uvm.irbuilder.new_bundle -#define MU_CI_UVM_IRBUILDER_LOAD_BUNDLE_FROM_NODE ((MuCommInst)0x301) /// MUAPIPARSER muname:@uvm.irbuilder.load_bundle_from_node -#define MU_CI_UVM_IRBUILDER_ABORT_BUNDLE_NODE ((MuCommInst)0x302) /// MUAPIPARSER muname:@uvm.irbuilder.abort_bundle_node -#define MU_CI_UVM_IRBUILDER_GET_NODE ((MuCommInst)0x303) /// MUAPIPARSER muname:@uvm.irbuilder.get_node -#define MU_CI_UVM_IRBUILDER_GET_ID ((MuCommInst)0x304) /// MUAPIPARSER muname:@uvm.irbuilder.get_id -#define MU_CI_UVM_IRBUILDER_SET_NAME ((MuCommInst)0x305) /// MUAPIPARSER muname:@uvm.irbuilder.set_name -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_INT ((MuCommInst)0x306) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_int -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_FLOAT ((MuCommInst)0x307) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_float -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_DOUBLE ((MuCommInst)0x308) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_double -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_UPTR ((MuCommInst)0x309) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_uptr -#define MU_CI_UVM_IRBUILDER_SET_TYPE_UPTR ((MuCommInst)0x30a) /// MUAPIPARSER muname:@uvm.irbuilder.set_type_uptr -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_UFUNCPTR ((MuCommInst)0x30b) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_ufuncptr -#define MU_CI_UVM_IRBUILDER_SET_TYPE_UFUNCPTR ((MuCommInst)0x30c) /// MUAPIPARSER muname:@uvm.irbuilder.set_type_ufuncptr -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_STRUCT ((MuCommInst)0x30d) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_struct -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_HYBRID ((MuCommInst)0x30e) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_hybrid -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_ARRAY ((MuCommInst)0x30f) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_array -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_VECTOR ((MuCommInst)0x310) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_vector -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_VOID ((MuCommInst)0x311) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_void -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_REF ((MuCommInst)0x312) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_ref -#define MU_CI_UVM_IRBUILDER_SET_TYPE_REF ((MuCommInst)0x313) /// MUAPIPARSER muname:@uvm.irbuilder.set_type_ref -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_IREF ((MuCommInst)0x314) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_iref -#define MU_CI_UVM_IRBUILDER_SET_TYPE_IREF ((MuCommInst)0x315) /// MUAPIPARSER muname:@uvm.irbuilder.set_type_iref -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_WEAKREF ((MuCommInst)0x316) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_weakref -#define MU_CI_UVM_IRBUILDER_SET_TYPE_WEAKREF ((MuCommInst)0x317) /// MUAPIPARSER muname:@uvm.irbuilder.set_type_weakref -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_FUNCREF ((MuCommInst)0x318) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_funcref -#define MU_CI_UVM_IRBUILDER_SET_TYPE_FUNCREF ((MuCommInst)0x319) /// MUAPIPARSER muname:@uvm.irbuilder.set_type_funcref -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_TAGREF64 ((MuCommInst)0x31a) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_tagref64 -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_THREADREF ((MuCommInst)0x31b) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_threadref -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_STACKREF ((MuCommInst)0x31c) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_stackref -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_FRAMECURSORREF ((MuCommInst)0x31d) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_framecursorref -#define MU_CI_UVM_IRBUILDER_NEW_TYPE_IRNODEREF ((MuCommInst)0x31e) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_irnoderef -#define MU_CI_UVM_IRBUILDER_NEW_FUNCSIG ((MuCommInst)0x31f) /// MUAPIPARSER muname:@uvm.irbuilder.new_funcsig -#define MU_CI_UVM_IRBUILDER_NEW_CONST_INT ((MuCommInst)0x320) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_int -#define MU_CI_UVM_IRBUILDER_NEW_CONST_INT_EX ((MuCommInst)0x321) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_int_ex -#define MU_CI_UVM_IRBUILDER_NEW_CONST_FLOAT ((MuCommInst)0x322) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_float -#define MU_CI_UVM_IRBUILDER_NEW_CONST_DOUBLE ((MuCommInst)0x323) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_double -#define MU_CI_UVM_IRBUILDER_NEW_CONST_NULL ((MuCommInst)0x324) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_null -#define MU_CI_UVM_IRBUILDER_NEW_CONST_SEQ ((MuCommInst)0x325) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_seq -#define MU_CI_UVM_IRBUILDER_NEW_CONST_EXTERN ((MuCommInst)0x326) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_extern -#define MU_CI_UVM_IRBUILDER_NEW_GLOBAL_CELL ((MuCommInst)0x327) /// MUAPIPARSER muname:@uvm.irbuilder.new_global_cell -#define MU_CI_UVM_IRBUILDER_NEW_FUNC ((MuCommInst)0x328) /// MUAPIPARSER muname:@uvm.irbuilder.new_func -#define MU_CI_UVM_IRBUILDER_NEW_FUNC_VER ((MuCommInst)0x329) /// MUAPIPARSER muname:@uvm.irbuilder.new_func_ver -#define MU_CI_UVM_IRBUILDER_NEW_EXP_FUNC ((MuCommInst)0x32a) /// MUAPIPARSER muname:@uvm.irbuilder.new_exp_func -#define MU_CI_UVM_IRBUILDER_NEW_BB ((MuCommInst)0x32b) /// MUAPIPARSER muname:@uvm.irbuilder.new_bb -#define MU_CI_UVM_IRBUILDER_NEW_NOR_PARAM ((MuCommInst)0x32c) /// MUAPIPARSER muname:@uvm.irbuilder.new_nor_param -#define MU_CI_UVM_IRBUILDER_NEW_EXC_PARAM ((MuCommInst)0x32d) /// MUAPIPARSER muname:@uvm.irbuilder.new_exc_param -#define MU_CI_UVM_IRBUILDER_GET_INST_RES ((MuCommInst)0x32e) /// MUAPIPARSER muname:@uvm.irbuilder.get_inst_res -#define MU_CI_UVM_IRBUILDER_GET_NUM_INST_RES ((MuCommInst)0x32f) /// MUAPIPARSER muname:@uvm.irbuilder.get_num_inst_res -#define MU_CI_UVM_IRBUILDER_ADD_DEST ((MuCommInst)0x330) /// MUAPIPARSER muname:@uvm.irbuilder.add_dest -#define MU_CI_UVM_IRBUILDER_ADD_KEEPALIVES ((MuCommInst)0x331) /// MUAPIPARSER muname:@uvm.irbuilder.add_keepalives -#define MU_CI_UVM_IRBUILDER_NEW_BINOP ((MuCommInst)0x332) /// MUAPIPARSER muname:@uvm.irbuilder.new_binop -#define MU_CI_UVM_IRBUILDER_NEW_CMP ((MuCommInst)0x333) /// MUAPIPARSER muname:@uvm.irbuilder.new_cmp -#define MU_CI_UVM_IRBUILDER_NEW_CONV ((MuCommInst)0x334) /// MUAPIPARSER muname:@uvm.irbuilder.new_conv -#define MU_CI_UVM_IRBUILDER_NEW_SELECT ((MuCommInst)0x335) /// MUAPIPARSER muname:@uvm.irbuilder.new_select -#define MU_CI_UVM_IRBUILDER_NEW_BRANCH ((MuCommInst)0x336) /// MUAPIPARSER muname:@uvm.irbuilder.new_branch -#define MU_CI_UVM_IRBUILDER_NEW_BRANCH2 ((MuCommInst)0x337) /// MUAPIPARSER muname:@uvm.irbuilder.new_branch2 -#define MU_CI_UVM_IRBUILDER_NEW_SWITCH ((MuCommInst)0x338) /// MUAPIPARSER muname:@uvm.irbuilder.new_switch -#define MU_CI_UVM_IRBUILDER_ADD_SWITCH_DEST ((MuCommInst)0x339) /// MUAPIPARSER muname:@uvm.irbuilder.add_switch_dest -#define MU_CI_UVM_IRBUILDER_NEW_CALL ((MuCommInst)0x33a) /// MUAPIPARSER muname:@uvm.irbuilder.new_call -#define MU_CI_UVM_IRBUILDER_NEW_TAILCALL ((MuCommInst)0x33b) /// MUAPIPARSER muname:@uvm.irbuilder.new_tailcall -#define MU_CI_UVM_IRBUILDER_NEW_RET ((MuCommInst)0x33c) /// MUAPIPARSER muname:@uvm.irbuilder.new_ret -#define MU_CI_UVM_IRBUILDER_NEW_THROW ((MuCommInst)0x33d) /// MUAPIPARSER muname:@uvm.irbuilder.new_throw -#define MU_CI_UVM_IRBUILDER_NEW_EXTRACTVALUE ((MuCommInst)0x33e) /// MUAPIPARSER muname:@uvm.irbuilder.new_extractvalue -#define MU_CI_UVM_IRBUILDER_NEW_INSERTVALUE ((MuCommInst)0x33f) /// MUAPIPARSER muname:@uvm.irbuilder.new_insertvalue -#define MU_CI_UVM_IRBUILDER_NEW_EXTRACTELEMENT ((MuCommInst)0x340) /// MUAPIPARSER muname:@uvm.irbuilder.new_extractelement -#define MU_CI_UVM_IRBUILDER_NEW_INSERTELEMENT ((MuCommInst)0x341) /// MUAPIPARSER muname:@uvm.irbuilder.new_insertelement -#define MU_CI_UVM_IRBUILDER_NEW_SHUFFLEVECTOR ((MuCommInst)0x342) /// MUAPIPARSER muname:@uvm.irbuilder.new_shufflevector -#define MU_CI_UVM_IRBUILDER_NEW_NEW ((MuCommInst)0x343) /// MUAPIPARSER muname:@uvm.irbuilder.new_new -#define MU_CI_UVM_IRBUILDER_NEW_NEWHYBRID ((MuCommInst)0x344) /// MUAPIPARSER muname:@uvm.irbuilder.new_newhybrid -#define MU_CI_UVM_IRBUILDER_NEW_ALLOCA ((MuCommInst)0x345) /// MUAPIPARSER muname:@uvm.irbuilder.new_alloca -#define MU_CI_UVM_IRBUILDER_NEW_ALLOCAHYBRID ((MuCommInst)0x346) /// MUAPIPARSER muname:@uvm.irbuilder.new_allocahybrid -#define MU_CI_UVM_IRBUILDER_NEW_GETIREF ((MuCommInst)0x347) /// MUAPIPARSER muname:@uvm.irbuilder.new_getiref -#define MU_CI_UVM_IRBUILDER_NEW_GETFIELDIREF ((MuCommInst)0x348) /// MUAPIPARSER muname:@uvm.irbuilder.new_getfieldiref -#define MU_CI_UVM_IRBUILDER_NEW_GETELEMIREF ((MuCommInst)0x349) /// MUAPIPARSER muname:@uvm.irbuilder.new_getelemiref -#define MU_CI_UVM_IRBUILDER_NEW_SHIFTIREF ((MuCommInst)0x34a) /// MUAPIPARSER muname:@uvm.irbuilder.new_shiftiref -#define MU_CI_UVM_IRBUILDER_NEW_GETVARPARTIREF ((MuCommInst)0x34b) /// MUAPIPARSER muname:@uvm.irbuilder.new_getvarpartiref -#define MU_CI_UVM_IRBUILDER_NEW_LOAD ((MuCommInst)0x34c) /// MUAPIPARSER muname:@uvm.irbuilder.new_load -#define MU_CI_UVM_IRBUILDER_NEW_STORE ((MuCommInst)0x34d) /// MUAPIPARSER muname:@uvm.irbuilder.new_store -#define MU_CI_UVM_IRBUILDER_NEW_CMPXCHG ((MuCommInst)0x34e) /// MUAPIPARSER muname:@uvm.irbuilder.new_cmpxchg -#define MU_CI_UVM_IRBUILDER_NEW_ATOMICRMW ((MuCommInst)0x34f) /// MUAPIPARSER muname:@uvm.irbuilder.new_atomicrmw -#define MU_CI_UVM_IRBUILDER_NEW_FENCE ((MuCommInst)0x350) /// MUAPIPARSER muname:@uvm.irbuilder.new_fence -#define MU_CI_UVM_IRBUILDER_NEW_TRAP ((MuCommInst)0x351) /// MUAPIPARSER muname:@uvm.irbuilder.new_trap -#define MU_CI_UVM_IRBUILDER_NEW_WATCHPOINT ((MuCommInst)0x352) /// MUAPIPARSER muname:@uvm.irbuilder.new_watchpoint -#define MU_CI_UVM_IRBUILDER_NEW_WPBRANCH ((MuCommInst)0x353) /// MUAPIPARSER muname:@uvm.irbuilder.new_wpbranch -#define MU_CI_UVM_IRBUILDER_NEW_CCALL ((MuCommInst)0x354) /// MUAPIPARSER muname:@uvm.irbuilder.new_ccall -#define MU_CI_UVM_IRBUILDER_NEW_NEWTHREAD ((MuCommInst)0x355) /// MUAPIPARSER muname:@uvm.irbuilder.new_newthread -#define MU_CI_UVM_IRBUILDER_NEW_SWAPSTACK_RET ((MuCommInst)0x356) /// MUAPIPARSER muname:@uvm.irbuilder.new_swapstack_ret -#define MU_CI_UVM_IRBUILDER_NEW_SWAPSTACK_KILL ((MuCommInst)0x357) /// MUAPIPARSER muname:@uvm.irbuilder.new_swapstack_kill -#define MU_CI_UVM_IRBUILDER_SET_NEWSTACK_PASS_VALUES ((MuCommInst)0x358) /// MUAPIPARSER muname:@uvm.irbuilder.set_newstack_pass_values -#define MU_CI_UVM_IRBUILDER_SET_NEWSTACK_THROW_EXC ((MuCommInst)0x359) /// MUAPIPARSER muname:@uvm.irbuilder.set_newstack_throw_exc -#define MU_CI_UVM_IRBUILDER_NEW_COMMINST ((MuCommInst)0x35a) /// MUAPIPARSER muname:@uvm.irbuilder.new_comminst +#define MU_CI_UVM_NEW_STACK ((MuCommInst)0x201) /// MUAPIPARSER muname:@uvm.new_stack +#define MU_CI_UVM_KILL_STACK ((MuCommInst)0x202) /// MUAPIPARSER muname:@uvm.kill_stack +#define MU_CI_UVM_THREAD_EXIT ((MuCommInst)0x203) /// MUAPIPARSER muname:@uvm.thread_exit +#define MU_CI_UVM_CURRENT_STACK ((MuCommInst)0x204) /// MUAPIPARSER muname:@uvm.current_stack +#define MU_CI_UVM_SET_THREADLOCAL ((MuCommInst)0x205) /// MUAPIPARSER muname:@uvm.set_threadlocal +#define MU_CI_UVM_GET_THREADLOCAL ((MuCommInst)0x206) /// MUAPIPARSER muname:@uvm.get_threadlocal +#define MU_CI_UVM_TR64_IS_FP ((MuCommInst)0x211) /// MUAPIPARSER muname:@uvm.tr64.is_fp +#define MU_CI_UVM_TR64_IS_INT ((MuCommInst)0x212) /// MUAPIPARSER muname:@uvm.tr64.is_int +#define MU_CI_UVM_TR64_IS_REF ((MuCommInst)0x213) /// MUAPIPARSER muname:@uvm.tr64.is_ref +#define MU_CI_UVM_TR64_FROM_FP ((MuCommInst)0x214) /// MUAPIPARSER muname:@uvm.tr64.from_fp +#define MU_CI_UVM_TR64_FROM_INT ((MuCommInst)0x215) /// MUAPIPARSER muname:@uvm.tr64.from_int +#define MU_CI_UVM_TR64_FROM_REF ((MuCommInst)0x216) /// MUAPIPARSER muname:@uvm.tr64.from_ref +#define MU_CI_UVM_TR64_TO_FP ((MuCommInst)0x217) /// MUAPIPARSER muname:@uvm.tr64.to_fp +#define MU_CI_UVM_TR64_TO_INT ((MuCommInst)0x218) /// MUAPIPARSER muname:@uvm.tr64.to_int +#define MU_CI_UVM_TR64_TO_REF ((MuCommInst)0x219) /// MUAPIPARSER muname:@uvm.tr64.to_ref +#define MU_CI_UVM_TR64_TO_TAG ((MuCommInst)0x21a) /// MUAPIPARSER muname:@uvm.tr64.to_tag +#define MU_CI_UVM_FUTEX_WAIT ((MuCommInst)0x220) /// MUAPIPARSER muname:@uvm.futex.wait +#define MU_CI_UVM_FUTEX_WAIT_TIMEOUT ((MuCommInst)0x221) /// MUAPIPARSER muname:@uvm.futex.wait_timeout +#define MU_CI_UVM_FUTEX_WAKE ((MuCommInst)0x222) /// MUAPIPARSER muname:@uvm.futex.wake +#define MU_CI_UVM_FUTEX_CMP_REQUEUE ((MuCommInst)0x223) /// MUAPIPARSER muname:@uvm.futex.cmp_requeue +#define MU_CI_UVM_KILL_DEPENDENCY ((MuCommInst)0x230) /// MUAPIPARSER muname:@uvm.kill_dependency +#define MU_CI_UVM_NATIVE_PIN ((MuCommInst)0x240) /// MUAPIPARSER muname:@uvm.native.pin +#define MU_CI_UVM_NATIVE_UNPIN ((MuCommInst)0x241) /// MUAPIPARSER muname:@uvm.native.unpin +#define MU_CI_UVM_NATIVE_EXPOSE ((MuCommInst)0x242) /// MUAPIPARSER muname:@uvm.native.expose +#define MU_CI_UVM_NATIVE_UNEXPOSE ((MuCommInst)0x243) /// MUAPIPARSER muname:@uvm.native.unexpose +#define MU_CI_UVM_NATIVE_GET_COOKIE ((MuCommInst)0x244) /// MUAPIPARSER muname:@uvm.native.get_cookie +#define MU_CI_UVM_META_ID_OF ((MuCommInst)0x250) /// MUAPIPARSER muname:@uvm.meta.id_of +#define MU_CI_UVM_META_NAME_OF ((MuCommInst)0x251) /// MUAPIPARSER muname:@uvm.meta.name_of +#define MU_CI_UVM_META_LOAD_BUNDLE ((MuCommInst)0x252) /// MUAPIPARSER muname:@uvm.meta.load_bundle +#define MU_CI_UVM_META_LOAD_HAIL ((MuCommInst)0x253) /// MUAPIPARSER muname:@uvm.meta.load_hail +#define MU_CI_UVM_META_NEW_CURSOR ((MuCommInst)0x254) /// MUAPIPARSER muname:@uvm.meta.new_cursor +#define MU_CI_UVM_META_NEXT_FRAME ((MuCommInst)0x255) /// MUAPIPARSER muname:@uvm.meta.next_frame +#define MU_CI_UVM_META_COPY_CURSOR ((MuCommInst)0x256) /// MUAPIPARSER muname:@uvm.meta.copy_cursor +#define MU_CI_UVM_META_CLOSE_CURSOR ((MuCommInst)0x257) /// MUAPIPARSER muname:@uvm.meta.close_cursor +#define MU_CI_UVM_META_CUR_FUNC ((MuCommInst)0x258) /// MUAPIPARSER muname:@uvm.meta.cur_func +#define MU_CI_UVM_META_CUR_FUNC_VER ((MuCommInst)0x259) /// MUAPIPARSER muname:@uvm.meta.cur_func_Ver +#define MU_CI_UVM_META_CUR_INST ((MuCommInst)0x25a) /// MUAPIPARSER muname:@uvm.meta.cur_inst +#define MU_CI_UVM_META_DUMP_KEEPALIVES ((MuCommInst)0x25b) /// MUAPIPARSER muname:@uvm.meta.dump_keepalives +#define MU_CI_UVM_META_POP_FRAMES_TO ((MuCommInst)0x25c) /// MUAPIPARSER muname:@uvm.meta.pop_frames_to +#define MU_CI_UVM_META_PUSH_FRAME ((MuCommInst)0x25d) /// MUAPIPARSER muname:@uvm.meta.push_frame +#define MU_CI_UVM_META_ENABLE_WATCHPOINT ((MuCommInst)0x25e) /// MUAPIPARSER muname:@uvm.meta.enable_watchpoint +#define MU_CI_UVM_META_DISABLE_WATCHPOINT ((MuCommInst)0x25f) /// MUAPIPARSER muname:@uvm.meta.disable_watchpoint +#define MU_CI_UVM_META_SET_TRAP_HANDLER ((MuCommInst)0x260) /// MUAPIPARSER muname:@uvm.meta.set_trap_handler +#define MU_CI_UVM_IRBUILDER_LOAD ((MuCommInst)0x300) /// MUAPIPARSER muname:@uvm.irbuilder.load +#define MU_CI_UVM_IRBUILDER_ABORT ((MuCommInst)0x301) /// MUAPIPARSER muname:@uvm.irbuilder.abort +#define MU_CI_UVM_IRBUILDER_GEN_SYM ((MuCommInst)0x302) /// MUAPIPARSER muname:@uvm.irbuilder.gen_sym +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_INT ((MuCommInst)0x303) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_int +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_FLOAT ((MuCommInst)0x304) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_float +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_DOUBLE ((MuCommInst)0x305) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_double +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_UPTR ((MuCommInst)0x306) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_uptr +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_UFUNCPTR ((MuCommInst)0x307) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_ufuncptr +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_STRUCT ((MuCommInst)0x308) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_struct +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_HYBRID ((MuCommInst)0x309) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_hybrid +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_ARRAY ((MuCommInst)0x30a) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_array +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_VECTOR ((MuCommInst)0x30b) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_vector +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_VOID ((MuCommInst)0x30c) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_void +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_REF ((MuCommInst)0x30d) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_ref +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_IREF ((MuCommInst)0x30e) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_iref +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_WEAKREF ((MuCommInst)0x30f) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_weakref +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_FUNCREF ((MuCommInst)0x310) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_funcref +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_TAGREF64 ((MuCommInst)0x311) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_tagref64 +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_THREADREF ((MuCommInst)0x312) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_threadref +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_STACKREF ((MuCommInst)0x313) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_stackref +#define MU_CI_UVM_IRBUILDER_NEW_TYPE_FRAMECURSORREF ((MuCommInst)0x314) /// MUAPIPARSER muname:@uvm.irbuilder.new_type_framecursorref +#define MU_CI_UVM_IRBUILDER_NEW_FUNCSIG ((MuCommInst)0x315) /// MUAPIPARSER muname:@uvm.irbuilder.new_funcsig +#define MU_CI_UVM_IRBUILDER_NEW_CONST_INT ((MuCommInst)0x316) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_int +#define MU_CI_UVM_IRBUILDER_NEW_CONST_INT_EX ((MuCommInst)0x317) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_int_ex +#define MU_CI_UVM_IRBUILDER_NEW_CONST_FLOAT ((MuCommInst)0x318) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_float +#define MU_CI_UVM_IRBUILDER_NEW_CONST_DOUBLE ((MuCommInst)0x319) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_double +#define MU_CI_UVM_IRBUILDER_NEW_CONST_NULL ((MuCommInst)0x31a) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_null +#define MU_CI_UVM_IRBUILDER_NEW_CONST_SEQ ((MuCommInst)0x31b) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_seq +#define MU_CI_UVM_IRBUILDER_NEW_CONST_EXTERN ((MuCommInst)0x31c) /// MUAPIPARSER muname:@uvm.irbuilder.new_const_extern +#define MU_CI_UVM_IRBUILDER_NEW_GLOBAL_CELL ((MuCommInst)0x31d) /// MUAPIPARSER muname:@uvm.irbuilder.new_global_cell +#define MU_CI_UVM_IRBUILDER_NEW_FUNC ((MuCommInst)0x31e) /// MUAPIPARSER muname:@uvm.irbuilder.new_func +#define MU_CI_UVM_IRBUILDER_NEW_EXP_FUNC ((MuCommInst)0x31f) /// MUAPIPARSER muname:@uvm.irbuilder.new_exp_func +#define MU_CI_UVM_IRBUILDER_NEW_FUNC_VER ((MuCommInst)0x320) /// MUAPIPARSER muname:@uvm.irbuilder.new_func_ver +#define MU_CI_UVM_IRBUILDER_NEW_BB ((MuCommInst)0x321) /// MUAPIPARSER muname:@uvm.irbuilder.new_bb +#define MU_CI_UVM_IRBUILDER_NEW_DEST_CLAUSE ((MuCommInst)0x322) /// MUAPIPARSER muname:@uvm.irbuilder.new_dest_clause +#define MU_CI_UVM_IRBUILDER_NEW_EXC_CLAUSE ((MuCommInst)0x323) /// MUAPIPARSER muname:@uvm.irbuilder.new_exc_clause +#define MU_CI_UVM_IRBUILDER_NEW_KEEPALIVE_CLAUSE ((MuCommInst)0x324) /// MUAPIPARSER muname:@uvm.irbuilder.new_keepalive_clause +#define MU_CI_UVM_IRBUILDER_NEW_CSC_RET_WITH ((MuCommInst)0x325) /// MUAPIPARSER muname:@uvm.irbuilder.new_csc_ret_with +#define MU_CI_UVM_IRBUILDER_NEW_CSC_KILL_OLD ((MuCommInst)0x326) /// MUAPIPARSER muname:@uvm.irbuilder.new_csc_kill_old +#define MU_CI_UVM_IRBUILDER_NEW_NSC_PASS_VALUES ((MuCommInst)0x327) /// MUAPIPARSER muname:@uvm.irbuilder.new_nsc_pass_values +#define MU_CI_UVM_IRBUILDER_NEW_NSC_THROW_EXC ((MuCommInst)0x328) /// MUAPIPARSER muname:@uvm.irbuilder.new_nsc_throw_exc +#define MU_CI_UVM_IRBUILDER_NEW_BINOP ((MuCommInst)0x329) /// MUAPIPARSER muname:@uvm.irbuilder.new_binop +#define MU_CI_UVM_IRBUILDER_NEW_CMP ((MuCommInst)0x32a) /// MUAPIPARSER muname:@uvm.irbuilder.new_cmp +#define MU_CI_UVM_IRBUILDER_NEW_CONV ((MuCommInst)0x32b) /// MUAPIPARSER muname:@uvm.irbuilder.new_conv +#define MU_CI_UVM_IRBUILDER_NEW_SELECT ((MuCommInst)0x32c) /// MUAPIPARSER muname:@uvm.irbuilder.new_select +#define MU_CI_UVM_IRBUILDER_NEW_BRANCH ((MuCommInst)0x32d) /// MUAPIPARSER muname:@uvm.irbuilder.new_branch +#define MU_CI_UVM_IRBUILDER_NEW_BRANCH2 ((MuCommInst)0x32e) /// MUAPIPARSER muname:@uvm.irbuilder.new_branch2 +#define MU_CI_UVM_IRBUILDER_NEW_SWITCH ((MuCommInst)0x32f) /// MUAPIPARSER muname:@uvm.irbuilder.new_switch +#define MU_CI_UVM_IRBUILDER_NEW_CALL ((MuCommInst)0x330) /// MUAPIPARSER muname:@uvm.irbuilder.new_call +#define MU_CI_UVM_IRBUILDER_NEW_TAILCALL ((MuCommInst)0x331) /// MUAPIPARSER muname:@uvm.irbuilder.new_tailcall +#define MU_CI_UVM_IRBUILDER_NEW_RET ((MuCommInst)0x332) /// MUAPIPARSER muname:@uvm.irbuilder.new_ret +#define MU_CI_UVM_IRBUILDER_NEW_THROW ((MuCommInst)0x333) /// MUAPIPARSER muname:@uvm.irbuilder.new_throw +#define MU_CI_UVM_IRBUILDER_NEW_EXTRACTVALUE ((MuCommInst)0x334) /// MUAPIPARSER muname:@uvm.irbuilder.new_extractvalue +#define MU_CI_UVM_IRBUILDER_NEW_INSERTVALUE ((MuCommInst)0x335) /// MUAPIPARSER muname:@uvm.irbuilder.new_insertvalue +#define MU_CI_UVM_IRBUILDER_NEW_EXTRACTELEMENT ((MuCommInst)0x336) /// MUAPIPARSER muname:@uvm.irbuilder.new_extractelement +#define MU_CI_UVM_IRBUILDER_NEW_INSERTELEMENT ((MuCommInst)0x337) /// MUAPIPARSER muname:@uvm.irbuilder.new_insertelement +#define MU_CI_UVM_IRBUILDER_NEW_SHUFFLEVECTOR ((MuCommInst)0x338) /// MUAPIPARSER muname:@uvm.irbuilder.new_shufflevector +#define MU_CI_UVM_IRBUILDER_NEW_NEW ((MuCommInst)0x339) /// MUAPIPARSER muname:@uvm.irbuilder.new_new +#define MU_CI_UVM_IRBUILDER_NEW_NEWHYBRID ((MuCommInst)0x33a) /// MUAPIPARSER muname:@uvm.irbuilder.new_newhybrid +#define MU_CI_UVM_IRBUILDER_NEW_ALLOCA ((MuCommInst)0x33b) /// MUAPIPARSER muname:@uvm.irbuilder.new_alloca +#define MU_CI_UVM_IRBUILDER_NEW_ALLOCAHYBRID ((MuCommInst)0x33c) /// MUAPIPARSER muname:@uvm.irbuilder.new_allocahybrid +#define MU_CI_UVM_IRBUILDER_NEW_GETIREF ((MuCommInst)0x33d) /// MUAPIPARSER muname:@uvm.irbuilder.new_getiref +#define MU_CI_UVM_IRBUILDER_NEW_GETFIELDIREF ((MuCommInst)0x33e) /// MUAPIPARSER muname:@uvm.irbuilder.new_getfieldiref +#define MU_CI_UVM_IRBUILDER_NEW_GETELEMIREF ((MuCommInst)0x33f) /// MUAPIPARSER muname:@uvm.irbuilder.new_getelemiref +#define MU_CI_UVM_IRBUILDER_NEW_SHIFTIREF ((MuCommInst)0x340) /// MUAPIPARSER muname:@uvm.irbuilder.new_shiftiref +#define MU_CI_UVM_IRBUILDER_NEW_GETVARPARTIREF ((MuCommInst)0x341) /// MUAPIPARSER muname:@uvm.irbuilder.new_getvarpartiref +#define MU_CI_UVM_IRBUILDER_NEW_LOAD ((MuCommInst)0x342) /// MUAPIPARSER muname:@uvm.irbuilder.new_load +#define MU_CI_UVM_IRBUILDER_NEW_STORE ((MuCommInst)0x343) /// MUAPIPARSER muname:@uvm.irbuilder.new_store +#define MU_CI_UVM_IRBUILDER_NEW_CMPXCHG ((MuCommInst)0x344) /// MUAPIPARSER muname:@uvm.irbuilder.new_cmpxchg +#define MU_CI_UVM_IRBUILDER_NEW_ATOMICRMW ((MuCommInst)0x345) /// MUAPIPARSER muname:@uvm.irbuilder.new_atomicrmw +#define MU_CI_UVM_IRBUILDER_NEW_FENCE ((MuCommInst)0x346) /// MUAPIPARSER muname:@uvm.irbuilder.new_fence +#define MU_CI_UVM_IRBUILDER_NEW_TRAP ((MuCommInst)0x347) /// MUAPIPARSER muname:@uvm.irbuilder.new_trap +#define MU_CI_UVM_IRBUILDER_NEW_WATCHPOINT ((MuCommInst)0x348) /// MUAPIPARSER muname:@uvm.irbuilder.new_watchpoint +#define MU_CI_UVM_IRBUILDER_NEW_WPBRANCH ((MuCommInst)0x349) /// MUAPIPARSER muname:@uvm.irbuilder.new_wpbranch +#define MU_CI_UVM_IRBUILDER_NEW_CCALL ((MuCommInst)0x34a) /// MUAPIPARSER muname:@uvm.irbuilder.new_ccall +#define MU_CI_UVM_IRBUILDER_NEW_NEWTHREAD ((MuCommInst)0x34b) /// MUAPIPARSER muname:@uvm.irbuilder.new_newthread +#define MU_CI_UVM_IRBUILDER_NEW_SWAPSTACK ((MuCommInst)0x34c) /// MUAPIPARSER muname:@uvm.irbuilder.new_swapstack +#define MU_CI_UVM_IRBUILDER_NEW_COMMINST ((MuCommInst)0x34d) /// MUAPIPARSER muname:@uvm.irbuilder.new_comminst /// GEN:END:COMMINSTS #ifdef __cplusplus diff --git a/scripts/muapi-irbuilder-to-comminsts.py b/scripts/muapi-irbuilder-to-comminsts.py index 9626a7d649031fbc738052b2a79f242f5cdb0175..2dbf348adb04a0bfb60fb5bf9b0d23de393c29c4 100644 --- a/scripts/muapi-irbuilder-to-comminsts.py +++ b/scripts/muapi-irbuilder-to-comminsts.py @@ -50,8 +50,8 @@ _type_map = { def to_mu_ty(cty): if cty.endswith("*"): return "iref<{}>".format(to_mu_ty(cty[:-1])) - elif cty.startswith("Mu") and cty.endswith("Node"): - return "irnoderef" + elif cty.startswith("Mu") and (cty.endswith("Node") or cty.endswith("Clause")): + return "int<32>" elif cty in _type_map: return _type_map[cty] else: @@ -59,17 +59,13 @@ def to_mu_ty(cty): def get_comminst_defs(ast): muctx_methods = [s["methods"] for s in ast["structs"] - if s["name"] == "MuCtx"][0] - - index_new_bundle = 0 - while muctx_methods[index_new_bundle]["name"] != "new_bundle": - index_new_bundle += 1 + if s["name"] == "MuIRBuilder"][0] next_id = start_id_comminst lines = ["", "::", ""] # start reStructuredText block - for i in range(index_new_bundle, len(muctx_methods)): + for i in range(len(muctx_methods)): meth = muctx_methods[i] name = meth["name"] params = meth["params"] diff --git a/scripts/muapiparser.py b/scripts/muapiparser.py index 8ea509958ae7b4392e35c749d6d8a9792046a7f2..6cf480590e08b68bda7d99312644d6db8a2fc138 100644 --- a/scripts/muapiparser.py +++ b/scripts/muapiparser.py @@ -68,7 +68,7 @@ def extract_enums(text, typename, pattern): "defs": defs, } -_top_level_structs = ["MuVM", "MuCtx"] +_top_level_structs = ["MuVM", "MuCtx", "MuIRBuilder"] _enums = [(typename, re.compile(regex)) for typename, regex in [ ("MuTrapHandlerResult", r'^MU_(THREAD|REBIND)'), ("MuDestKind", r'^MU_DEST_'),