{"ground_truth": ["", "tree", "m88k_build_va_list", "(", ")", "{", "tree", "field_reg", ",", "field_stk", ",", "field_arg", ",", "int_ptr_type_node", ",", "record", ";", "int_ptr_type_node", "=", "build_pointer_type", "(", "integer_type_node", ")", ";", "record", "=", "make_node", "(", "RECORD_TYPE", ")", ";", "field_arg", "=", "build_decl", "(", "FIELD_DECL", ",", "get_identifier", "(", "\"__va_arg\"", ")", ",", "integer_type_node", ")", ";", "field_stk", "=", "build_decl", "(", "FIELD_DECL", ",", "get_identifier", "(", "\"__va_stk\"", ")", ",", "int_ptr_type_node", ")", ";", "field_reg", "=", "build_decl", "(", "FIELD_DECL", ",", "get_identifier", "(", "\"__va_reg\"", ")", ",", "int_ptr_type_node", ")", ";", "DECL_FIELD_CONTEXT", "(", "field_arg", ")", "=", "record", ";", "DECL_FIELD_CONTEXT", "(", "field_stk", ")", "=", "record", ";", "DECL_FIELD_CONTEXT", "(", "field_reg", ")", "=", "record", ";", "TYPE_FIELDS", "(", "record", ")", "=", "field_arg", ";", "TREE_CHAIN", "(", "field_arg", ")", "=", "field_stk", ";", "TREE_CHAIN", "(", "field_stk", ")", "=", "field_reg", ";", "layout_type", "(", "record", ")", ";", "return", "record", ";", "}", ""], "natrual_language": ["Define", "the", "`", "__builtin_va_list", "'", "type", "for", "the", "ABI", "."], "TS_V_token": ["m88k", "\"__va_arg\"", "\"__va_stk\"", "\"__va_reg\""], "File": "m88k", "Func": "m88k_build_va_list", "Target": "m88k", "Target_Clf": "MPU", "Compiler_Type": "GCC", "Idx": 31947, "Length": 123} {"ground_truth": ["", "struct", "rtx_def", "*", "m88k_builtin_saveregs", "(", ")", "{", "rtx", "addr", ";", "tree", "fntype", "=", "TREE_TYPE", "(", "current_function_decl", ")", ";", "int", "argadj", "=", "(", "(", "!", "(", "TYPE_ARG_TYPES", "(", "fntype", ")", "!=", "0", "&&", "(", "TREE_VALUE", "(", "tree_last", "(", "TYPE_ARG_TYPES", "(", "fntype", ")", ")", ")", "!=", "void_type_node", ")", ")", ")", "?", "-", "UNITS_PER_WORD", ":", "0", ")", "+", "UNITS_PER_WORD", "-", "1", ";", "int", "fixed", ";", "variable_args_p", "=", "1", ";", "fixed", "=", "0", ";", "if", "(", "GET_CODE", "(", "current_function_arg_offset_rtx", ")", "==", "CONST_INT", ")", "fixed", "=", "(", "(", "INTVAL", "(", "current_function_arg_offset_rtx", ")", "+", "argadj", ")", "/", "UNITS_PER_WORD", ")", ";", "addr", "=", "assign_stack_local", "(", "BLKmode", ",", "8", "*", "UNITS_PER_WORD", ",", "-", "1", ")", ";", "set_mem_alias_set", "(", "addr", ",", "get_varargs_alias_set", "(", ")", ")", ";", "RTX_UNCHANGING_P", "(", "addr", ")", "=", "1", ";", "RTX_UNCHANGING_P", "(", "XEXP", "(", "addr", ",", "0", ")", ")", "=", "1", ";", "if", "(", "fixed", "<", "8", ")", "move_block_from_reg", "(", "2", "+", "fixed", ",", "adjust_address", "(", "addr", ",", "Pmode", ",", "fixed", "*", "UNITS_PER_WORD", ")", ",", "8", "-", "fixed", ",", "UNITS_PER_WORD", "*", "(", "8", "-", "fixed", ")", ")", ";", "return", "XEXP", "(", "addr", ",", "0", ")", ";", "}", ""], "natrual_language": ["Do", "what", "is", "necessary", "for", "`", "va_start", "'", ".", "We", "look", "at", "the", "current", "function", "to", "determine", "if", "stdargs", "or", "varargs", "is", "used", "and", "spill", "as", "necessary", ".", "We", "return", "a", "pointer", "to", "the", "spill", "area", "."], "TS_V_token": ["m88k", "0", "0", "1", "1", "0", "8", "1", "1", "0", "1", "8", "2", "8", "8", "0"], "File": "m88k", "Func": "m88k_builtin_saveregs", "Target": "m88k", "Target_Clf": "MPU", "Compiler_Type": "GCC", "Idx": 31948, "Length": 181} {"ground_truth": ["", "void", "m88k_layout_frame", "(", ")", "{", "int", "regno", ",", "sp_size", ";", "frame_laid_out", "++", ";", "memset", "(", "(", "char", "*", ")", "&", "save_regs", "[", "0", "]", ",", "0", ",", "sizeof", "(", "save_regs", ")", ")", ";", "sp_size", "=", "nregs", "=", "nxregs", "=", "0", ";", "frame_size", "=", "get_frame_size", "(", ")", ";", "if", "(", "current_function_profile", ")", "save_regs", "[", "1", "]", "=", "1", ";", "if", "(", "write_symbols", "!=", "NO_DEBUG", "&&", "!", "TARGET_OCS_FRAME_POSITION", ")", "save_regs", "[", "1", "]", "=", "1", ";", "if", "(", "regs_ever_live", "[", "1", "]", "||", "frame_pointer_needed", ")", "{", "save_regs", "[", "1", "]", "=", "1", ";", "sp_size", "+=", "REG_PARM_STACK_SPACE", "(", "0", ")", ";", "}", "if", "(", "flag_pic", "&&", "current_function_uses_pic_offset_table", ")", "{", "save_regs", "[", "PIC_OFFSET_TABLE_REGNUM", "]", "=", "1", ";", "nregs", "++", ";", "}", "if", "(", "frame_pointer_needed", ")", "save_regs", "[", "FRAME_POINTER_REGNUM", "]", "=", "save_regs", "[", "1", "]", "=", "1", ";", "else", "if", "(", "regs_ever_live", "[", "FRAME_POINTER_REGNUM", "]", ")", "save_regs", "[", "FRAME_POINTER_REGNUM", "]", "=", "1", ";", "for", "(", "regno", "=", "FIRST_EXTENDED_REGISTER", "+", "1", ";", "regno", "<", "FIRST_PSEUDO_REGISTER", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "{", "save_regs", "[", "regno", "]", "=", "1", ";", "nxregs", "++", ";", "}", "for", "(", "regno", "=", "2", ";", "regno", "<", "FRAME_POINTER_REGNUM", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "{", "save_regs", "[", "regno", "]", "=", "1", ";", "nregs", "++", ";", "}", "if", "(", "nregs", ">=", "2", "&&", "save_regs", "[", "1", "]", "&&", "!", "save_regs", "[", "FRAME_POINTER_REGNUM", "]", ")", "sp_size", "+=", "4", ";", "nregs", "+=", "save_regs", "[", "1", "]", "+", "save_regs", "[", "FRAME_POINTER_REGNUM", "]", ";", "if", "(", "nxregs", ">", "0", "&&", "(", "nregs", "&", "1", ")", "!=", "0", ")", "sp_size", "+=", "4", ";", "sp_size", "+=", "4", "*", "nregs", ";", "sp_size", "+=", "8", "*", "nxregs", ";", "sp_size", "+=", "current_function_outgoing_args_size", ";", "if", "(", "frame_pointer_needed", "||", "sp_size", ")", "m88k_fp_offset", "=", "ROUND_CALL_BLOCK_SIZE", "(", "sp_size", "-", "STARTING_FRAME_OFFSET", ")", ";", "else", "m88k_fp_offset", "=", "-", "STARTING_FRAME_OFFSET", ";", "m88k_stack_size", "=", "m88k_fp_offset", "+", "STARTING_FRAME_OFFSET", ";", "{", "int", "need", "=", "(", "(", "m88k_stack_size", "?", "STACK_UNIT_BOUNDARY", "-", "STARTING_FRAME_OFFSET", ":", "0", ")", "-", "(", "frame_size", "%", "STACK_UNIT_BOUNDARY", ")", ")", ";", "if", "(", "need", "<", "0", ")", "need", "+=", "STACK_UNIT_BOUNDARY", ";", "m88k_stack_size", "=", "ROUND_CALL_BLOCK_SIZE", "(", "m88k_stack_size", "+", "frame_size", "+", "need", "+", "current_function_pretend_args_size", ")", ";", "}", "}", ""], "natrual_language": ["Establish", "the", "position", "of", "the", "FP", "relative", "to", "the", "SP", ".", "This", "is", "done", "either", "during", "output_function_prologue", "(", ")", "or", "by", "INITIAL_ELIMINATION_OFFSET", "."], "TS_V_token": ["m88k", "0", "0", "0", "1", "1", "1", "1", "1", "1", "1", "0", "1", "1", "1", "1", "1", "1", "2", "1", "2", "1", "4", "1", "0", "1", "0", "4", "4", "8", "0", "0"], "File": "m88k", "Func": "m88k_layout_frame", "Target": "m88k", "Target_Clf": "MPU", "Compiler_Type": "GCC", "Idx": 31949, "Length": 367} {"ground_truth": ["", "int", "null_prologue", "(", ")", "{", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "if", "(", "!", "frame_laid_out", ")", "m88k_layout_frame", "(", ")", ";", "return", "(", "!", "frame_pointer_needed", "&&", "nregs", "==", "0", "&&", "nxregs", "==", "0", "&&", "m88k_stack_size", "==", "0", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "is", "known", "to", "have", "a", "null", "prologue", "."], "TS_V_token": ["m88k", "0", "0", "0", "0"], "File": "m88k", "Func": "null_prologue", "Target": "m88k", "Target_Clf": "MPU", "Compiler_Type": "GCC", "Idx": 31950, "Length": 41} {"ground_truth": ["", "static", "int", "uses_arg_area_p", "(", ")", "{", "register", "tree", "parm", ";", "if", "(", "current_function_decl", "==", "0", "||", "current_function_varargs", "||", "variable_args_p", ")", "return", "1", ";", "for", "(", "parm", "=", "DECL_ARGUMENTS", "(", "current_function_decl", ")", ";", "parm", ";", "parm", "=", "TREE_CHAIN", "(", "parm", ")", ")", "{", "if", "(", "DECL_RTL", "(", "parm", ")", "==", "0", "||", "GET_CODE", "(", "DECL_RTL", "(", "parm", ")", ")", "==", "MEM", ")", "return", "1", ";", "if", "(", "DECL_INCOMING_RTL", "(", "parm", ")", "==", "0", "||", "GET_CODE", "(", "DECL_INCOMING_RTL", "(", "parm", ")", ")", "==", "MEM", ")", "return", "1", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Determine", "if", "the", "current", "function", "has", "any", "references", "to", "the", "arg", "pointer", ".", "This", "is", "done", "indirectly", "by", "examining", "the", "DECL_ARGUMENTS", "'", "DECL_RTL", ".", "It", "is", "OK", "to", "return", "TRUE", "if", "there", "are", "no", "references", ",", "but", "FALSE", "must", "be", "correct", "."], "TS_V_token": ["m88k", "0", "1", "0", "1", "0", "1", "0"], "File": "m88k", "Func": "uses_arg_area_p", "Target": "m88k", "Target_Clf": "MPU", "Compiler_Type": "GCC", "Idx": 31951, "Length": 91}