{"ground_truth": ["", "static", "void", "d30v_add_gc_roots", "(", ")", "{", "ggc_add_rtx_root", "(", "&", "d30v_compare_op0", ",", "1", ")", ";", "ggc_add_rtx_root", "(", "&", "d30v_compare_op1", ",", "1", ")", ";", "}", ""], "natrual_language": ["Called", "to", "register", "all", "of", "our", "global", "variables", "with", "the", "garbage", "collector", "."], "TS_V_token": ["d30v", "1", "1"], "File": "d30v", "Func": "d30v_add_gc_roots", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40331, "Length": 23}
{"ground_truth": ["", "tree", "d30v_build_va_list", "(", ")", "{", "tree", "f_arg_ptr", ",", "f_arg_num", ",", "record", ",", "type_decl", ";", "tree", "int_type_node", ";", "record", "=", "make_lang_type", "(", "RECORD_TYPE", ")", ";", "type_decl", "=", "build_decl", "(", "TYPE_DECL", ",", "get_identifier", "(", "\"__va_list_tag\"", ")", ",", "record", ")", ";", "int_type_node", "=", "make_signed_type", "(", "INT_TYPE_SIZE", ")", ";", "f_arg_ptr", "=", "build_decl", "(", "FIELD_DECL", ",", "get_identifier", "(", "\"__va_arg_ptr\"", ")", ",", "ptr_type_node", ")", ";", "f_arg_num", "=", "build_decl", "(", "FIELD_DECL", ",", "get_identifier", "(", "\"__va_arg_num\"", ")", ",", "int_type_node", ")", ";", "DECL_FIELD_CONTEXT", "(", "f_arg_ptr", ")", "=", "record", ";", "DECL_FIELD_CONTEXT", "(", "f_arg_num", ")", "=", "record", ";", "TREE_CHAIN", "(", "record", ")", "=", "type_decl", ";", "TYPE_NAME", "(", "record", ")", "=", "type_decl", ";", "TYPE_FIELDS", "(", "record", ")", "=", "f_arg_ptr", ";", "TREE_CHAIN", "(", "f_arg_ptr", ")", "=", "f_arg_num", ";", "layout_type", "(", "record", ")", ";", "return", "build_array_type", "(", "record", ",", "build_index_type", "(", "size_zero_node", ")", ")", ";", "}", ""], "natrual_language": ["Create", "the", "va_list", "data", "type", "."], "TS_V_token": ["d30v", "\"__va_list_tag\"", "\"__va_arg_ptr\"", "\"__va_arg_num\""], "File": "d30v", "Func": "d30v_build_va_list", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40332, "Length": 132}
{"ground_truth": ["", "rtx", "d30v_expand_builtin_saveregs", "(", ")", "{", "int", "offset", "=", "UNITS_PER_WORD", "*", "(", "GPR_ARG_LAST", "+", "1", "-", "GPR_ARG_FIRST", ")", ";", "if", "(", "TARGET_DEBUG_ARG", ")", "fprintf", "(", "stderr", ",", "\"expand_builtin_saveregs: offset from ap = %d\\n\"", ",", "offset", ")", ";", "return", "gen_rtx", "(", "PLUS", ",", "Pmode", ",", "virtual_incoming_args_rtx", ",", "GEN_INT", "(", "-", "offset", ")", ")", ";", "}", ""], "natrual_language": ["If", "defined", ",", "is", "a", "C", "expression", "that", "produces", "the", "machine-specific", "code", "for", "a", "call", "to", "`", "__builtin_saveregs", "'", ".", "This", "code", "will", "be", "moved", "to", "the", "very", "beginning", "of", "the", "function", ",", "before", "any", "parameter", "access", "are", "made", ".", "The", "return", "value", "of", "this", "function", "should", "be", "an", "RTX", "that", "contains", "the", "value", "to", "use", "as", "the", "return", "of", "`", "__builtin_saveregs", "'", ".", "If", "this", "macro", "is", "not", "defined", ",", "the", "compiler", "will", "output", "an", "ordinary", "call", "to", "the", "library", "function", "`", "__builtin_saveregs", "'", "."], "TS_V_token": ["d30v", "1", "\"expand_builtin_saveregs: offset from ap = %d\\n\""], "File": "d30v", "Func": "d30v_expand_builtin_saveregs", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40333, "Length": 48}
{"ground_truth": ["", "void", "d30v_expand_epilogue", "(", ")", "{", "rtx", "sp", "=", "stack_pointer_rtx", ";", "d30v_stack_t", "*", "info", "=", "d30v_stack_info", "(", ")", ";", "int", "i", ";", "rtx", "mem_di", "=", "NULL_RTX", ";", "rtx", "mem_si", "=", "NULL_RTX", ";", "rtx", "post_inc", ";", "int", "extra_stack", ";", "emit_insn", "(", "gen_blockage", "(", ")", ")", ";", "if", "(", "frame_pointer_needed", ")", "emit_move_insn", "(", "sp", ",", "frame_pointer_rtx", ")", ";", "if", "(", "info", "->", "save_offset", ")", "emit_insn", "(", "gen_addsi3", "(", "sp", ",", "sp", ",", "GEN_INT", "(", "info", "->", "save_offset", ")", ")", ")", ";", "post_inc", "=", "gen_rtx", "(", "POST_INC", ",", "Pmode", ",", "sp", ")", ";", "mem_di", "=", "gen_rtx", "(", "MEM", ",", "DImode", ",", "post_inc", ")", ";", "mem_si", "=", "gen_rtx", "(", "MEM", ",", "SImode", ",", "post_inc", ")", ";", "for", "(", "i", "=", "ACCUM_FIRST", ";", "i", "<=", "ACCUM_LAST", ";", "i", "++", ")", "if", "(", "info", "->", "save_p", "[", "i", "]", ")", "{", "rtx", "acc_tmp", "=", "gen_rtx", "(", "REG", ",", "DImode", ",", "GPR_ATMP_FIRST", ")", ";", "emit_insn", "(", "gen_movdi", "(", "acc_tmp", ",", "mem_di", ")", ")", ";", "emit_insn", "(", "gen_movdi", "(", "gen_rtx", "(", "REG", ",", "DImode", ",", "i", ")", ",", "acc_tmp", ")", ")", ";", "}", "for", "(", "i", "=", "GPR_FIRST", ";", "i", "<=", "GPR_LAST", ";", "i", "+=", "2", ")", "if", "(", "info", "->", "save_p", "[", "i", "]", "==", "2", ")", "emit_insn", "(", "gen_movdi", "(", "gen_rtx", "(", "REG", ",", "DImode", ",", "i", ")", ",", "mem_di", ")", ")", ";", "extra_stack", "=", "0", ";", "for", "(", "i", "=", "GPR_FIRST", ";", "i", "<=", "GPR_LAST", ";", "i", "++", ")", "if", "(", "info", "->", "save_p", "[", "i", "]", "==", "1", ")", "{", "if", "(", "cfun", "->", "machine", "->", "eh_epilogue_sp_ofs", "&&", "i", "==", "GPR_LINK", ")", "extra_stack", "=", "4", ";", "else", "{", "if", "(", "extra_stack", ")", "{", "emit_insn", "(", "gen_addsi3", "(", "sp", ",", "sp", ",", "GEN_INT", "(", "extra_stack", ")", ")", ")", ";", "extra_stack", "=", "0", ";", "}", "emit_insn", "(", "gen_movsi", "(", "gen_rtx", "(", "REG", ",", "SImode", ",", "i", ")", ",", "mem_si", ")", ")", ";", "}", "}", "if", "(", "(", "info", "->", "memrefs_1word", "&", "1", ")", "!=", "0", ")", "extra_stack", "+=", "UNITS_PER_WORD", ";", "extra_stack", "+=", "current_function_pretend_args_size", "+", "info", "->", "varargs_size", ";", "if", "(", "extra_stack", ")", "{", "if", "(", "cfun", "->", "machine", "->", "eh_epilogue_sp_ofs", ")", "emit_insn", "(", "gen_addsi3", "(", "cfun", "->", "machine", "->", "eh_epilogue_sp_ofs", ",", "cfun", "->", "machine", "->", "eh_epilogue_sp_ofs", ",", "GEN_INT", "(", "extra_stack", ")", ")", ")", ";", "else", "emit_insn", "(", "gen_addsi3", "(", "sp", ",", "sp", ",", "GEN_INT", "(", "extra_stack", ")", ")", ")", ";", "}", "if", "(", "cfun", "->", "machine", "->", "eh_epilogue_sp_ofs", ")", "emit_insn", "(", "gen_addsi3", "(", "sp", ",", "sp", ",", "cfun", "->", "machine", "->", "eh_epilogue_sp_ofs", ")", ")", ";", "emit_jump_insn", "(", "gen_rtx_RETURN", "(", "VOIDmode", ")", ")", ";", "}", ""], "natrual_language": ["Called", "after", "register", "allocation", "to", "add", "any", "instructions", "needed", "for", "the", "epilogue", ".", "Using", "an", "epilogue", "insn", "is", "favored", "compared", "to", "putting", "all", "of", "the", "instructions", "in", "output_function_prologue", "(", ")", ",", "since", "it", "allows", "the", "scheduler", "to", "intermix", "instructions", "with", "the", "saves", "of", "the", "caller", "saved", "registers", ".", "In", "some", "cases", ",", "it", "might", "be", "necessary", "to", "emit", "a", "barrier", "instruction", "as", "the", "last", "insn", "to", "prevent", "such", "scheduling", "."], "TS_V_token": ["d30v", "2", "2", "0", "1", "4", "0", "1", "0"], "File": "d30v", "Func": "d30v_expand_epilogue", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40334, "Length": 417}
{"ground_truth": ["", "void", "d30v_expand_prologue", "(", ")", "{", "rtx", "sp", "=", "stack_pointer_rtx", ";", "d30v_stack_t", "*", "info", "=", "d30v_stack_info", "(", ")", ";", "int", "i", ";", "rtx", "mem_di", "=", "NULL_RTX", ";", "rtx", "mem_si", "=", "NULL_RTX", ";", "int", "num_memrefs", "=", "(", "info", "->", "memrefs_2words", "+", "info", "->", "memrefs_1word", "+", "info", "->", "memrefs_varargs", ")", ";", "if", "(", "TARGET_DEBUG_STACK", ")", "debug_stack_info", "(", "info", ")", ";", "if", "(", "info", "->", "total_size", ")", "emit_insn", "(", "gen_addsi3", "(", "sp", ",", "sp", ",", "GEN_INT", "(", "-", "info", "->", "total_size", ")", ")", ")", ";", "if", "(", "num_memrefs", ">", "1", ")", "{", "rtx", "save_tmp", "=", "gen_rtx", "(", "REG", ",", "Pmode", ",", "GPR_STACK_TMP", ")", ";", "rtx", "post_inc", "=", "gen_rtx", "(", "POST_INC", ",", "Pmode", ",", "save_tmp", ")", ";", "mem_di", "=", "gen_rtx", "(", "MEM", ",", "DImode", ",", "post_inc", ")", ";", "mem_si", "=", "gen_rtx", "(", "MEM", ",", "SImode", ",", "post_inc", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "save_tmp", ",", "sp", ",", "GEN_INT", "(", "info", "->", "save_offset", ")", ")", ")", ";", "}", "else", "if", "(", "num_memrefs", "==", "1", ")", "{", "rtx", "addr", "=", "plus_constant", "(", "sp", ",", "info", "->", "save_offset", ")", ";", "mem_di", "=", "gen_rtx", "(", "MEM", ",", "DImode", ",", "addr", ")", ";", "mem_si", "=", "gen_rtx", "(", "MEM", ",", "SImode", ",", "addr", ")", ";", "}", "for", "(", "i", "=", "ACCUM_FIRST", ";", "i", "<=", "ACCUM_LAST", ";", "i", "++", ")", "if", "(", "info", "->", "save_p", "[", "i", "]", ")", "{", "rtx", "acc_tmp", "=", "gen_rtx", "(", "REG", ",", "DImode", ",", "GPR_ATMP_FIRST", ")", ";", "emit_insn", "(", "gen_movdi", "(", "acc_tmp", ",", "gen_rtx", "(", "REG", ",", "DImode", ",", "i", ")", ")", ")", ";", "emit_insn", "(", "gen_movdi", "(", "mem_di", ",", "acc_tmp", ")", ")", ";", "}", "for", "(", "i", "=", "GPR_FIRST", ";", "i", "<=", "GPR_LAST", ";", "i", "+=", "2", ")", "if", "(", "info", "->", "save_p", "[", "i", "]", "==", "2", ")", "emit_insn", "(", "gen_movdi", "(", "mem_di", ",", "gen_rtx", "(", "REG", ",", "DImode", ",", "i", ")", ")", ")", ";", "for", "(", "i", "=", "GPR_FIRST", ";", "i", "<=", "GPR_LAST", ";", "i", "++", ")", "if", "(", "info", "->", "save_p", "[", "i", "]", "==", "1", ")", "emit_insn", "(", "gen_movsi", "(", "mem_si", ",", "gen_rtx", "(", "REG", ",", "SImode", ",", "i", ")", ")", ")", ";", "if", "(", "info", "->", "varargs_p", ")", "{", "if", "(", "(", "info", "->", "memrefs_1word", "&", "1", ")", "!=", "0", ")", "{", "rtx", "save_tmp", "=", "XEXP", "(", "XEXP", "(", "mem_si", ",", "0", ")", ",", "0", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "save_tmp", ",", "save_tmp", ",", "GEN_INT", "(", "UNITS_PER_WORD", ")", ")", ")", ";", "}", "for", "(", "i", "=", "GPR_ARG_FIRST", ";", "i", "<=", "GPR_ARG_LAST", ";", "i", "+=", "2", ")", "emit_insn", "(", "gen_movdi", "(", "mem_di", ",", "gen_rtx", "(", "REG", ",", "DImode", ",", "i", ")", ")", ")", ";", "}", "if", "(", "frame_pointer_needed", ")", "emit_move_insn", "(", "frame_pointer_rtx", ",", "sp", ")", ";", "emit_insn", "(", "gen_blockage", "(", ")", ")", ";", "}", ""], "natrual_language": ["Called", "after", "register", "allocation", "to", "add", "any", "instructions", "needed", "for", "the", "prologue", ".", "Using", "a", "prologue", "insn", "is", "favored", "compared", "to", "putting", "all", "of", "the", "instructions", "in", "output_function_prologue", "(", ")", ",", "since", "it", "allows", "the", "scheduler", "to", "intermix", "instructions", "with", "the", "saves", "of", "the", "caller", "saved", "registers", ".", "In", "some", "cases", ",", "it", "might", "be", "necessary", "to", "emit", "a", "barrier", "instruction", "as", "the", "last", "insn", "to", "prevent", "such", "scheduling", "."], "TS_V_token": ["d30v", "1", "1", "2", "2", "1", "1", "0", "0", "0", "2"], "File": "d30v", "Func": "d30v_expand_prologue", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40335, "Length": 443}
{"ground_truth": ["", "void", "d30v_init_expanders", "(", ")", "{", "init_machine_status", "=", "d30v_init_machine_status", ";", "mark_machine_status", "=", "d30v_mark_machine_status", ";", "free_machine_status", "=", "d30v_free_machine_status", ";", "}", ""], "natrual_language": ["Do", "anything", "needed", "before", "RTL", "is", "emitted", "for", "each", "function", "."], "TS_V_token": ["d30v"], "File": "d30v", "Func": "d30v_init_expanders", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40336, "Length": 18}
{"ground_truth": ["", "static", "int", "d30v_issue_rate", "(", ")", "{", "return", "2", ";", "}", ""], "natrual_language": ["Function", "which", "returns", "the", "number", "of", "insns", "that", "can", "be", "scheduled", "in", "the", "same", "machine", "cycle", ".", "This", "must", "be", "constant", "over", "an", "entire", "compilation", ".", "The", "default", "is", "1", "."], "TS_V_token": ["d30v", "2"], "File": "d30v", "Func": "d30v_issue_rate", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40337, "Length": 10}
{"ground_truth": ["", "int", "d30v_trampoline_size", "(", ")", "{", "return", "16", ";", "}", ""], "natrual_language": ["A", "C", "expression", "for", "the", "size", "in", "bytes", "of", "the", "trampoline", ",", "as", "an", "integer", "."], "TS_V_token": ["d30v", "16"], "File": "d30v", "Func": "d30v_trampoline_size", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40338, "Length": 9}
{"ground_truth": ["", "int", "direct_return", "(", ")", "{", "if", "(", "reload_completed", ")", "{", "d30v_stack_t", "*", "info", "=", "d30v_stack_info", "(", ")", ";", "if", "(", "info", "->", "total_size", "==", "0", ")", "return", "1", ";", "if", "(", "info", "->", "total_size", "==", "info", "->", "vars_size", "&&", "IN_RANGE_P", "(", "info", "->", "total_size", ",", "1", ",", "31", ")", ")", "return", "1", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "this", "function", "is", "known", "to", "have", "a", "null", "epilogue", "."], "TS_V_token": ["d30v", "0", "1", "1", "31", "1", "0"], "File": "d30v", "Func": "direct_return", "Target": "d30v", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 40339, "Length": 58}