def get_l2_fn_from_info(info, imm_dict): is_const = ild_codegen.is_constant_l2_func(info.imm_nt_seq, imm_dict) if is_const: l2_fn = ild_codegen.get_l2_fn(info.imm_nt_seq, _imm_token, [], None, _imm0_fn, True) else: l2_fn = ild_codegen.get_l2_fn(info.imm_nt_seq, _imm_token, info.eosz_nt_seq, ild_eosz.get_target_opname(), _imm0_fn, False) return l2_fn
def get_l2_fn_from_info(info, disp_dict): """ Return L2 function name defined by the info. disp_dict is a dictionary from [BR]DISP NT name to codegen.array of the corresponding NT. """ is_const = ild_codegen.is_constant_l2_func(info.disp_nt_seq, disp_dict) if len(info.disp_nt_seq) == 0: return _empty_fn disp_nt = disp_dict[info.disp_nt_seq[0]] disp_token = disp_nt.get_target_opname() if ild_eosz.get_target_opname() in disp_nt.get_arg_names(): argname = ild_eosz.get_target_opname() arg_seq = info.eosz_nt_seq else: argname = ild_easz.get_target_opname() arg_seq = info.easz_nt_seq if is_const: arg_seq = [] arg_name = None l2_fn = ild_codegen.get_l2_fn(info.disp_nt_seq, disp_token, arg_seq, argname, _empty_fn, is_const) return l2_fn