{"ground_truth": ["", "virtual", "unsigned", "int", "execute", "(", "function", "*", ")", "{", "return", "rest_of_insert_bti", "(", ")", ";", "}", ""], "natrual_language": ["Main", "entry", "point", "for", "this", "pass", "."], "TS_V_token": ["arm"], "File": "aarch-bti-insert", "Func": "execute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44343, "Length": 15}
{"ground_truth": ["", "static", "unsigned", "int", "rest_of_insert_bti", "(", "void", ")", "{", "timevar_push", "(", "TV_MACH_DEP", ")", ";", "rtx", "bti_insn", ";", "rtx_insn", "*", "insn", ";", "basic_block", "bb", ";", "bb", "=", "0", ";", "FOR_EACH_BB_FN", "(", "bb", ",", "cfun", ")", "{", "for", "(", "insn", "=", "BB_HEAD", "(", "bb", ")", ";", "insn", "!=", "NEXT_INSN", "(", "BB_END", "(", "bb", ")", ")", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "{", "if", "(", "LABEL_P", "(", "insn", ")", "&&", "(", "LABEL_PRESERVE_P", "(", "insn", ")", "||", "bb", "->", "flags", "&", "BB_NON_LOCAL_GOTO_TARGET", ")", ")", "{", "bti_insn", "=", "aarch_gen_bti_j", "(", ")", ";", "emit_insn_after", "(", "bti_insn", ",", "insn", ")", ";", "continue", ";", "}", "if", "(", "JUMP_P", "(", "insn", ")", ")", "{", "rtx_jump_table_data", "*", "table", ";", "if", "(", "tablejump_p", "(", "insn", ",", "NULL", ",", "&", "table", ")", ")", "{", "rtvec", "vec", "=", "table", "->", "get_labels", "(", ")", ";", "int", "j", ";", "rtx_insn", "*", "label", ";", "for", "(", "j", "=", "GET_NUM_ELEM", "(", "vec", ")", "-", "1", ";", "j", ">=", "0", ";", "--", "j", ")", "{", "label", "=", "as_a", "<", "rtx_insn", "*", ">", "(", "XEXP", "(", "RTVEC_ELT", "(", "vec", ",", "j", ")", ",", "0", ")", ")", ";", "rtx_insn", "*", "next", "=", "next_nonnote_nondebug_insn", "(", "label", ")", ";", "if", "(", "aarch_bti_j_insn_p", "(", "next", ")", ")", "continue", ";", "bti_insn", "=", "aarch_gen_bti_j", "(", ")", ";", "emit_insn_after", "(", "bti_insn", ",", "label", ")", ";", "}", "}", "}", "if", "(", "CALL_P", "(", "insn", ")", "&&", "(", "find_reg_note", "(", "insn", ",", "REG_SETJMP", ",", "NULL", ")", ")", ")", "{", "bti_insn", "=", "aarch_gen_bti_j", "(", ")", ";", "emit_insn_after", "(", "bti_insn", ",", "insn", ")", ";", "continue", ";", "}", "}", "}", "if", "(", "!", "cgraph_node", "::", "get", "(", "cfun", "->", "decl", ")", "->", "only_called_directly_p", "(", ")", ")", "{", "bb", "=", "ENTRY_BLOCK_PTR_FOR_FN", "(", "cfun", ")", "->", "next_bb", ";", "insn", "=", "BB_HEAD", "(", "bb", ")", ";", "if", "(", "!", "aarch_pac_insn_p", "(", "get_first_nonnote_insn", "(", ")", ")", ")", "{", "bti_insn", "=", "aarch_gen_bti_c", "(", ")", ";", "emit_insn_before", "(", "bti_insn", ",", "insn", ")", ";", "}", "}", "timevar_pop", "(", "TV_MACH_DEP", ")", ";", "return", "0", ";", "}", ""], "natrual_language": ["This", "is", "implemented", "as", "a", "late", "RTL", "pass", "that", "runs", "before", "branch", "shortening", "and", "does", "the", "following", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "0"], "File": "aarch-bti-insert", "Func": "rest_of_insert_bti", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44344, "Length": 318}
{"ground_truth": ["", "enum", "aarch_parse_opt_result", "aarch_parse_branch_protection", "(", "const", "char", "*", "const_str", ",", "char", "*", "*", "last_str", ")", "{", "char", "*", "str_root", "=", "xstrdup", "(", "const_str", ")", ";", "char", "*", "token_save", "=", "NULL", ";", "char", "*", "str", "=", "strtok_r", "(", "str_root", ",", "\"+\"", ",", "&", "token_save", ")", ";", "enum", "aarch_parse_opt_result", "res", "=", "AARCH_PARSE_OK", ";", "if", "(", "!", "str", ")", "res", "=", "AARCH_PARSE_MISSING_ARG", ";", "else", "{", "char", "*", "next_str", "=", "strtok_r", "(", "NULL", ",", "\"+\"", ",", "&", "token_save", ")", ";", "aarch_handle_no_branch_protection", "(", "NULL", ",", "NULL", ")", ";", "while", "(", "str", "&&", "res", "==", "AARCH_PARSE_OK", ")", "{", "const", "aarch_branch_protect_type", "*", "type", "=", "aarch_branch_protect_types", ";", "bool", "found", "=", "false", ";", "while", "(", "type", "&&", "type", "->", "name", "&&", "!", "found", "&&", "res", "==", "AARCH_PARSE_OK", ")", "{", "if", "(", "strcmp", "(", "str", ",", "type", "->", "name", ")", "==", "0", ")", "{", "found", "=", "true", ";", "res", "=", "type", "->", "handler", "(", "str", ",", "next_str", ")", ";", "str", "=", "next_str", ";", "next_str", "=", "strtok_r", "(", "NULL", ",", "\"+\"", ",", "&", "token_save", ")", ";", "}", "else", "type", "++", ";", "}", "if", "(", "found", "&&", "res", "==", "AARCH_PARSE_OK", ")", "{", "bool", "found_subtype", "=", "true", ";", "while", "(", "found_subtype", ")", "{", "found_subtype", "=", "false", ";", "const", "aarch_branch_protect_type", "*", "subtype", "=", "type", "->", "subtypes", ";", "while", "(", "str", "&&", "subtype", "&&", "subtype", "->", "name", "&&", "!", "found_subtype", "&&", "res", "==", "AARCH_PARSE_OK", ")", "{", "if", "(", "strcmp", "(", "str", ",", "subtype", "->", "name", ")", "==", "0", ")", "{", "found_subtype", "=", "true", ";", "res", "=", "subtype", "->", "handler", "(", "str", ",", "next_str", ")", ";", "str", "=", "next_str", ";", "next_str", "=", "strtok_r", "(", "NULL", ",", "\"+\"", ",", "&", "token_save", ")", ";", "}", "else", "subtype", "++", ";", "}", "}", "}", "else", "if", "(", "!", "found", ")", "res", "=", "AARCH_PARSE_INVALID_ARG", ";", "}", "}", "if", "(", "last_str", ")", "{", "if", "(", "str", ")", "strcpy", "(", "*", "last_str", ",", "str", ")", ";", "else", "*", "last_str", "=", "NULL", ";", "}", "if", "(", "res", "==", "AARCH_PARSE_OK", ")", "{", "if", "(", "!", "accepted_branch_protection_string", ")", "accepted_branch_protection_string", "=", "(", "char", "*", ")", "xmalloc", "(", "BRANCH_PROTECT_STR_MAX", "+", "1", ")", ";", "strncpy", "(", "accepted_branch_protection_string", ",", "const_str", ",", "BRANCH_PROTECT_STR_MAX", "+", "1", ")", ";", "accepted_branch_protection_string", "[", "BRANCH_PROTECT_STR_MAX", "]", "=", "'\\0'", ";", "}", "return", "res", ";", "}", ""], "natrual_language": ["Parses", "CONST_STR", "for", "branch", "protection", "features", "specified", "in", "aarch64_branch_protect_types", ",", "and", "set", "any", "global", "variables", "required", ".", "Returns", "the", "parsing", "result", "and", "assigns", "LAST_STR", "to", "the", "last", "processed", "token", "from", "CONST_STR", "so", "that", "it", "can", "be", "used", "for", "error", "reporting", "."], "TS_V_token": ["arm", "\"+\"", "\"+\"", "0", "\"+\"", "0", "\"+\"", "1", "1"], "File": "aarch-common1", "Func": "aarch_parse_branch_protection", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44345, "Length": 357}
{"ground_truth": ["", "int", "aarch_crypto_can_dual_issue", "(", "rtx_insn", "*", "producer_insn", ",", "rtx_insn", "*", "consumer_insn", ")", "{", "rtx", "producer_set", ",", "consumer_set", ";", "rtx", "producer_src", ",", "consumer_src", ";", "producer_set", "=", "single_set", "(", "producer_insn", ")", ";", "consumer_set", "=", "single_set", "(", "consumer_insn", ")", ";", "producer_src", "=", "producer_set", "?", "SET_SRC", "(", "producer_set", ")", ":", "NULL", ";", "consumer_src", "=", "consumer_set", "?", "SET_SRC", "(", "consumer_set", ")", ":", "NULL", ";", "if", "(", "producer_src", "&&", "consumer_src", "&&", "GET_CODE", "(", "producer_src", ")", "==", "UNSPEC", "&&", "GET_CODE", "(", "consumer_src", ")", "==", "UNSPEC", "&&", "(", "(", "XINT", "(", "producer_src", ",", "1", ")", "==", "UNSPEC_AESE", "&&", "XINT", "(", "consumer_src", ",", "1", ")", "==", "UNSPEC_AESMC", ")", "||", "(", "XINT", "(", "producer_src", ",", "1", ")", "==", "UNSPEC_AESD", "&&", "XINT", "(", "consumer_src", ",", "1", ")", "==", "UNSPEC_AESIMC", ")", ")", ")", "{", "unsigned", "int", "regno", "=", "REGNO", "(", "SET_DEST", "(", "producer_set", ")", ")", ";", "return", "REGNO", "(", "SET_DEST", "(", "consumer_set", ")", ")", "==", "regno", "&&", "REGNO", "(", "XVECEXP", "(", "consumer_src", ",", "0", ",", "0", ")", ")", "==", "regno", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["In", "ARMv8-A", "there", "'s", "a", "general", "expectation", "that", "AESE/AESMC", "and", "AESD/AESIMC", "sequences", "of", "the", "form", ":", "AESE", "Vn", ",", "_", "AESMC", "Vn", ",", "Vn", "will", "issue", "both", "instructions", "in", "a", "single", "cycle", "on", "super-scalar", "implementations", ".", "This", "function", "identifies", "such", "pairs", "."], "TS_V_token": ["arm", "1", "1", "1", "1", "0", "0", "0"], "File": "aarch-common2", "Func": "aarch_crypto_can_dual_issue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44346, "Length": 163}
{"ground_truth": ["", "int", "arm_no_early_alu_shift_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", ",", "op", ";", "rtx", "early_op", ";", "if", "(", "!", "arm_get_set_operands", "(", "producer", ",", "consumer", ",", "&", "value", ",", "&", "op", ")", ")", "return", "0", ";", "if", "(", "(", "early_op", "=", "arm_find_shift_sub_rtx", "(", "op", ")", ")", ")", "{", "if", "(", "REG_P", "(", "early_op", ")", ")", "early_op", "=", "op", ";", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "early_op", ")", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "an", "ALU", "op", ")", "does", "not", "have", "an", "early", "register", "shift", "value", "or", "amount", "dependency", "on", "the", "result", "of", "PRODUCER", "."], "TS_V_token": ["arm", "0", "0"], "File": "aarch-common2", "Func": "arm_no_early_alu_shift_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44347, "Length": 74}
{"ground_truth": ["", "int", "aarch_crypto_can_dual_issue", "(", "rtx_insn", "*", "producer_insn", ",", "rtx_insn", "*", "consumer_insn", ")", "{", "rtx", "producer_set", ",", "consumer_set", ";", "rtx", "producer_src", ",", "consumer_src", ";", "producer_set", "=", "single_set", "(", "producer_insn", ")", ";", "consumer_set", "=", "single_set", "(", "consumer_insn", ")", ";", "producer_src", "=", "producer_set", "?", "SET_SRC", "(", "producer_set", ")", ":", "NULL", ";", "consumer_src", "=", "consumer_set", "?", "SET_SRC", "(", "consumer_set", ")", ":", "NULL", ";", "if", "(", "producer_src", "&&", "consumer_src", "&&", "GET_CODE", "(", "producer_src", ")", "==", "UNSPEC", "&&", "GET_CODE", "(", "consumer_src", ")", "==", "UNSPEC", "&&", "(", "(", "XINT", "(", "producer_src", ",", "1", ")", "==", "UNSPEC_AESE", "&&", "XINT", "(", "consumer_src", ",", "1", ")", "==", "UNSPEC_AESMC", ")", "||", "(", "XINT", "(", "producer_src", ",", "1", ")", "==", "UNSPEC_AESD", "&&", "XINT", "(", "consumer_src", ",", "1", ")", "==", "UNSPEC_AESIMC", ")", ")", ")", "{", "unsigned", "int", "regno", "=", "REGNO", "(", "SET_DEST", "(", "producer_set", ")", ")", ";", "return", "(", "REGNO", "(", "SET_DEST", "(", "consumer_set", ")", ")", "==", "regno", "||", "!", "reload_completed", ")", "&&", "REGNO", "(", "XVECEXP", "(", "consumer_src", ",", "0", ",", "0", ")", ")", "==", "regno", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["In", "ARMv8-A", "there", "'s", "a", "general", "expectation", "that", "AESE/AESMC", "and", "AESD/AESIMC", "sequences", "of", "the", "form", ":", "AESE", "Vn", ",", "_", "AESMC", "Vn", ",", "Vn", "will", "issue", "both", "instructions", "in", "a", "single", "cycle", "on", "super-scalar", "implementations", ".", "This", "function", "identifies", "such", "pairs", "."], "TS_V_token": ["arm", "1", "1", "1", "1", "0", "0", "0"], "File": "aarch-common3", "Func": "aarch_crypto_can_dual_issue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44348, "Length": 168}
{"ground_truth": ["", "int", "aarch_forward_to_shift_is_not_shifted_reg", "(", "rtx_insn", "*", "producer", ",", "rtx_insn", "*", "consumer", ")", "{", "rtx", "value", ",", "op", ";", "rtx", "early_op", ";", "if", "(", "!", "arm_get_set_operands", "(", "producer", ",", "consumer", ",", "&", "value", ",", "&", "op", ")", ")", "return", "0", ";", "if", "(", "(", "early_op", "=", "arm_find_shift_sub_rtx", "(", "op", ")", ")", ")", "{", "if", "(", "REG_P", "(", "early_op", ")", ")", "early_op", "=", "op", ";", "if", "(", "GET_CODE", "(", "early_op", ")", "==", "ASHIFT", ")", "return", "(", "!", "REG_P", "(", "XEXP", "(", "early_op", ",", "0", ")", ")", "||", "!", "REG_P", "(", "XEXP", "(", "early_op", ",", "1", ")", ")", ")", ";", "else", "return", "1", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "is", "some", "sort", "of", "arithmetic", "or", "logic", "+", "shift", "operation", ",", "and", "the", "register", "we", "are", "writing", "in", "PRODUCER", "is", "not", "used", "in", "a", "register", "shift", "by", "register", "operation", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "0"], "File": "aarch-common3", "Func": "aarch_forward_to_shift_is_not_shifted_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44349, "Length": 105}
{"ground_truth": ["", "int", "aarch_accumulator_forwarding", "(", "rtx_insn", "*", "producer", ",", "rtx_insn", "*", "consumer", ")", "{", "rtx", "producer_set", "=", "single_set", "(", "producer", ")", ";", "rtx", "consumer_set", "=", "single_set", "(", "consumer", ")", ";", "if", "(", "!", "producer_set", "||", "!", "consumer_set", ")", "return", "0", ";", "rtx", "dest", "=", "SET_DEST", "(", "producer_set", ")", ";", "rtx", "mla", "=", "SET_SRC", "(", "consumer_set", ")", ";", "if", "(", "!", "REG_P", "(", "dest", ")", ")", "return", "0", ";", "rtx", "accumulator", ";", "if", "(", "GET_CODE", "(", "mla", ")", "==", "ZERO_EXTEND", ")", "mla", "=", "XEXP", "(", "mla", ",", "0", ")", ";", "switch", "(", "GET_CODE", "(", "mla", ")", ")", "{", "case", "PLUS", ":", "if", "(", "GET_CODE", "(", "XEXP", "(", "mla", ",", "0", ")", ")", "==", "MULT", ")", "accumulator", "=", "XEXP", "(", "mla", ",", "1", ")", ";", "else", "return", "0", ";", "break", ";", "case", "MINUS", ":", "if", "(", "GET_CODE", "(", "XEXP", "(", "mla", ",", "1", ")", ")", "==", "MULT", ")", "accumulator", "=", "XEXP", "(", "mla", ",", "0", ")", ";", "else", "return", "0", ";", "break", ";", "case", "FMA", ":", "{", "if", "(", "REG_P", "(", "XEXP", "(", "mla", ",", "1", ")", ")", "&&", "REG_P", "(", "XEXP", "(", "mla", ",", "2", ")", ")", "&&", "(", "REG_P", "(", "XEXP", "(", "mla", ",", "0", ")", ")", "||", "GET_CODE", "(", "XEXP", "(", "mla", ",", "0", ")", ")", "==", "NEG", ")", ")", "{", "accumulator", "=", "XEXP", "(", "mla", ",", "2", ")", ";", "}", "else", "if", "(", "REG_P", "(", "XEXP", "(", "mla", ",", "1", ")", ")", "&&", "GET_CODE", "(", "XEXP", "(", "mla", ",", "2", ")", ")", "==", "NEG", "&&", "(", "REG_P", "(", "XEXP", "(", "mla", ",", "0", ")", ")", "||", "GET_CODE", "(", "XEXP", "(", "mla", ",", "0", ")", ")", "==", "NEG", ")", ")", "{", "accumulator", "=", "XEXP", "(", "XEXP", "(", "mla", ",", "2", ")", ",", "0", ")", ";", "}", "else", "return", "0", ";", "break", ";", "}", "default", ":", "return", "0", ";", "}", "if", "(", "SUBREG_P", "(", "accumulator", ")", ")", "accumulator", "=", "SUBREG_REG", "(", "accumulator", ")", ";", "if", "(", "!", "REG_P", "(", "accumulator", ")", ")", "return", "0", ";", "return", "(", "REGNO", "(", "dest", ")", "==", "REGNO", "(", "accumulator", ")", ")", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "the", "destination", "of", "PRODUCER", "feeds", "the", "accumulator", "operand", "of", "an", "MLA-like", "operation", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1", "0", "1", "0", "0", "1", "2", "0", "0", "2", "1", "2", "0", "0", "2", "0", "0", "0", "0"], "File": "aarch-common", "Func": "aarch_accumulator_forwarding", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44350, "Length": 337}
{"ground_truth": ["", "bool", "aarch_mm_needs_acquire", "(", "rtx", "const_int", ")", "{", "enum", "memmodel", "model", "=", "memmodel_from_int", "(", "INTVAL", "(", "const_int", ")", ")", ";", "return", "!", "(", "is_mm_relaxed", "(", "model", ")", "||", "is_mm_consume", "(", "model", ")", "||", "is_mm_release", "(", "model", ")", ")", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "the", "RTX", "representing", "a", "memory", "model", "is", "a", "memory", "model", "that", "needs", "acquire", "semantics", "."], "TS_V_token": ["arm"], "File": "aarch-common", "Func": "aarch_mm_needs_acquire", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44351, "Length": 39}
{"ground_truth": ["", "bool", "aarch_mm_needs_release", "(", "rtx", "const_int", ")", "{", "enum", "memmodel", "model", "=", "memmodel_from_int", "(", "INTVAL", "(", "const_int", ")", ")", ";", "return", "!", "(", "is_mm_relaxed", "(", "model", ")", "||", "is_mm_consume", "(", "model", ")", "||", "is_mm_acquire", "(", "model", ")", ")", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "the", "RTX", "representing", "a", "memory", "model", "is", "a", "memory", "model", "that", "needs", "release", "semantics", "."], "TS_V_token": ["arm"], "File": "aarch-common", "Func": "aarch_mm_needs_release", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44352, "Length": 39}
{"ground_truth": ["", "bool", "aarch_rev16_p", "(", "rtx", "x", ")", "{", "rtx", "left_sub_rtx", ",", "right_sub_rtx", ";", "bool", "is_rev", "=", "false", ";", "if", "(", "GET_CODE", "(", "x", ")", "!=", "IOR", ")", "return", "false", ";", "left_sub_rtx", "=", "XEXP", "(", "x", ",", "0", ")", ";", "right_sub_rtx", "=", "XEXP", "(", "x", ",", "1", ")", ";", "is_rev", "=", "aarch_rev16_p_1", "(", "left_sub_rtx", ",", "right_sub_rtx", ",", "GET_MODE", "(", "x", ")", ")", ";", "if", "(", "!", "is_rev", ")", "is_rev", "=", "aarch_rev16_p_1", "(", "right_sub_rtx", ",", "left_sub_rtx", ",", "GET_MODE", "(", "x", ")", ")", ";", "return", "is_rev", ";", "}", ""], "natrual_language": ["Recognise", "a", "sequence", "of", "bitwise", "operations", "corresponding", "to", "a", "rev16", "operation", ".", "These", "will", "be", "of", "the", "form", ":", "(", "(", "x", ">", ">", "8", ")", "&", "0x00ff00ff", ")", "|", "(", "(", "x", "<", "<", "8", ")", "&", "0xff00ff00", ")", "for", "SImode", "and", "with", "similar", "but", "wider", "bitmasks", "for", "DImode", ".", "The", "two", "sub-expressions", "of", "the", "IOR", "can", "appear", "on", "either", "side", "so", "check", "both", "permutations", "with", "the", "help", "of", "aarch_rev16_p_1", "above", "."], "TS_V_token": ["arm", "0", "1"], "File": "aarch-common", "Func": "aarch_rev16_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44353, "Length": 84}
{"ground_truth": ["", "int", "arm_early_load_addr_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", ",", "addr", ";", "if", "(", "!", "arm_get_set_operands", "(", "producer", ",", "consumer", ",", "&", "value", ",", "&", "addr", ")", ")", "return", "0", ";", "return", "reg_overlap_mentioned_p", "(", "value", ",", "addr", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "a", "load", ")", "does", "need", "PRODUCER", "'s", "value", "to", "calculate", "the", "address", "."], "TS_V_token": ["arm", "0"], "File": "aarch-common", "Func": "arm_early_load_addr_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44354, "Length": 43}
{"ground_truth": ["", "int", "arm_early_load_addr_dep_ptr", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "producer", ")", ",", "SET", ",", "false", ")", ";", "rtx", "addr", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "consumer", ")", ",", "SET", ",", "false", ")", ";", "if", "(", "!", "value", "||", "!", "addr", "||", "!", "MEM_P", "(", "SET_SRC", "(", "value", ")", ")", ")", "return", "0", ";", "value", "=", "SET_DEST", "(", "value", ")", ";", "addr", "=", "SET_SRC", "(", "addr", ")", ";", "return", "GET_MODE", "(", "value", ")", "==", "Pmode", "&&", "reg_overlap_mentioned_p", "(", "value", ",", "addr", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "a", "load", ")", "does", "need", "a", "Pmode", "PRODUCER", "'s", "value", "to", "calculate", "the", "address", "."], "TS_V_token": ["arm", "0"], "File": "aarch-common", "Func": "arm_early_load_addr_dep_ptr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44355, "Length": 90}
{"ground_truth": ["", "int", "arm_early_store_addr_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "return", "!", "arm_no_early_store_addr_dep", "(", "producer", ",", "consumer", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "a", "store", ")", "does", "need", "PRODUCER", "'s", "value", "to", "calculate", "the", "address", "."], "TS_V_token": ["arm"], "File": "aarch-common", "Func": "arm_early_store_addr_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44356, "Length": 20}
{"ground_truth": ["", "int", "arm_early_store_addr_dep_ptr", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "producer", ")", ",", "SET", ",", "false", ")", ";", "rtx", "addr", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "consumer", ")", ",", "SET", ",", "false", ")", ";", "if", "(", "!", "value", "||", "!", "addr", "||", "!", "MEM_P", "(", "SET_SRC", "(", "value", ")", ")", ")", "return", "0", ";", "value", "=", "SET_DEST", "(", "value", ")", ";", "addr", "=", "SET_DEST", "(", "addr", ")", ";", "return", "GET_MODE", "(", "value", ")", "==", "Pmode", "&&", "reg_overlap_mentioned_p", "(", "value", ",", "addr", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "a", "store", ")", "does", "need", "a", "Pmode", "PRODUCER", "'s", "value", "to", "calculate", "the", "address", "."], "TS_V_token": ["arm", "0"], "File": "aarch-common", "Func": "arm_early_store_addr_dep_ptr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44357, "Length": 90}
{"ground_truth": ["", "static", "rtx", "arm_find_shift_sub_rtx", "(", "rtx", "pattern", ")", "{", "return", "arm_find_sub_rtx_with_code", "(", "pattern", ",", "ASHIFT", ",", "true", ")", ";", "}", ""], "natrual_language": ["Traverse", "PATTERN", "looking", "for", "any", "sub-rtx", "which", "looks", "like", "a", "shift", "."], "TS_V_token": ["arm"], "File": "aarch-common", "Func": "arm_find_shift_sub_rtx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44358, "Length": 19}
{"ground_truth": ["", "static", "rtx", "arm_find_sub_rtx_with_code", "(", "rtx", "pattern", ",", "rtx_code", "code", ",", "bool", "find_any_shift", ")", "{", "subrtx_var_iterator", "::", "array_type", "array", ";", "FOR_EACH_SUBRTX_VAR", "(", "iter", ",", "array", ",", "pattern", ",", "NONCONST", ")", "{", "rtx", "x", "=", "*", "iter", ";", "if", "(", "find_any_shift", ")", "{", "if", "(", "arm_rtx_shift_left_p", "(", "x", ")", ")", "return", "x", ";", "else", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "shift_rtx_codes", ")", ";", "i", "++", ")", "if", "(", "GET_CODE", "(", "x", ")", "==", "shift_rtx_codes", "[", "i", "]", ")", "return", "x", ";", "}", "if", "(", "GET_CODE", "(", "x", ")", "==", "code", ")", "return", "x", ";", "}", "return", "NULL_RTX", ";", "}", ""], "natrual_language": ["Traverse", "PATTERN", "looking", "for", "a", "sub-rtx", "with", "RTX_CODE", "CODE", ".", "If", "FIND_ANY_SHIFT", "then", "we", "are", "interested", "in", "anything", "which", "can", "reasonably", "be", "described", "as", "a", "SHIFT", "RTX", "."], "TS_V_token": ["arm", "0"], "File": "aarch-common", "Func": "arm_find_sub_rtx_with_code", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44359, "Length": 103}
{"ground_truth": ["", "static", "int", "arm_get_set_operands", "(", "rtx", "producer", ",", "rtx", "consumer", ",", "rtx", "*", "set_source", ",", "rtx", "*", "set_destination", ")", "{", "rtx", "set_producer", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "producer", ")", ",", "SET", ",", "false", ")", ";", "rtx", "set_consumer", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "consumer", ")", ",", "SET", ",", "false", ")", ";", "if", "(", "set_producer", "&&", "set_consumer", ")", "{", "*", "set_source", "=", "SET_DEST", "(", "set_producer", ")", ";", "*", "set_destination", "=", "SET_SRC", "(", "set_consumer", ")", ";", "return", "1", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["PRODUCER", "and", "CONSUMER", "are", "two", "potentially", "dependant", "RTX", ".", "PRODUCER", "(", "possibly", ")", "contains", "a", "SET", "which", "will", "provide", "a", "result", "we", "can", "access", "using", "the", "SET_DEST", "macro", ".", "We", "will", "place", "the", "RTX", "which", "would", "be", "written", "by", "PRODUCER", "in", "SET_SOURCE", ".", "Similarly", ",", "CONSUMER", "(", "possibly", ")", "contains", "a", "SET", "which", "has", "an", "operand", "we", "can", "access", "using", "SET_SRC", ".", "We", "place", "this", "operand", "in", "SET_DESTINATION", ".", "Return", "nonzero", "if", "we", "found", "the", "SET", "RTX", "we", "expected", "."], "TS_V_token": ["arm", "1", "0"], "File": "aarch-common", "Func": "arm_get_set_operands", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44360, "Length": 80}
{"ground_truth": ["", "int", "arm_mac_accumulator_is_mul_result", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "mul", "=", "PATTERN", "(", "producer", ")", ";", "rtx", "mac", "=", "PATTERN", "(", "consumer", ")", ";", "rtx", "mul_result", ";", "rtx", "mac_op0", ",", "mac_op1", ",", "mac_acc", ";", "if", "(", "GET_CODE", "(", "mul", ")", "==", "COND_EXEC", ")", "mul", "=", "COND_EXEC_CODE", "(", "mul", ")", ";", "if", "(", "GET_CODE", "(", "mac", ")", "==", "COND_EXEC", ")", "mac", "=", "COND_EXEC_CODE", "(", "mac", ")", ";", "if", "(", "(", "GET_CODE", "(", "mul", ")", "!=", "SET", "||", "GET_CODE", "(", "XEXP", "(", "mul", ",", "1", ")", ")", "!=", "MULT", ")", "||", "(", "GET_CODE", "(", "mac", ")", "!=", "SET", "||", "GET_CODE", "(", "XEXP", "(", "mac", ",", "1", ")", ")", "!=", "PLUS", "||", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "mac", ",", "1", ")", ",", "0", ")", ")", "!=", "MULT", ")", ")", "return", "0", ";", "mul_result", "=", "XEXP", "(", "mul", ",", "0", ")", ";", "mac_op0", "=", "XEXP", "(", "XEXP", "(", "XEXP", "(", "mac", ",", "1", ")", ",", "0", ")", ",", "0", ")", ";", "mac_op1", "=", "XEXP", "(", "XEXP", "(", "XEXP", "(", "mac", ",", "1", ")", ",", "0", ")", ",", "1", ")", ";", "mac_acc", "=", "XEXP", "(", "XEXP", "(", "mac", ",", "1", ")", ",", "1", ")", ";", "return", "(", "reg_overlap_mentioned_p", "(", "mul_result", ",", "mac_acc", ")", "&&", "!", "reg_overlap_mentioned_p", "(", "mul_result", ",", "mac_op0", ")", "&&", "!", "reg_overlap_mentioned_p", "(", "mul_result", ",", "mac_op1", ")", ")", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "the", "consumer", "(", "a", "multiply-accumulate", "instruction", ")", "has", "an", "accumulator", "dependency", "on", "the", "result", "of", "the", "producer", "(", "a", "multiplication", "instruction", ")", "and", "no", "other", "dependency", "on", "that", "result", "."], "TS_V_token": ["arm", "1", "1", "1", "0", "0", "0", "1", "0", "0", "1", "0", "1", "1", "1"], "File": "aarch-common", "Func": "arm_mac_accumulator_is_mul_result", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44361, "Length": 220}
{"ground_truth": ["", "int", "arm_mac_accumulator_is_result", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "result", ";", "rtx", "op0", ",", "op1", ",", "acc", ";", "producer", "=", "PATTERN", "(", "producer", ")", ";", "consumer", "=", "PATTERN", "(", "consumer", ")", ";", "if", "(", "GET_CODE", "(", "producer", ")", "==", "COND_EXEC", ")", "producer", "=", "COND_EXEC_CODE", "(", "producer", ")", ";", "if", "(", "GET_CODE", "(", "consumer", ")", "==", "COND_EXEC", ")", "consumer", "=", "COND_EXEC_CODE", "(", "consumer", ")", ";", "if", "(", "GET_CODE", "(", "producer", ")", "!=", "SET", ")", "return", "0", ";", "result", "=", "XEXP", "(", "producer", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "consumer", ")", "!=", "SET", ")", "return", "0", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "consumer", ",", "1", ")", ")", "==", "PLUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "0", ")", ")", "!=", "MULT", ")", "return", "0", ";", "op0", "=", "XEXP", "(", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "0", ")", ",", "0", ")", ";", "op1", "=", "XEXP", "(", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "0", ")", ",", "1", ")", ";", "acc", "=", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "1", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "XEXP", "(", "consumer", ",", "1", ")", ")", "==", "MINUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "1", ")", ")", "!=", "MULT", ")", "return", "0", ";", "op0", "=", "XEXP", "(", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "1", ")", ",", "0", ")", ";", "op1", "=", "XEXP", "(", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "1", ")", ",", "1", ")", ";", "acc", "=", "XEXP", "(", "XEXP", "(", "consumer", ",", "1", ")", ",", "0", ")", ";", "}", "else", "return", "0", ";", "return", "(", "reg_overlap_mentioned_p", "(", "result", ",", "acc", ")", "&&", "!", "reg_overlap_mentioned_p", "(", "result", ",", "op0", ")", "&&", "!", "reg_overlap_mentioned_p", "(", "result", ",", "op1", ")", ")", ";", "}", ""], "natrual_language": ["Return", "non-zero", "iff", "the", "consumer", "(", "a", "multiply-accumulate", "or", "a", "multiple-subtract", "instruction", ")", "has", "an", "accumulator", "dependency", "on", "the", "result", "of", "the", "producer", "and", "no", "other", "dependency", "on", "that", "result", ".", "It", "does", "not", "check", "if", "the", "producer", "is", "multiply-accumulate", "instruction", "."], "TS_V_token": ["arm", "0", "0", "0", "1", "1", "0", "0", "1", "0", "0", "1", "0", "1", "1", "1", "1", "1", "1", "0", "1", "1", "0", "1", "1", "1", "1", "0", "0"], "File": "aarch-common", "Func": "arm_mac_accumulator_is_result", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44362, "Length": 311}
{"ground_truth": ["", "int", "arm_no_early_alu_shift_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", ",", "op", ";", "rtx", "early_op", ";", "if", "(", "!", "arm_get_set_operands", "(", "producer", ",", "consumer", ",", "&", "value", ",", "&", "op", ")", ")", "return", "0", ";", "if", "(", "(", "early_op", "=", "arm_find_shift_sub_rtx", "(", "op", ")", ")", ")", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "early_op", ")", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "an", "ALU", "op", ")", "does", "not", "have", "an", "early", "register", "shift", "value", "or", "amount", "dependency", "on", "the", "result", "of", "PRODUCER", "."], "TS_V_token": ["arm", "0", "0"], "File": "aarch-common", "Func": "arm_no_early_alu_shift_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44363, "Length": 61}
{"ground_truth": ["", "int", "arm_no_early_alu_shift_value_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", ",", "op", ";", "rtx", "early_op", ";", "if", "(", "!", "arm_get_set_operands", "(", "producer", ",", "consumer", ",", "&", "value", ",", "&", "op", ")", ")", "return", "0", ";", "if", "(", "(", "early_op", "=", "arm_find_shift_sub_rtx", "(", "op", ")", ")", ")", "if", "(", "!", "reg_overlap_mentioned_p", "(", "value", ",", "XEXP", "(", "early_op", ",", "0", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "an", "ALU", "op", ")", "does", "not", "have", "an", "early", "register", "shift", "value", "dependency", "on", "the", "result", "of", "PRODUCER", "."], "TS_V_token": ["arm", "0", "0", "1", "0"], "File": "aarch-common", "Func": "arm_no_early_alu_shift_value_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44364, "Length": 70}
{"ground_truth": ["", "int", "arm_no_early_mul_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", ",", "op", ";", "if", "(", "!", "arm_get_set_operands", "(", "producer", ",", "consumer", ",", "&", "value", ",", "&", "op", ")", ")", "return", "0", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "PLUS", "||", "GET_CODE", "(", "op", ")", "==", "MINUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "op", ",", "0", ")", ")", "==", "MULT", ")", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "XEXP", "(", "op", ",", "0", ")", ")", ";", "else", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "XEXP", "(", "op", ",", "1", ")", ")", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "(", "a", "mul", "or", "mac", "op", ")", "does", "not", "have", "an", "early", "register", "mult", "dependency", "on", "the", "result", "of", "PRODUCER", "."], "TS_V_token": ["arm", "0", "0", "0", "1", "0"], "File": "aarch-common", "Func": "arm_no_early_mul_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44365, "Length": 99}
{"ground_truth": ["", "int", "arm_no_early_store_addr_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "producer", ")", ",", "SET", ",", "false", ")", ";", "rtx", "addr", "=", "arm_find_sub_rtx_with_code", "(", "PATTERN", "(", "consumer", ")", ",", "SET", ",", "false", ")", ";", "if", "(", "value", ")", "value", "=", "SET_DEST", "(", "value", ")", ";", "if", "(", "addr", ")", "addr", "=", "SET_DEST", "(", "addr", ")", ";", "if", "(", "!", "value", "||", "!", "addr", ")", "return", "0", ";", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "addr", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "a", "store", ")", "does", "not", "need", "PRODUCER", "'s", "value", "to", "calculate", "the", "address", "."], "TS_V_token": ["arm", "0"], "File": "aarch-common", "Func": "arm_no_early_store_addr_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44366, "Length": 83}
{"ground_truth": ["", "bool", "arm_rtx_shift_left_p", "(", "rtx", "x", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "code", "==", "MULT", "&&", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&&", "exact_log2", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", ">", "0", ")", "return", "true", ";", "if", "(", "code", "==", "ASHIFT", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "is", "either", "an", "arithmetic", "shift", "left", ",", "or", "is", "a", "multiplication", "by", "a", "power", "of", "two", "."], "TS_V_token": ["arm", "1", "1", "0"], "File": "aarch-common", "Func": "arm_rtx_shift_left_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44367, "Length": 63}
{"ground_truth": ["", "static", "void", "arm_init_builtin", "(", "unsigned", "int", "fcode", ",", "arm_builtin_datum", "*", "d", ",", "const", "char", "*", "prefix", ")", "{", "bool", "print_type_signature_p", "=", "false", ";", "char", "type_signature", "[", "SIMD_MAX_BUILTIN_ARGS", "]", "=", "{", "0", "}", ";", "char", "namebuf", "[", "60", "]", ";", "tree", "ftype", "=", "NULL", ";", "tree", "fndecl", "=", "NULL", ";", "d", "->", "fcode", "=", "fcode", ";", "int", "op_num", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", "-", "1", ";", "int", "arg_num", "=", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", "?", "op_num", "+", "1", ":", "op_num", ";", "tree", "return_type", "=", "void_type_node", ",", "args", "=", "void_list_node", ";", "tree", "eltype", ";", "for", "(", ";", "op_num", ">=", "0", ";", "arg_num", "--", ",", "op_num", "--", ")", "{", "machine_mode", "op_mode", "=", "insn_data", "[", "d", "->", "code", "]", ".", "operand", "[", "op_num", "]", ".", "mode", ";", "enum", "arm_type_qualifiers", "qualifiers", "=", "d", "->", "qualifiers", "[", "arg_num", "]", ";", "if", "(", "qualifiers", "&", "qualifier_unsigned", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'u'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "if", "(", "qualifiers", "&", "qualifier_poly", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'p'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "type_signature", "[", "arg_num", "]", "=", "'s'", ";", "if", "(", "qualifiers", "&", "qualifier_internal", ")", "continue", ";", "if", "(", "qualifiers", "&", "qualifier_map_mode", ")", "op_mode", "=", "d", "->", "mode", ";", "if", "(", "qualifiers", "&", "qualifier_predicate", ")", "op_mode", "=", "HImode", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", "&&", "VECTOR_MODE_P", "(", "op_mode", ")", ")", "op_mode", "=", "GET_MODE_INNER", "(", "op_mode", ")", ";", "if", "(", "qualifiers", "&", "qualifier_void_pointer", ")", "eltype", "=", "qualifiers", "&", "qualifier_const", "?", "const_ptr_type_node", ":", "ptr_type_node", ";", "else", "{", "eltype", "=", "arm_simd_builtin_type", "(", "op_mode", ",", "qualifiers", ")", ";", "gcc_assert", "(", "eltype", "!=", "NULL", ")", ";", "if", "(", "qualifiers", "&", "qualifier_const", ")", "eltype", "=", "build_qualified_type", "(", "eltype", ",", "TYPE_QUAL_CONST", ")", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", ")", "eltype", "=", "build_pointer_type", "(", "eltype", ")", ";", "}", "if", "(", "arg_num", "==", "0", ")", "return_type", "=", "eltype", ";", "else", "args", "=", "tree_cons", "(", "NULL_TREE", ",", "eltype", ",", "args", ")", ";", "}", "ftype", "=", "build_function_type", "(", "return_type", ",", "args", ")", ";", "gcc_assert", "(", "ftype", "!=", "NULL", ")", ";", "if", "(", "print_type_signature_p", "&&", "IN_RANGE", "(", "fcode", ",", "ARM_BUILTIN_VFP_BASE", ",", "ARM_BUILTIN_ACLE_BASE", "-", "1", ")", ")", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"%s_%s_%s\"", ",", "prefix", ",", "d", "->", "name", ",", "type_signature", ")", ";", "else", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"%s_%s\"", ",", "prefix", ",", "d", "->", "name", ")", ";", "fndecl", "=", "add_builtin_function", "(", "namebuf", ",", "ftype", ",", "fcode", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "arm_builtin_decls", "[", "fcode", "]", "=", "fndecl", ";", "}", ""], "natrual_language": ["Set", "up", "a", "builtin", ".", "It", "will", "use", "information", "stored", "in", "the", "argument", "struct", "D", "to", "derive", "the", "builtin", "'s", "type", "signature", "and", "name", ".", "It", "will", "append", "the", "name", "in", "D", "to", "the", "PREFIX", "passed", "and", "use", "these", "to", "create", "a", "builtin", "declaration", "that", "is", "then", "stored", "in", "'arm_builtin_decls", "'", "under", "index", "FCODE", ".", "This", "FCODE", "is", "also", "written", "back", "to", "D", "for", "future", "use", "."], "TS_V_token": ["arm", "0", "60", "1", "0", "1", "0", "0", "1", "\"%s_%s_%s\"", "\"%s_%s\""], "File": "arm-builtins1", "Func": "arm_init_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44368, "Length": 417}
{"ground_truth": ["", "static", "rtx", "arm_expand_neon_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "neon_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_NEON_BASE", "]", ";", "enum", "insn_code", "icode", "=", "d", "->", "code", ";", "builtin_arg", "args", "[", "SIMD_MAX_BUILTIN_ARGS", "]", ";", "int", "num_args", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", ";", "int", "is_void", "=", "0", ";", "int", "k", ";", "is_void", "=", "!", "!", "(", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", ")", ";", "num_args", "+=", "is_void", ";", "for", "(", "k", "=", "1", ";", "k", "<", "num_args", ";", "k", "++", ")", "{", "int", "qualifiers_k", "=", "k", ";", "int", "operands_k", "=", "k", "-", "is_void", ";", "int", "expr_args_k", "=", "k", "-", "1", ";", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_immediate", ")", "args", "[", "k", "]", "=", "NEON_ARG_CONSTANT", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_maybe_immediate", ")", "{", "rtx", "arg", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "(", "expr_args_k", ")", ")", ")", ";", "bool", "op_const_int_p", "=", "(", "CONST_INT_P", "(", "arg", ")", "&&", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "predicate", ")", "(", "arg", ",", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "mode", ")", ")", ";", "args", "[", "k", "]", "=", "op_const_int_p", "?", "NEON_ARG_CONSTANT", ":", "NEON_ARG_COPY_TO_REG", ";", "}", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_pointer", ")", "args", "[", "k", "]", "=", "NEON_ARG_MEMORY", ";", "else", "args", "[", "k", "]", "=", "NEON_ARG_COPY_TO_REG", ";", "}", "args", "[", "k", "]", "=", "NEON_ARG_STOP", ";", "return", "arm_expand_neon_args", "(", "target", ",", "d", "->", "mode", ",", "fcode", ",", "icode", ",", "!", "is_void", ",", "exp", ",", "args", "[", "1", "]", ",", "args", "[", "2", "]", ",", "args", "[", "3", "]", ",", "args", "[", "4", "]", ",", "NEON_ARG_STOP", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "Neon", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "TARGET_NEON", "holds", ".", "Most", "of", "these", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "table", "neon_builtin_data", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "2", "3", "4"], "File": "arm-builtins2", "Func": "arm_expand_neon_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44369, "Length": 287}
{"ground_truth": ["", "static", "rtx", "arm_expand_ternop_builtin", "(", "enum", "insn_code", "icode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "rtx", "pat", ";", "tree", "arg0", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "tree", "arg1", "=", "CALL_EXPR_ARG", "(", "exp", ",", "1", ")", ";", "tree", "arg2", "=", "CALL_EXPR_ARG", "(", "exp", ",", "2", ")", ";", "rtx", "op0", "=", "expand_normal", "(", "arg0", ")", ";", "rtx", "op1", "=", "expand_normal", "(", "arg1", ")", ";", "rtx", "op2", "=", "expand_normal", "(", "arg2", ")", ";", "rtx", "op3", "=", "NULL_RTX", ";", "bool", "builtin_sha1cpm_p", "=", "false", ";", "if", "(", "insn_data", "[", "icode", "]", ".", "n_operands", "==", "5", ")", "{", "gcc_assert", "(", "icode", "==", "CODE_FOR_crypto_sha1c", "||", "icode", "==", "CODE_FOR_crypto_sha1p", "||", "icode", "==", "CODE_FOR_crypto_sha1m", ")", ";", "builtin_sha1cpm_p", "=", "true", ";", "}", "machine_mode", "tmode", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "mode", ";", "machine_mode", "mode0", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "mode", ";", "machine_mode", "mode1", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "mode", ";", "machine_mode", "mode2", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "3", "]", ".", "mode", ";", "if", "(", "VECTOR_MODE_P", "(", "mode0", ")", ")", "op0", "=", "safe_vector_operand", "(", "op0", ",", "mode0", ")", ";", "if", "(", "VECTOR_MODE_P", "(", "mode1", ")", ")", "op1", "=", "safe_vector_operand", "(", "op1", ",", "mode1", ")", ";", "if", "(", "VECTOR_MODE_P", "(", "mode2", ")", ")", "op2", "=", "safe_vector_operand", "(", "op2", ",", "mode2", ")", ";", "if", "(", "!", "target", "||", "GET_MODE", "(", "target", ")", "!=", "tmode", "||", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "predicate", ")", "(", "target", ",", "tmode", ")", ")", "target", "=", "gen_reg_rtx", "(", "tmode", ")", ";", "gcc_assert", "(", "(", "GET_MODE", "(", "op0", ")", "==", "mode0", "||", "GET_MODE", "(", "op0", ")", "==", "VOIDmode", ")", "&&", "(", "GET_MODE", "(", "op1", ")", "==", "mode1", "||", "GET_MODE", "(", "op1", ")", "==", "VOIDmode", ")", "&&", "(", "GET_MODE", "(", "op2", ")", "==", "mode2", "||", "GET_MODE", "(", "op2", ")", "==", "VOIDmode", ")", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "predicate", ")", "(", "op0", ",", "mode0", ")", ")", "op0", "=", "copy_to_mode_reg", "(", "mode0", ",", "op0", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "predicate", ")", "(", "op1", ",", "mode1", ")", ")", "op1", "=", "copy_to_mode_reg", "(", "mode1", ",", "op1", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "3", "]", ".", "predicate", ")", "(", "op2", ",", "mode2", ")", ")", "op2", "=", "copy_to_mode_reg", "(", "mode2", ",", "op2", ")", ";", "if", "(", "builtin_sha1cpm_p", ")", "op3", "=", "GEN_INT", "(", "TARGET_BIG_END", "?", "1", ":", "0", ")", ";", "if", "(", "builtin_sha1cpm_p", ")", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ",", "op1", ",", "op2", ",", "op3", ")", ";", "else", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ",", "op1", ",", "op2", ")", ";", "if", "(", "!", "pat", ")", "return", "0", ";", "emit_insn", "(", "pat", ")", ";", "return", "target", ";", "}", ""], "natrual_language": ["Function", "to", "expand", "ternary", "builtins", "."], "TS_V_token": ["arm", "0", "1", "2", "5", "0", "1", "2", "3", "0", "1", "2", "3", "1", "0", "0"], "File": "arm-builtins2", "Func": "arm_expand_ternop_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44370, "Length": 480}
{"ground_truth": ["", "static", "rtx", "arm_expand_unop_builtin", "(", "enum", "insn_code", "icode", ",", "tree", "exp", ",", "rtx", "target", ",", "int", "do_load", ")", "{", "rtx", "pat", ";", "tree", "arg0", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "rtx", "op0", "=", "expand_normal", "(", "arg0", ")", ";", "rtx", "op1", "=", "NULL_RTX", ";", "machine_mode", "tmode", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "mode", ";", "machine_mode", "mode0", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "mode", ";", "bool", "builtin_sha1h_p", "=", "false", ";", "if", "(", "insn_data", "[", "icode", "]", ".", "n_operands", "==", "3", ")", "{", "gcc_assert", "(", "icode", "==", "CODE_FOR_crypto_sha1h", ")", ";", "builtin_sha1h_p", "=", "true", ";", "}", "if", "(", "!", "target", "||", "GET_MODE", "(", "target", ")", "!=", "tmode", "||", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "predicate", ")", "(", "target", ",", "tmode", ")", ")", "target", "=", "gen_reg_rtx", "(", "tmode", ")", ";", "if", "(", "do_load", ")", "op0", "=", "gen_rtx_MEM", "(", "mode0", ",", "copy_to_mode_reg", "(", "Pmode", ",", "op0", ")", ")", ";", "else", "{", "if", "(", "VECTOR_MODE_P", "(", "mode0", ")", ")", "op0", "=", "safe_vector_operand", "(", "op0", ",", "mode0", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "predicate", ")", "(", "op0", ",", "mode0", ")", ")", "op0", "=", "copy_to_mode_reg", "(", "mode0", ",", "op0", ")", ";", "}", "if", "(", "builtin_sha1h_p", ")", "op1", "=", "GEN_INT", "(", "TARGET_BIG_END", "?", "1", ":", "0", ")", ";", "if", "(", "builtin_sha1h_p", ")", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ",", "op1", ")", ";", "else", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ")", ";", "if", "(", "!", "pat", ")", "return", "0", ";", "emit_insn", "(", "pat", ")", ";", "return", "target", ";", "}", ""], "natrual_language": ["Subroutine", "of", "arm_expand_builtin", "to", "take", "care", "of", "unop", "insns", "."], "TS_V_token": ["arm", "0", "0", "1", "3", "0", "1", "1", "0", "0"], "File": "arm-builtins2", "Func": "arm_expand_unop_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44371, "Length": 275}
{"ground_truth": ["", "static", "rtx", "arm_expand_neon_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "if", "(", "!", "TARGET_NEON", ")", "{", "fatal_error", "(", "input_location", ",", "\"You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use these intrinsics.\"", ")", ";", "return", "const0_rtx", ";", "}", "if", "(", "fcode", "==", "ARM_BUILTIN_NEON_LANE_CHECK", ")", "{", "tree", "nlanes", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "gcc_assert", "(", "TREE_CODE", "(", "nlanes", ")", "==", "INTEGER_CST", ")", ";", "rtx", "lane_idx", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "1", ")", ")", ";", "if", "(", "CONST_INT_P", "(", "lane_idx", ")", ")", "neon_lane_bounds", "(", "lane_idx", ",", "0", ",", "TREE_INT_CST_LOW", "(", "nlanes", ")", ",", "exp", ")", ";", "else", "error", "(", "\"%Klane index must be a constant immediate\"", ",", "exp", ")", ";", "return", "const0_rtx", ";", "}", "neon_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_NEON_PATTERN_START", "]", ";", "enum", "insn_code", "icode", "=", "d", "->", "code", ";", "builtin_arg", "args", "[", "SIMD_MAX_BUILTIN_ARGS", "+", "1", "]", ";", "int", "num_args", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", ";", "int", "is_void", "=", "0", ";", "int", "k", ";", "is_void", "=", "!", "!", "(", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", ")", ";", "num_args", "+=", "is_void", ";", "for", "(", "k", "=", "1", ";", "k", "<", "num_args", ";", "k", "++", ")", "{", "int", "qualifiers_k", "=", "k", ";", "int", "operands_k", "=", "k", "-", "is_void", ";", "int", "expr_args_k", "=", "k", "-", "1", ";", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_lane_index", ")", "args", "[", "k", "]", "=", "NEON_ARG_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_struct_load_store_lane_index", ")", "args", "[", "k", "]", "=", "NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_immediate", ")", "args", "[", "k", "]", "=", "NEON_ARG_CONSTANT", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_maybe_immediate", ")", "{", "rtx", "arg", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "(", "expr_args_k", ")", ")", ")", ";", "bool", "op_const_int_p", "=", "(", "CONST_INT_P", "(", "arg", ")", "&&", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "predicate", ")", "(", "arg", ",", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "mode", ")", ")", ";", "args", "[", "k", "]", "=", "op_const_int_p", "?", "NEON_ARG_CONSTANT", ":", "NEON_ARG_COPY_TO_REG", ";", "}", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_pointer", ")", "args", "[", "k", "]", "=", "NEON_ARG_MEMORY", ";", "else", "args", "[", "k", "]", "=", "NEON_ARG_COPY_TO_REG", ";", "}", "args", "[", "k", "]", "=", "NEON_ARG_STOP", ";", "return", "arm_expand_neon_args", "(", "target", ",", "d", "->", "mode", ",", "fcode", ",", "icode", ",", "!", "is_void", ",", "exp", ",", "&", "args", "[", "1", "]", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "Neon", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "TARGET_NEON", "holds", ".", "Most", "of", "these", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "table", "neon_builtin_data", "."], "TS_V_token": ["arm", "\"You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use these intrinsics.\"", "0", "1", "0", "\"%Klane index must be a constant immediate\"", "1", "0", "0", "1", "1", "1"], "File": "arm-builtins3", "Func": "arm_expand_neon_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44372, "Length": 401}
{"ground_truth": ["", "static", "void", "arm_init_neon_builtins", "(", "void", ")", "{", "unsigned", "int", "i", ",", "fcode", "=", "ARM_BUILTIN_NEON_PATTERN_START", ";", "arm_init_simd_builtin_types", "(", ")", ";", "arm_init_simd_builtin_scalar_types", "(", ")", ";", "tree", "lane_check_fpr", "=", "build_function_type_list", "(", "void_type_node", ",", "intSI_type_node", ",", "intSI_type_node", ",", "NULL", ")", ";", "arm_builtin_decls", "[", "ARM_BUILTIN_NEON_LANE_CHECK", "]", "=", "add_builtin_function", "(", "\"__builtin_arm_lane_check\"", ",", "lane_check_fpr", ",", "ARM_BUILTIN_NEON_LANE_CHECK", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "neon_builtin_data", ")", ";", "i", "++", ",", "fcode", "++", ")", "{", "bool", "print_type_signature_p", "=", "false", ";", "char", "type_signature", "[", "SIMD_MAX_BUILTIN_ARGS", "]", "=", "{", "0", "}", ";", "neon_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "i", "]", ";", "char", "namebuf", "[", "60", "]", ";", "tree", "ftype", "=", "NULL", ";", "tree", "fndecl", "=", "NULL", ";", "d", "->", "fcode", "=", "fcode", ";", "int", "op_num", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", "-", "1", ";", "int", "arg_num", "=", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", "?", "op_num", "+", "1", ":", "op_num", ";", "tree", "return_type", "=", "void_type_node", ",", "args", "=", "void_list_node", ";", "tree", "eltype", ";", "for", "(", ";", "op_num", ">=", "0", ";", "arg_num", "--", ",", "op_num", "--", ")", "{", "machine_mode", "op_mode", "=", "insn_data", "[", "d", "->", "code", "]", ".", "operand", "[", "op_num", "]", ".", "mode", ";", "enum", "arm_type_qualifiers", "qualifiers", "=", "d", "->", "qualifiers", "[", "arg_num", "]", ";", "if", "(", "qualifiers", "&", "qualifier_unsigned", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'u'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "if", "(", "qualifiers", "&", "qualifier_poly", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'p'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "type_signature", "[", "arg_num", "]", "=", "'s'", ";", "if", "(", "qualifiers", "&", "qualifier_internal", ")", "continue", ";", "if", "(", "qualifiers", "&", "qualifier_map_mode", ")", "op_mode", "=", "d", "->", "mode", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", "&&", "VECTOR_MODE_P", "(", "op_mode", ")", ")", "op_mode", "=", "GET_MODE_INNER", "(", "op_mode", ")", ";", "eltype", "=", "arm_simd_builtin_type", "(", "op_mode", ",", "(", "qualifiers", "&", "qualifier_unsigned", ")", "!=", "0", ",", "(", "qualifiers", "&", "qualifier_poly", ")", "!=", "0", ")", ";", "gcc_assert", "(", "eltype", "!=", "NULL", ")", ";", "if", "(", "qualifiers", "&", "qualifier_const", ")", "eltype", "=", "build_qualified_type", "(", "eltype", ",", "TYPE_QUAL_CONST", ")", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", ")", "eltype", "=", "build_pointer_type", "(", "eltype", ")", ";", "if", "(", "arg_num", "==", "0", ")", "return_type", "=", "eltype", ";", "else", "args", "=", "tree_cons", "(", "NULL_TREE", ",", "eltype", ",", "args", ")", ";", "}", "ftype", "=", "build_function_type", "(", "return_type", ",", "args", ")", ";", "gcc_assert", "(", "ftype", "!=", "NULL", ")", ";", "if", "(", "print_type_signature_p", ")", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"__builtin_neon_%s_%s\"", ",", "d", "->", "name", ",", "type_signature", ")", ";", "else", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"__builtin_neon_%s\"", ",", "d", "->", "name", ")", ";", "fndecl", "=", "add_builtin_function", "(", "namebuf", ",", "ftype", ",", "fcode", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "arm_builtin_decls", "[", "fcode", "]", "=", "fndecl", ";", "}", "}", ""], "natrual_language": ["Set", "up", "all", "the", "NEON", "builtins", ",", "even", "builtins", "for", "instructions", "that", "are", "not", "in", "the", "current", "target", "ISA", "to", "allow", "the", "user", "to", "compile", "particular", "modules", "with", "different", "target", "specific", "options", "that", "differ", "from", "the", "command", "line", "options", ".", "Such", "builtins", "will", "be", "rejected", "in", "arm_expand_builtin", "."], "TS_V_token": ["arm", "\"__builtin_arm_lane_check\"", "0", "0", "60", "1", "0", "1", "0", "0", "0", "0", "\"__builtin_neon_%s_%s\"", "\"__builtin_neon_%s\""], "File": "arm-builtins3", "Func": "arm_init_neon_builtins", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44373, "Length": 457}
{"ground_truth": ["", "static", "rtx", "arm_expand_acle_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "arm_builtin_datum", "*", "d", "=", "&", "acle_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_ACLE_PATTERN_START", "]", ";", "return", "arm_expand_builtin_1", "(", "fcode", ",", "exp", ",", "target", ",", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "an", "ACLE", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "their", "respective", "target", "constraints", "are", "met", ".", "This", "check", "happens", "within", "arm_expand_builtin_args", "."], "TS_V_token": ["arm"], "File": "arm-builtins4", "Func": "arm_expand_acle_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44374, "Length": 39}
{"ground_truth": ["", "static", "rtx", "arm_expand_builtin_1", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ",", "arm_builtin_datum", "*", "d", ")", "{", "enum", "insn_code", "icode", "=", "d", "->", "code", ";", "builtin_arg", "args", "[", "SIMD_MAX_BUILTIN_ARGS", "+", "1", "]", ";", "int", "num_args", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", ";", "int", "is_void", "=", "0", ";", "int", "k", ";", "bool", "neon", "=", "false", ";", "if", "(", "IN_RANGE", "(", "fcode", ",", "ARM_BUILTIN_VFP_BASE", ",", "ARM_BUILTIN_ACLE_BASE", "-", "1", ")", ")", "neon", "=", "true", ";", "is_void", "=", "!", "!", "(", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", ")", ";", "num_args", "+=", "is_void", ";", "for", "(", "k", "=", "1", ";", "k", "<", "num_args", ";", "k", "++", ")", "{", "int", "qualifiers_k", "=", "k", ";", "int", "operands_k", "=", "k", "-", "is_void", ";", "int", "expr_args_k", "=", "k", "-", "1", ";", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_lane_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_struct_load_store_lane_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_STRUCT_LOAD_STORE_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_immediate", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_CONSTANT", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_maybe_immediate", ")", "{", "rtx", "arg", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "(", "expr_args_k", ")", ")", ")", ";", "bool", "op_const_int_p", "=", "(", "CONST_INT_P", "(", "arg", ")", "&&", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "predicate", ")", "(", "arg", ",", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "mode", ")", ")", ";", "args", "[", "k", "]", "=", "op_const_int_p", "?", "ARG_BUILTIN_CONSTANT", ":", "ARG_BUILTIN_COPY_TO_REG", ";", "}", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_pointer", ")", "{", "if", "(", "neon", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_NEON_MEMORY", ";", "else", "args", "[", "k", "]", "=", "ARG_BUILTIN_MEMORY", ";", "}", "else", "args", "[", "k", "]", "=", "ARG_BUILTIN_COPY_TO_REG", ";", "}", "args", "[", "k", "]", "=", "ARG_BUILTIN_STOP", ";", "return", "arm_expand_builtin_args", "(", "target", ",", "d", "->", "mode", ",", "fcode", ",", "icode", ",", "!", "is_void", ",", "exp", ",", "&", "args", "[", "1", "]", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "builtin", ".", "These", "builtins", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "ARM_BUILTIN_DATA", "record", "that", "is", "passed", "into", "the", "function", "."], "TS_V_token": ["arm", "1", "0", "1", "0", "1", "1", "1"], "File": "arm-builtins4", "Func": "arm_expand_builtin_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44375, "Length": 339}
{"ground_truth": ["", "static", "rtx", "arm_expand_neon_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "if", "(", "fcode", ">=", "ARM_BUILTIN_NEON_BASE", "&&", "!", "TARGET_NEON", ")", "{", "fatal_error", "(", "input_location", ",", "\"You must enable NEON instructions\"", "\" (e.g. -mfloat-abi=softfp -mfpu=neon)\"", "\" to use these intrinsics.\"", ")", ";", "return", "const0_rtx", ";", "}", "if", "(", "fcode", "==", "ARM_BUILTIN_NEON_LANE_CHECK", ")", "{", "tree", "nlanes", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "gcc_assert", "(", "TREE_CODE", "(", "nlanes", ")", "==", "INTEGER_CST", ")", ";", "rtx", "lane_idx", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "1", ")", ")", ";", "if", "(", "CONST_INT_P", "(", "lane_idx", ")", ")", "neon_lane_bounds", "(", "lane_idx", ",", "0", ",", "TREE_INT_CST_LOW", "(", "nlanes", ")", ",", "exp", ")", ";", "else", "error", "(", "\"%Klane index must be a constant immediate\"", ",", "exp", ")", ";", "return", "const0_rtx", ";", "}", "arm_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_NEON_PATTERN_START", "]", ";", "return", "arm_expand_builtin_1", "(", "fcode", ",", "exp", ",", "target", ",", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "Neon", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "TARGET_NEON", "holds", ".", "Most", "of", "these", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "table", "neon_builtin_data", "."], "TS_V_token": ["arm", "\"You must enable NEON instructions\"", "\" (e.g. -mfloat-abi=softfp -mfpu=neon)\"", "\" to use these intrinsics.\"", "0", "1", "0", "\"%Klane index must be a constant immediate\""], "File": "arm-builtins4", "Func": "arm_expand_neon_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44376, "Length": 135}
{"ground_truth": ["", "static", "void", "arm_init_acle_builtins", "(", "void", ")", "{", "unsigned", "int", "i", ",", "fcode", "=", "ARM_BUILTIN_ACLE_PATTERN_START", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "acle_builtin_data", ")", ";", "i", "++", ",", "fcode", "++", ")", "{", "arm_builtin_datum", "*", "d", "=", "&", "acle_builtin_data", "[", "i", "]", ";", "arm_init_builtin", "(", "fcode", ",", "d", ",", "\"__builtin_arm\"", ")", ";", "}", "}", ""], "natrual_language": ["Set", "up", "ACLE", "builtins", ",", "even", "builtins", "for", "instructions", "that", "are", "not", "in", "the", "current", "target", "ISA", "to", "allow", "the", "user", "to", "compile", "particular", "modules", "with", "different", "target", "specific", "options", "that", "differ", "from", "the", "command", "line", "options", ".", "Such", "builtins", "will", "be", "rejected", "in", "arm_expand_builtin", "."], "TS_V_token": ["arm", "0", "\"__builtin_arm\""], "File": "arm-builtins4", "Func": "arm_init_acle_builtins", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44377, "Length": 56}
{"ground_truth": ["", "static", "void", "arm_init_builtin", "(", "unsigned", "int", "fcode", ",", "arm_builtin_datum", "*", "d", ",", "const", "char", "*", "prefix", ")", "{", "bool", "print_type_signature_p", "=", "false", ";", "char", "type_signature", "[", "SIMD_MAX_BUILTIN_ARGS", "]", "=", "{", "0", "}", ";", "char", "namebuf", "[", "60", "]", ";", "tree", "ftype", "=", "NULL", ";", "tree", "fndecl", "=", "NULL", ";", "d", "->", "fcode", "=", "fcode", ";", "int", "op_num", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", "-", "1", ";", "int", "arg_num", "=", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", "?", "op_num", "+", "1", ":", "op_num", ";", "tree", "return_type", "=", "void_type_node", ",", "args", "=", "void_list_node", ";", "tree", "eltype", ";", "for", "(", ";", "op_num", ">=", "0", ";", "arg_num", "--", ",", "op_num", "--", ")", "{", "machine_mode", "op_mode", "=", "insn_data", "[", "d", "->", "code", "]", ".", "operand", "[", "op_num", "]", ".", "mode", ";", "enum", "arm_type_qualifiers", "qualifiers", "=", "d", "->", "qualifiers", "[", "arg_num", "]", ";", "if", "(", "qualifiers", "&", "qualifier_unsigned", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'u'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "if", "(", "qualifiers", "&", "qualifier_poly", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'p'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "type_signature", "[", "arg_num", "]", "=", "'s'", ";", "if", "(", "qualifiers", "&", "qualifier_internal", ")", "continue", ";", "if", "(", "qualifiers", "&", "qualifier_map_mode", ")", "op_mode", "=", "d", "->", "mode", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", "&&", "VECTOR_MODE_P", "(", "op_mode", ")", ")", "op_mode", "=", "GET_MODE_INNER", "(", "op_mode", ")", ";", "eltype", "=", "arm_simd_builtin_type", "(", "op_mode", ",", "(", "qualifiers", "&", "qualifier_unsigned", ")", "!=", "0", ",", "(", "qualifiers", "&", "qualifier_poly", ")", "!=", "0", ")", ";", "gcc_assert", "(", "eltype", "!=", "NULL", ")", ";", "if", "(", "qualifiers", "&", "qualifier_const", ")", "eltype", "=", "build_qualified_type", "(", "eltype", ",", "TYPE_QUAL_CONST", ")", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", ")", "eltype", "=", "build_pointer_type", "(", "eltype", ")", ";", "if", "(", "arg_num", "==", "0", ")", "return_type", "=", "eltype", ";", "else", "args", "=", "tree_cons", "(", "NULL_TREE", ",", "eltype", ",", "args", ")", ";", "}", "ftype", "=", "build_function_type", "(", "return_type", ",", "args", ")", ";", "gcc_assert", "(", "ftype", "!=", "NULL", ")", ";", "if", "(", "print_type_signature_p", "&&", "IN_RANGE", "(", "fcode", ",", "ARM_BUILTIN_VFP_BASE", ",", "ARM_BUILTIN_ACLE_BASE", "-", "1", ")", ")", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"%s_%s_%s\"", ",", "prefix", ",", "d", "->", "name", ",", "type_signature", ")", ";", "else", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"%s_%s\"", ",", "prefix", ",", "d", "->", "name", ")", ";", "fndecl", "=", "add_builtin_function", "(", "namebuf", ",", "ftype", ",", "fcode", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "arm_builtin_decls", "[", "fcode", "]", "=", "fndecl", ";", "}", ""], "natrual_language": ["Set", "up", "a", "builtin", ".", "It", "will", "use", "information", "stored", "in", "the", "argument", "struct", "D", "to", "derive", "the", "builtin", "'s", "type", "signature", "and", "name", ".", "It", "will", "append", "the", "name", "in", "D", "to", "the", "PREFIX", "passed", "and", "use", "these", "to", "create", "a", "builtin", "declaration", "that", "is", "then", "stored", "in", "'arm_builtin_decls", "'", "under", "index", "FCODE", ".", "This", "FCODE", "is", "also", "written", "back", "to", "D", "for", "future", "use", "."], "TS_V_token": ["arm", "0", "60", "1", "0", "1", "0", "0", "0", "0", "1", "\"%s_%s_%s\"", "\"%s_%s\""], "File": "arm-builtins4", "Func": "arm_init_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44378, "Length": 402}
{"ground_truth": ["", "static", "void", "arm_init_neon_builtins", "(", "void", ")", "{", "unsigned", "int", "i", ",", "fcode", "=", "ARM_BUILTIN_NEON_PATTERN_START", ";", "arm_init_simd_builtin_types", "(", ")", ";", "arm_init_simd_builtin_scalar_types", "(", ")", ";", "tree", "lane_check_fpr", "=", "build_function_type_list", "(", "void_type_node", ",", "intSI_type_node", ",", "intSI_type_node", ",", "NULL", ")", ";", "arm_builtin_decls", "[", "ARM_BUILTIN_NEON_LANE_CHECK", "]", "=", "add_builtin_function", "(", "\"__builtin_arm_lane_check\"", ",", "lane_check_fpr", ",", "ARM_BUILTIN_NEON_LANE_CHECK", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "neon_builtin_data", ")", ";", "i", "++", ",", "fcode", "++", ")", "{", "arm_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "i", "]", ";", "arm_init_builtin", "(", "fcode", ",", "d", ",", "\"__builtin_neon\"", ")", ";", "}", "}", ""], "natrual_language": ["Set", "up", "all", "the", "NEON", "builtins", ",", "even", "builtins", "for", "instructions", "that", "are", "not", "in", "the", "current", "target", "ISA", "to", "allow", "the", "user", "to", "compile", "particular", "modules", "with", "different", "target", "specific", "options", "that", "differ", "from", "the", "command", "line", "options", ".", "Such", "builtins", "will", "be", "rejected", "in", "arm_expand_builtin", "."], "TS_V_token": ["arm", "\"__builtin_arm_lane_check\"", "0", "\"__builtin_neon\""], "File": "arm-builtins4", "Func": "arm_init_neon_builtins", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44379, "Length": 98}
{"ground_truth": ["", "static", "rtx", "arm_expand_builtin_1", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ",", "arm_builtin_datum", "*", "d", ")", "{", "enum", "insn_code", "icode", "=", "d", "->", "code", ";", "builtin_arg", "args", "[", "SIMD_MAX_BUILTIN_ARGS", "+", "1", "]", ";", "int", "num_args", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", ";", "int", "is_void", "=", "0", ";", "int", "k", ";", "bool", "neon", "=", "false", ";", "if", "(", "IN_RANGE", "(", "fcode", ",", "ARM_BUILTIN_VFP_BASE", ",", "ARM_BUILTIN_ACLE_BASE", "-", "1", ")", ")", "neon", "=", "true", ";", "is_void", "=", "!", "!", "(", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", ")", ";", "num_args", "+=", "is_void", ";", "for", "(", "k", "=", "1", ";", "k", "<", "num_args", ";", "k", "++", ")", "{", "int", "qualifiers_k", "=", "k", ";", "int", "operands_k", "=", "k", "-", "is_void", ";", "int", "expr_args_k", "=", "k", "-", "1", ";", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_lane_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_lane_pair_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_LANE_PAIR_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_struct_load_store_lane_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_STRUCT_LOAD_STORE_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_immediate", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_CONSTANT", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_maybe_immediate", ")", "{", "rtx", "arg", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "(", "expr_args_k", ")", ")", ")", ";", "bool", "op_const_int_p", "=", "(", "CONST_INT_P", "(", "arg", ")", "&&", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "predicate", ")", "(", "arg", ",", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "mode", ")", ")", ";", "args", "[", "k", "]", "=", "op_const_int_p", "?", "ARG_BUILTIN_CONSTANT", ":", "ARG_BUILTIN_COPY_TO_REG", ";", "}", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_pointer", ")", "{", "if", "(", "neon", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_NEON_MEMORY", ";", "else", "args", "[", "k", "]", "=", "ARG_BUILTIN_MEMORY", ";", "}", "else", "args", "[", "k", "]", "=", "ARG_BUILTIN_COPY_TO_REG", ";", "}", "args", "[", "k", "]", "=", "ARG_BUILTIN_STOP", ";", "return", "arm_expand_builtin_args", "(", "target", ",", "d", "->", "mode", ",", "fcode", ",", "icode", ",", "!", "is_void", ",", "exp", ",", "&", "args", "[", "1", "]", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "builtin", ".", "These", "builtins", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "ARM_BUILTIN_DATA", "record", "that", "is", "passed", "into", "the", "function", "."], "TS_V_token": ["arm", "1", "0", "1", "0", "1", "1", "1"], "File": "arm-builtins6", "Func": "arm_expand_builtin_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44380, "Length": 358}
{"ground_truth": ["", "static", "rtx", "arm_expand_neon_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "if", "(", "fcode", ">=", "ARM_BUILTIN_NEON_BASE", "&&", "!", "TARGET_NEON", ")", "{", "fatal_error", "(", "input_location", ",", "\"You must enable NEON instructions\"", "\" (e.g. %<-mfloat-abi=softfp%> %<-mfpu=neon%>)\"", "\" to use these intrinsics.\"", ")", ";", "return", "const0_rtx", ";", "}", "if", "(", "fcode", "==", "ARM_BUILTIN_NEON_LANE_CHECK", ")", "{", "tree", "nlanes", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "gcc_assert", "(", "TREE_CODE", "(", "nlanes", ")", "==", "INTEGER_CST", ")", ";", "rtx", "lane_idx", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "1", ")", ")", ";", "if", "(", "CONST_INT_P", "(", "lane_idx", ")", ")", "neon_lane_bounds", "(", "lane_idx", ",", "0", ",", "TREE_INT_CST_LOW", "(", "nlanes", ")", ",", "exp", ")", ";", "else", "error", "(", "\"%Klane index must be a constant immediate\"", ",", "exp", ")", ";", "return", "const0_rtx", ";", "}", "arm_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_NEON_PATTERN_START", "]", ";", "return", "arm_expand_builtin_1", "(", "fcode", ",", "exp", ",", "target", ",", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "Neon", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "TARGET_NEON", "holds", ".", "Most", "of", "these", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "table", "neon_builtin_data", "."], "TS_V_token": ["arm", "\"You must enable NEON instructions\"", "\" (e.g. %<-mfloat-abi=softfp%> %<-mfpu=neon%>)\"", "\" to use these intrinsics.\"", "0", "1", "0", "\"%Klane index must be a constant immediate\""], "File": "arm-builtins6", "Func": "arm_expand_neon_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44381, "Length": 135}
{"ground_truth": ["", "tree", "arm_builtin_decl", "(", "unsigned", "code", ",", "bool", "initialize_p", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "code", ">=", "ARM_BUILTIN_MAX", ")", "return", "error_mark_node", ";", "return", "arm_builtin_decls", "[", "code", "]", ";", "}", ""], "natrual_language": ["Return", "the", "ARM", "builtin", "for", "CODE", "."], "TS_V_token": ["arm"], "File": "arm-builtins", "Func": "arm_builtin_decl", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44382, "Length": 27}
{"ground_truth": ["", "bool", "arm_check_builtin_call", "(", "location_t", ",", "vec", "<", "location_t", ">", ",", "tree", "fndecl", ",", "tree", ",", "unsigned", "int", ",", "tree", "*", ")", "{", "int", "fcode", "=", "DECL_MD_FUNCTION_CODE", "(", "fndecl", ")", ";", "if", "(", "fcode", "==", "ARM_BUILTIN_saturation_occurred", "||", "fcode", "==", "ARM_BUILTIN_set_saturation", ")", "{", "if", "(", "cfun", "&&", "cfun", "->", "decl", ")", "DECL_ATTRIBUTES", "(", "cfun", "->", "decl", ")", "=", "tree_cons", "(", "get_identifier", "(", "\"acle qbit\"", ")", ",", "NULL_TREE", ",", "DECL_ATTRIBUTES", "(", "cfun", "->", "decl", ")", ")", ";", "}", "if", "(", "fcode", "==", "ARM_BUILTIN_sel", ")", "{", "if", "(", "cfun", "&&", "cfun", "->", "decl", ")", "DECL_ATTRIBUTES", "(", "cfun", "->", "decl", ")", "=", "tree_cons", "(", "get_identifier", "(", "\"acle gebits\"", ")", ",", "NULL_TREE", ",", "DECL_ATTRIBUTES", "(", "cfun", "->", "decl", ")", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Implement", "TARGET_CHECK_BUILTIN_CALL", ".", "Record", "a", "read", "of", "the", "Q", "bit", "through", "intrinsics", "in", "the", "machine", "function", "."], "TS_V_token": ["arm", "\"acle qbit\"", "\"acle gebits\""], "File": "arm-builtins", "Func": "arm_check_builtin_call", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44383, "Length": 118}
{"ground_truth": ["", "static", "rtx", "arm_expand_acle_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "if", "(", "fcode", "==", "ARM_BUILTIN_SAT_IMM_CHECK", ")", "{", "rtx", "min_sat", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "1", ")", ")", ";", "rtx", "max_sat", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "2", ")", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "min_sat", ")", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "max_sat", ")", ")", ";", "rtx", "sat_imm", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ")", ";", "if", "(", "CONST_INT_P", "(", "sat_imm", ")", ")", "{", "if", "(", "!", "IN_RANGE", "(", "sat_imm", ",", "min_sat", ",", "max_sat", ")", ")", "error_at", "(", "EXPR_LOCATION", "(", "exp", ")", ",", "\"saturation bit range must be in the range [%wd, %wd]\"", ",", "UINTVAL", "(", "min_sat", ")", ",", "UINTVAL", "(", "max_sat", ")", ")", ";", "}", "else", "error_at", "(", "EXPR_LOCATION", "(", "exp", ")", ",", "\"saturation bit range must be a constant immediate\"", ")", ";", "return", "const0_rtx", ";", "}", "gcc_assert", "(", "fcode", "!=", "ARM_BUILTIN_CDE_BASE", ")", ";", "arm_builtin_datum", "*", "d", "=", "(", "fcode", "<", "ARM_BUILTIN_CDE_BASE", ")", "?", "&", "acle_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_ACLE_PATTERN_START", "]", ":", "&", "cde_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_CDE_PATTERN_START", "]", ".", "base", ";", "return", "arm_expand_builtin_1", "(", "fcode", ",", "exp", ",", "target", ",", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "an", "ACLE", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "their", "respective", "target", "constraints", "are", "met", ".", "This", "check", "happens", "within", "arm_expand_builtin_args", "."], "TS_V_token": ["arm", "1", "2", "0", "\"saturation bit range must be in the range [%wd, %wd]\"", "\"saturation bit range must be a constant immediate\""], "File": "arm-builtins", "Func": "arm_expand_acle_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44384, "Length": 180}
{"ground_truth": ["", "static", "rtx", "arm_expand_binop_builtin", "(", "enum", "insn_code", "icode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "rtx", "pat", ";", "tree", "arg0", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "tree", "arg1", "=", "CALL_EXPR_ARG", "(", "exp", ",", "1", ")", ";", "rtx", "op0", "=", "expand_normal", "(", "arg0", ")", ";", "rtx", "op1", "=", "expand_normal", "(", "arg1", ")", ";", "machine_mode", "tmode", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "mode", ";", "machine_mode", "mode0", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "mode", ";", "machine_mode", "mode1", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "mode", ";", "if", "(", "VECTOR_MODE_P", "(", "mode0", ")", ")", "op0", "=", "safe_vector_operand", "(", "op0", ",", "mode0", ")", ";", "if", "(", "VECTOR_MODE_P", "(", "mode1", ")", ")", "op1", "=", "safe_vector_operand", "(", "op1", ",", "mode1", ")", ";", "if", "(", "!", "target", "||", "GET_MODE", "(", "target", ")", "!=", "tmode", "||", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "predicate", ")", "(", "target", ",", "tmode", ")", ")", "target", "=", "gen_reg_rtx", "(", "tmode", ")", ";", "gcc_assert", "(", "(", "GET_MODE", "(", "op0", ")", "==", "mode0", "||", "GET_MODE", "(", "op0", ")", "==", "VOIDmode", ")", "&&", "(", "GET_MODE", "(", "op1", ")", "==", "mode1", "||", "GET_MODE", "(", "op1", ")", "==", "VOIDmode", ")", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "predicate", ")", "(", "op0", ",", "mode0", ")", ")", "op0", "=", "copy_to_mode_reg", "(", "mode0", ",", "op0", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "predicate", ")", "(", "op1", ",", "mode1", ")", ")", "op1", "=", "copy_to_mode_reg", "(", "mode1", ",", "op1", ")", ";", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ",", "op1", ")", ";", "if", "(", "!", "pat", ")", "return", "0", ";", "emit_insn", "(", "pat", ")", ";", "return", "target", ";", "}", ""], "natrual_language": ["Subroutine", "of", "arm_expand_builtin", "to", "take", "care", "of", "binop", "insns", "."], "TS_V_token": ["arm", "0", "1", "0", "1", "2", "0", "1", "2", "0"], "File": "arm-builtins", "Func": "arm_expand_binop_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44385, "Length": 301}
{"ground_truth": ["", "static", "rtx", "arm_expand_builtin_1", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ",", "arm_builtin_datum", "*", "d", ")", "{", "enum", "insn_code", "icode", "=", "d", "->", "code", ";", "builtin_arg", "args", "[", "SIMD_MAX_BUILTIN_ARGS", "+", "1", "]", ";", "int", "num_args", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", ";", "int", "is_void", "=", "0", ";", "int", "k", ";", "bool", "neon", "=", "false", ";", "bool", "mve", "=", "false", ";", "if", "(", "IN_RANGE", "(", "fcode", ",", "ARM_BUILTIN_VFP_BASE", ",", "ARM_BUILTIN_ACLE_BASE", "-", "1", ")", ")", "neon", "=", "true", ";", "if", "(", "IN_RANGE", "(", "fcode", ",", "ARM_BUILTIN_MVE_BASE", ",", "ARM_BUILTIN_MAX", "-", "1", ")", ")", "mve", "=", "true", ";", "is_void", "=", "!", "!", "(", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", ")", ";", "num_args", "+=", "is_void", ";", "for", "(", "k", "=", "1", ";", "k", "<", "num_args", ";", "k", "++", ")", "{", "int", "qualifiers_k", "=", "k", ";", "int", "operands_k", "=", "k", "-", "is_void", ";", "int", "expr_args_k", "=", "k", "-", "1", ";", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_lane_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_lane_pair_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_LANE_PAIR_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_lane_quadtup_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_LANE_QUADTUP_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_struct_load_store_lane_index", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_STRUCT_LOAD_STORE_LANE_INDEX", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_immediate", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_CONSTANT", ";", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_maybe_immediate", ")", "{", "rtx", "arg", "=", "expand_normal", "(", "CALL_EXPR_ARG", "(", "exp", ",", "(", "expr_args_k", ")", ")", ")", ";", "bool", "op_const_int_p", "=", "(", "CONST_INT_P", "(", "arg", ")", "&&", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "predicate", ")", "(", "arg", ",", "insn_data", "[", "icode", "]", ".", "operand", "[", "operands_k", "]", ".", "mode", ")", ")", ";", "args", "[", "k", "]", "=", "op_const_int_p", "?", "ARG_BUILTIN_CONSTANT", ":", "ARG_BUILTIN_COPY_TO_REG", ";", "}", "else", "if", "(", "d", "->", "qualifiers", "[", "qualifiers_k", "]", "&", "qualifier_pointer", ")", "{", "if", "(", "neon", "||", "mve", ")", "args", "[", "k", "]", "=", "ARG_BUILTIN_NEON_MEMORY", ";", "else", "args", "[", "k", "]", "=", "ARG_BUILTIN_MEMORY", ";", "}", "else", "args", "[", "k", "]", "=", "ARG_BUILTIN_COPY_TO_REG", ";", "}", "args", "[", "k", "]", "=", "ARG_BUILTIN_STOP", ";", "return", "arm_expand_builtin_args", "(", "target", ",", "d", "->", "mode", ",", "fcode", ",", "icode", ",", "!", "is_void", ",", "exp", ",", "&", "args", "[", "1", "]", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "builtin", ".", "These", "builtins", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "ARM_BUILTIN_DATA", "record", "that", "is", "passed", "into", "the", "function", "."], "TS_V_token": ["arm", "1", "0", "1", "1", "0", "1", "1", "1"], "File": "arm-builtins", "Func": "arm_expand_builtin_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44386, "Length": 401}
{"ground_truth": ["", "static", "rtx", "arm_expand_mve_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "if", "(", "fcode", ">=", "ARM_BUILTIN_MVE_BASE", "&&", "!", "TARGET_HAVE_MVE", ")", "{", "fatal_error", "(", "input_location", ",", "\"You must enable MVE instructions\"", "\" to use these intrinsics\"", ")", ";", "return", "const0_rtx", ";", "}", "arm_builtin_datum", "*", "d", "=", "&", "mve_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_MVE_PATTERN_START", "]", ";", "return", "arm_expand_builtin_1", "(", "fcode", ",", "exp", ",", "target", ",", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "an", "MVE", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "their", "respective", "target", "constraints", "are", "met", ".", "This", "check", "happens", "within", "arm_expand_builtin", "."], "TS_V_token": ["arm", "\"You must enable MVE instructions\"", "\" to use these intrinsics\""], "File": "arm-builtins", "Func": "arm_expand_mve_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44387, "Length": 61}
{"ground_truth": ["", "static", "rtx", "arm_expand_neon_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "if", "(", "fcode", ">=", "ARM_BUILTIN_NEON_BASE", "&&", "!", "TARGET_NEON", ")", "{", "fatal_error", "(", "input_location", ",", "\"You must enable NEON instructions\"", "\" (e.g. %<-mfloat-abi=softfp%> %<-mfpu=neon%>)\"", "\" to use these intrinsics.\"", ")", ";", "return", "const0_rtx", ";", "}", "arm_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_NEON_PATTERN_START", "]", ";", "return", "arm_expand_builtin_1", "(", "fcode", ",", "exp", ",", "target", ",", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "Neon", "builtin", ",", "i.e", ".", "those", "registered", "only", "if", "TARGET_NEON", "holds", ".", "Most", "of", "these", "are", "``", "special", "''", "because", "they", "do", "n't", "have", "symbolic", "constants", "defined", "per-instruction", "or", "per", "instruction-variant", ".", "Instead", ",", "the", "required", "info", "is", "looked", "up", "in", "the", "table", "neon_builtin_data", "."], "TS_V_token": ["arm", "\"You must enable NEON instructions\"", "\" (e.g. %<-mfloat-abi=softfp%> %<-mfpu=neon%>)\"", "\" to use these intrinsics.\""], "File": "arm-builtins", "Func": "arm_expand_neon_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44388, "Length": 62}
{"ground_truth": ["", "static", "rtx", "arm_expand_ternop_builtin", "(", "enum", "insn_code", "icode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "rtx", "pat", ";", "tree", "arg0", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "tree", "arg1", "=", "CALL_EXPR_ARG", "(", "exp", ",", "1", ")", ";", "tree", "arg2", "=", "CALL_EXPR_ARG", "(", "exp", ",", "2", ")", ";", "rtx", "op0", "=", "expand_normal", "(", "arg0", ")", ";", "rtx", "op1", "=", "expand_normal", "(", "arg1", ")", ";", "rtx", "op2", "=", "expand_normal", "(", "arg2", ")", ";", "machine_mode", "tmode", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "mode", ";", "machine_mode", "mode0", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "mode", ";", "machine_mode", "mode1", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "mode", ";", "machine_mode", "mode2", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "3", "]", ".", "mode", ";", "if", "(", "VECTOR_MODE_P", "(", "mode0", ")", ")", "op0", "=", "safe_vector_operand", "(", "op0", ",", "mode0", ")", ";", "if", "(", "VECTOR_MODE_P", "(", "mode1", ")", ")", "op1", "=", "safe_vector_operand", "(", "op1", ",", "mode1", ")", ";", "if", "(", "VECTOR_MODE_P", "(", "mode2", ")", ")", "op2", "=", "safe_vector_operand", "(", "op2", ",", "mode2", ")", ";", "if", "(", "!", "target", "||", "GET_MODE", "(", "target", ")", "!=", "tmode", "||", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "predicate", ")", "(", "target", ",", "tmode", ")", ")", "target", "=", "gen_reg_rtx", "(", "tmode", ")", ";", "gcc_assert", "(", "(", "GET_MODE", "(", "op0", ")", "==", "mode0", "||", "GET_MODE", "(", "op0", ")", "==", "VOIDmode", ")", "&&", "(", "GET_MODE", "(", "op1", ")", "==", "mode1", "||", "GET_MODE", "(", "op1", ")", "==", "VOIDmode", ")", "&&", "(", "GET_MODE", "(", "op2", ")", "==", "mode2", "||", "GET_MODE", "(", "op2", ")", "==", "VOIDmode", ")", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "predicate", ")", "(", "op0", ",", "mode0", ")", ")", "op0", "=", "copy_to_mode_reg", "(", "mode0", ",", "op0", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "predicate", ")", "(", "op1", ",", "mode1", ")", ")", "op1", "=", "copy_to_mode_reg", "(", "mode1", ",", "op1", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "3", "]", ".", "predicate", ")", "(", "op2", ",", "mode2", ")", ")", "op2", "=", "copy_to_mode_reg", "(", "mode2", ",", "op2", ")", ";", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ",", "op1", ",", "op2", ")", ";", "if", "(", "!", "pat", ")", "return", "0", ";", "emit_insn", "(", "pat", ")", ";", "return", "target", ";", "}", ""], "natrual_language": ["Function", "to", "expand", "ternary", "builtins", "."], "TS_V_token": ["arm", "0", "1", "2", "0", "1", "2", "3", "0", "1", "2", "3", "0"], "File": "arm-builtins", "Func": "arm_expand_ternop_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44389, "Length": 400}
{"ground_truth": ["", "static", "rtx", "arm_expand_unop_builtin", "(", "enum", "insn_code", "icode", ",", "tree", "exp", ",", "rtx", "target", ",", "int", "do_load", ")", "{", "rtx", "pat", ";", "tree", "arg0", "=", "CALL_EXPR_ARG", "(", "exp", ",", "0", ")", ";", "rtx", "op0", "=", "expand_normal", "(", "arg0", ")", ";", "machine_mode", "tmode", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "mode", ";", "machine_mode", "mode0", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "mode", ";", "if", "(", "!", "target", "||", "GET_MODE", "(", "target", ")", "!=", "tmode", "||", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "predicate", ")", "(", "target", ",", "tmode", ")", ")", "target", "=", "gen_reg_rtx", "(", "tmode", ")", ";", "if", "(", "do_load", ")", "op0", "=", "gen_rtx_MEM", "(", "mode0", ",", "copy_to_mode_reg", "(", "Pmode", ",", "op0", ")", ")", ";", "else", "{", "if", "(", "VECTOR_MODE_P", "(", "mode0", ")", ")", "op0", "=", "safe_vector_operand", "(", "op0", ",", "mode0", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "predicate", ")", "(", "op0", ",", "mode0", ")", ")", "op0", "=", "copy_to_mode_reg", "(", "mode0", ",", "op0", ")", ";", "}", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ")", ";", "if", "(", "!", "pat", ")", "return", "0", ";", "emit_insn", "(", "pat", ")", ";", "return", "target", ";", "}", ""], "natrual_language": ["Subroutine", "of", "arm_expand_builtin", "to", "take", "care", "of", "unop", "insns", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "0"], "File": "arm-builtins", "Func": "arm_expand_unop_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44390, "Length": 207}
{"ground_truth": ["", "static", "rtx", "arm_expand_vfp_builtin", "(", "int", "fcode", ",", "tree", "exp", ",", "rtx", "target", ")", "{", "if", "(", "fcode", ">=", "ARM_BUILTIN_VFP_BASE", "&&", "!", "TARGET_HARD_FLOAT", ")", "{", "fatal_error", "(", "input_location", ",", "\"You must enable VFP instructions\"", "\" to use these intrinsics.\"", ")", ";", "return", "const0_rtx", ";", "}", "arm_builtin_datum", "*", "d", "=", "&", "vfp_builtin_data", "[", "fcode", "-", "ARM_BUILTIN_VFP_PATTERN_START", "]", ";", "return", "arm_expand_builtin_1", "(", "fcode", ",", "exp", ",", "target", ",", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "VFP", "builtin", ".", "These", "builtins", "are", "treated", "like", "neon", "builtins", "except", "that", "the", "data", "is", "looked", "up", "in", "table", "VFP_BUILTIN_DATA", "."], "TS_V_token": ["arm", "\"You must enable VFP instructions\"", "\" to use these intrinsics.\""], "File": "arm-builtins", "Func": "arm_expand_vfp_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44391, "Length": 61}
{"ground_truth": ["", "static", "void", "arm_init_acle_builtins", "(", "void", ")", "{", "unsigned", "int", "i", ",", "fcode", "=", "ARM_BUILTIN_ACLE_PATTERN_START", ";", "tree", "sat_check_fpr", "=", "build_function_type_list", "(", "void_type_node", ",", "intSI_type_node", ",", "intSI_type_node", ",", "intSI_type_node", ",", "NULL", ")", ";", "arm_builtin_decls", "[", "ARM_BUILTIN_SAT_IMM_CHECK", "]", "=", "add_builtin_function", "(", "\"__builtin_sat_imm_check\"", ",", "sat_check_fpr", ",", "ARM_BUILTIN_SAT_IMM_CHECK", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "acle_builtin_data", ")", ";", "i", "++", ",", "fcode", "++", ")", "{", "arm_builtin_datum", "*", "d", "=", "&", "acle_builtin_data", "[", "i", "]", ";", "arm_init_builtin", "(", "fcode", ",", "d", ",", "\"__builtin_arm\"", ")", ";", "}", "}", ""], "natrual_language": ["Set", "up", "ACLE", "builtins", ",", "even", "builtins", "for", "instructions", "that", "are", "not", "in", "the", "current", "target", "ISA", "to", "allow", "the", "user", "to", "compile", "particular", "modules", "with", "different", "target", "specific", "options", "that", "differ", "from", "the", "command", "line", "options", ".", "Such", "builtins", "will", "be", "rejected", "in", "arm_expand_builtin", "."], "TS_V_token": ["arm", "\"__builtin_sat_imm_check\"", "0", "\"__builtin_arm\""], "File": "arm-builtins", "Func": "arm_init_acle_builtins", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44392, "Length": 92}
{"ground_truth": ["", "static", "void", "arm_init_bf16_types", "(", "void", ")", "{", "arm_bf16_type_node", "=", "make_node", "(", "REAL_TYPE", ")", ";", "TYPE_PRECISION", "(", "arm_bf16_type_node", ")", "=", "16", ";", "SET_TYPE_MODE", "(", "arm_bf16_type_node", ",", "BFmode", ")", ";", "layout_type", "(", "arm_bf16_type_node", ")", ";", "lang_hooks", ".", "types", ".", "register_builtin_type", "(", "arm_bf16_type_node", ",", "\"__bf16\"", ")", ";", "arm_bf16_ptr_type_node", "=", "build_pointer_type", "(", "arm_bf16_type_node", ")", ";", "}", ""], "natrual_language": ["Initialize", "the", "backend", "REAL_TYPE", "type", "supporting", "bfloat", "types", "."], "TS_V_token": ["arm", "16", "\"__bf16\""], "File": "arm-builtins", "Func": "arm_init_bf16_types", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44393, "Length": 52}
{"ground_truth": ["", "static", "void", "arm_init_builtin", "(", "unsigned", "int", "fcode", ",", "arm_builtin_datum", "*", "d", ",", "const", "char", "*", "prefix", ")", "{", "bool", "print_type_signature_p", "=", "false", ";", "char", "type_signature", "[", "SIMD_MAX_BUILTIN_ARGS", "]", "=", "{", "0", "}", ";", "char", "namebuf", "[", "60", "]", ";", "tree", "ftype", "=", "NULL", ";", "tree", "fndecl", "=", "NULL", ";", "d", "->", "fcode", "=", "fcode", ";", "int", "op_num", "=", "insn_data", "[", "d", "->", "code", "]", ".", "n_operands", "-", "1", ";", "int", "arg_num", "=", "d", "->", "qualifiers", "[", "0", "]", "&", "qualifier_void", "?", "op_num", "+", "1", ":", "op_num", ";", "tree", "return_type", "=", "void_type_node", ",", "args", "=", "void_list_node", ";", "tree", "eltype", ";", "for", "(", ";", "op_num", ">=", "0", ";", "arg_num", "--", ",", "op_num", "--", ")", "{", "machine_mode", "op_mode", "=", "insn_data", "[", "d", "->", "code", "]", ".", "operand", "[", "op_num", "]", ".", "mode", ";", "enum", "arm_type_qualifiers", "qualifiers", "=", "d", "->", "qualifiers", "[", "arg_num", "]", ";", "if", "(", "qualifiers", "&", "qualifier_unsigned", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'u'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "if", "(", "qualifiers", "&", "qualifier_poly", ")", "{", "type_signature", "[", "arg_num", "]", "=", "'p'", ";", "print_type_signature_p", "=", "true", ";", "}", "else", "type_signature", "[", "arg_num", "]", "=", "'s'", ";", "if", "(", "qualifiers", "&", "qualifier_internal", ")", "continue", ";", "if", "(", "qualifiers", "&", "qualifier_map_mode", ")", "op_mode", "=", "d", "->", "mode", ";", "if", "(", "qualifiers", "&", "qualifier_predicate", ")", "op_mode", "=", "HImode", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", "&&", "VECTOR_MODE_P", "(", "op_mode", ")", ")", "op_mode", "=", "GET_MODE_INNER", "(", "op_mode", ")", ";", "if", "(", "qualifiers", "&", "qualifier_void_pointer", ")", "eltype", "=", "qualifiers", "&", "qualifier_const", "?", "const_ptr_type_node", ":", "ptr_type_node", ";", "else", "{", "eltype", "=", "arm_simd_builtin_type", "(", "op_mode", ",", "(", "qualifiers", "&", "qualifier_unsigned", ")", "!=", "0", ",", "(", "qualifiers", "&", "qualifier_poly", ")", "!=", "0", ")", ";", "gcc_assert", "(", "eltype", "!=", "NULL", ")", ";", "if", "(", "qualifiers", "&", "qualifier_const", ")", "eltype", "=", "build_qualified_type", "(", "eltype", ",", "TYPE_QUAL_CONST", ")", ";", "if", "(", "qualifiers", "&", "qualifier_pointer", ")", "eltype", "=", "build_pointer_type", "(", "eltype", ")", ";", "}", "if", "(", "arg_num", "==", "0", ")", "return_type", "=", "eltype", ";", "else", "args", "=", "tree_cons", "(", "NULL_TREE", ",", "eltype", ",", "args", ")", ";", "}", "ftype", "=", "build_function_type", "(", "return_type", ",", "args", ")", ";", "gcc_assert", "(", "ftype", "!=", "NULL", ")", ";", "if", "(", "print_type_signature_p", "&&", "IN_RANGE", "(", "fcode", ",", "ARM_BUILTIN_VFP_BASE", ",", "ARM_BUILTIN_ACLE_BASE", "-", "1", ")", ")", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"%s_%s_%s\"", ",", "prefix", ",", "d", "->", "name", ",", "type_signature", ")", ";", "else", "snprintf", "(", "namebuf", ",", "sizeof", "(", "namebuf", ")", ",", "\"%s_%s\"", ",", "prefix", ",", "d", "->", "name", ")", ";", "fndecl", "=", "add_builtin_function", "(", "namebuf", ",", "ftype", ",", "fcode", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "arm_builtin_decls", "[", "fcode", "]", "=", "fndecl", ";", "}", ""], "natrual_language": ["Set", "up", "a", "builtin", ".", "It", "will", "use", "information", "stored", "in", "the", "argument", "struct", "D", "to", "derive", "the", "builtin", "'s", "type", "signature", "and", "name", ".", "It", "will", "append", "the", "name", "in", "D", "to", "the", "PREFIX", "passed", "and", "use", "these", "to", "create", "a", "builtin", "declaration", "that", "is", "then", "stored", "in", "'arm_builtin_decls", "'", "under", "index", "FCODE", ".", "This", "FCODE", "is", "also", "written", "back", "to", "D", "for", "future", "use", "."], "TS_V_token": ["arm", "0", "60", "1", "0", "1", "0", "0", "0", "0", "1", "\"%s_%s_%s\"", "\"%s_%s\""], "File": "arm-builtins", "Func": "arm_init_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44394, "Length": 431}
{"ground_truth": ["", "static", "void", "arm_init_mve_builtins", "(", "void", ")", "{", "volatile", "unsigned", "int", "i", ",", "fcode", "=", "ARM_BUILTIN_MVE_PATTERN_START", ";", "arm_init_simd_builtin_scalar_types", "(", ")", ";", "arm_init_simd_builtin_types", "(", ")", ";", "tree", "get_fpscr_nzcvqc", "=", "build_function_type_list", "(", "intSI_type_node", ",", "NULL", ")", ";", "tree", "set_fpscr_nzcvqc", "=", "build_function_type_list", "(", "void_type_node", ",", "intSI_type_node", ",", "NULL", ")", ";", "arm_builtin_decls", "[", "ARM_BUILTIN_GET_FPSCR_NZCVQC", "]", "=", "add_builtin_function", "(", "\"__builtin_arm_get_fpscr_nzcvqc\"", ",", "get_fpscr_nzcvqc", ",", "ARM_BUILTIN_GET_FPSCR_NZCVQC", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "arm_builtin_decls", "[", "ARM_BUILTIN_SET_FPSCR_NZCVQC", "]", "=", "add_builtin_function", "(", "\"__builtin_arm_set_fpscr_nzcvqc\"", ",", "set_fpscr_nzcvqc", ",", "ARM_BUILTIN_SET_FPSCR_NZCVQC", ",", "BUILT_IN_MD", ",", "NULL", ",", "NULL_TREE", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "mve_builtin_data", ")", ";", "i", "++", ",", "fcode", "++", ")", "{", "arm_builtin_datum", "*", "d", "=", "&", "mve_builtin_data", "[", "i", "]", ";", "arm_init_builtin", "(", "fcode", ",", "d", ",", "\"__builtin_mve\"", ")", ";", "}", "}", ""], "natrual_language": ["Set", "up", "all", "the", "MVE", "builtins", "mentioned", "in", "arm_mve_builtins.def", "file", "."], "TS_V_token": ["arm", "\"__builtin_arm_get_fpscr_nzcvqc\"", "\"__builtin_arm_set_fpscr_nzcvqc\"", "0", "\"__builtin_mve\""], "File": "arm-builtins", "Func": "arm_init_mve_builtins", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44395, "Length": 127}
{"ground_truth": ["", "static", "void", "arm_init_neon_builtins", "(", "void", ")", "{", "unsigned", "int", "i", ",", "fcode", "=", "ARM_BUILTIN_NEON_PATTERN_START", ";", "arm_init_simd_builtin_types", "(", ")", ";", "arm_init_simd_builtin_scalar_types", "(", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "neon_builtin_data", ")", ";", "i", "++", ",", "fcode", "++", ")", "{", "arm_builtin_datum", "*", "d", "=", "&", "neon_builtin_data", "[", "i", "]", ";", "arm_init_builtin", "(", "fcode", ",", "d", ",", "\"__builtin_neon\"", ")", ";", "}", "}", ""], "natrual_language": ["Set", "up", "all", "the", "NEON", "builtins", ",", "even", "builtins", "for", "instructions", "that", "are", "not", "in", "the", "current", "target", "ISA", "to", "allow", "the", "user", "to", "compile", "particular", "modules", "with", "different", "target", "specific", "options", "that", "differ", "from", "the", "command", "line", "options", ".", "Such", "builtins", "will", "be", "rejected", "in", "arm_expand_builtin", "."], "TS_V_token": ["arm", "0", "\"__builtin_neon\""], "File": "arm-builtins", "Func": "arm_init_neon_builtins", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44396, "Length": 64}
{"ground_truth": ["", "static", "void", "arm_init_vfp_builtins", "(", "void", ")", "{", "unsigned", "int", "i", ",", "fcode", "=", "ARM_BUILTIN_VFP_PATTERN_START", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "vfp_builtin_data", ")", ";", "i", "++", ",", "fcode", "++", ")", "{", "arm_builtin_datum", "*", "d", "=", "&", "vfp_builtin_data", "[", "i", "]", ";", "arm_init_builtin", "(", "fcode", ",", "d", ",", "\"__builtin_neon\"", ")", ";", "}", "}", ""], "natrual_language": ["Set", "up", "all", "the", "scalar", "floating", "point", "builtins", "."], "TS_V_token": ["arm", "0", "\"__builtin_neon\""], "File": "arm-builtins", "Func": "arm_init_vfp_builtins", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44397, "Length": 56}
{"ground_truth": ["", "static", "tree", "mve_dereference_pointer", "(", "tree", "exp", ",", "tree", "type", ",", "machine_mode", "reg_mode", ",", "machine_mode", "vector_mode", ")", "{", "HOST_WIDE_INT", "reg_size", ",", "vector_size", ",", "nelems", ";", "tree", "elem_type", ",", "upper_bound", ",", "array_type", ";", "vector_size", "=", "GET_MODE_SIZE", "(", "vector_mode", ")", ";", "reg_size", "=", "GET_MODE_SIZE", "(", "reg_mode", ")", ";", "gcc_assert", "(", "POINTER_TYPE_P", "(", "type", ")", ")", ";", "elem_type", "=", "TREE_TYPE", "(", "type", ")", ";", "nelems", "=", "reg_size", "/", "vector_size", ";", "upper_bound", "=", "build_int_cst", "(", "size_type_node", ",", "nelems", "-", "1", ")", ";", "array_type", "=", "build_array_type", "(", "elem_type", ",", "build_index_type", "(", "upper_bound", ")", ")", ";", "return", "fold_build2", "(", "MEM_REF", ",", "array_type", ",", "exp", ",", "build_int_cst", "(", "build_pointer_type", "(", "array_type", ")", ",", "0", ")", ")", ";", "}", ""], "natrual_language": ["EXP", "is", "a", "pointer", "argument", "to", "a", "vector", "scatter", "store", "intrinsics", ".", "Consider", "the", "following", "example", ":", "VSTRW", "<", "v", ">", ".", "<", "dt", ">", "Qd", ",", "[", "Qm", "{", ",", "#", "+/-", "<", "imm", ">", "}", "]", "!", "When", "<", "Qm", ">", "used", "as", "the", "base", "register", "for", "the", "target", "address", ",", "this", "function", "is", "used", "to", "derive", "and", "return", "an", "expression", "for", "the", "accessed", "memory", ".", "The", "intrinsic", "function", "operates", "on", "a", "block", "of", "registers", "that", "has", "mode", "REG_MODE", ".", "This", "block", "contains", "vectors", "of", "type", "TYPE_MODE", ".", "The", "function", "references", "the", "memory", "at", "EXP", "of", "type", "TYPE", "and", "in", "mode", "MEM_MODE", ".", "This", "mode", "may", "be", "BLKmode", "if", "no", "more", "suitable", "mode", "is", "available", "."], "TS_V_token": ["arm", "1", "0"], "File": "arm-builtins", "Func": "mve_dereference_pointer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44398, "Length": 110}
{"ground_truth": ["", "static", "tree", "neon_dereference_pointer", "(", "tree", "exp", ",", "tree", "type", ",", "machine_mode", "mem_mode", ",", "machine_mode", "reg_mode", ",", "machine_mode", "vector_mode", ")", "{", "HOST_WIDE_INT", "reg_size", ",", "vector_size", ",", "nvectors", ",", "nelems", ";", "tree", "elem_type", ",", "upper_bound", ",", "array_type", ";", "reg_size", "=", "GET_MODE_SIZE", "(", "reg_mode", ")", ";", "vector_size", "=", "GET_MODE_SIZE", "(", "vector_mode", ")", ";", "gcc_assert", "(", "reg_size", "%", "vector_size", "==", "0", ")", ";", "nvectors", "=", "reg_size", "/", "vector_size", ";", "gcc_assert", "(", "POINTER_TYPE_P", "(", "type", ")", ")", ";", "elem_type", "=", "TREE_TYPE", "(", "type", ")", ";", "if", "(", "mem_mode", "==", "reg_mode", ")", "nelems", "=", "vector_size", "*", "nvectors", "/", "int_size_in_bytes", "(", "elem_type", ")", ";", "else", "nelems", "=", "nvectors", ";", "upper_bound", "=", "build_int_cst", "(", "size_type_node", ",", "nelems", "-", "1", ")", ";", "array_type", "=", "build_array_type", "(", "elem_type", ",", "build_index_type", "(", "upper_bound", ")", ")", ";", "return", "fold_build2", "(", "MEM_REF", ",", "array_type", ",", "exp", ",", "build_int_cst", "(", "build_pointer_type", "(", "array_type", ")", ",", "0", ")", ")", ";", "}", ""], "natrual_language": ["EXP", "is", "a", "pointer", "argument", "to", "a", "Neon", "load", "or", "store", "intrinsic", ".", "Derive", "and", "return", "an", "expression", "for", "the", "accessed", "memory", ".", "The", "intrinsic", "function", "operates", "on", "a", "block", "of", "registers", "that", "has", "mode", "REG_MODE", ".", "This", "block", "contains", "vectors", "of", "type", "TYPE_MODE", ".", "The", "function", "references", "the", "memory", "at", "EXP", "of", "type", "TYPE", "and", "in", "mode", "MEM_MODE", ";", "this", "mode", "may", "be", "BLKmode", "if", "no", "more", "suitable", "mode", "is", "available", "."], "TS_V_token": ["arm", "0", "1", "0"], "File": "arm-builtins", "Func": "neon_dereference_pointer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44399, "Length": 146}
{"ground_truth": ["", "static", "rtx", "safe_vector_operand", "(", "rtx", "x", ",", "machine_mode", "mode", ")", "{", "if", "(", "x", "!=", "const0_rtx", ")", "return", "x", ";", "x", "=", "gen_reg_rtx", "(", "mode", ")", ";", "emit_insn", "(", "gen_iwmmxt_clrdi", "(", "mode", "==", "DImode", "?", "x", ":", "gen_rtx_SUBREG", "(", "DImode", ",", "x", ",", "0", ")", ")", ")", ";", "return", "x", ";", "}", ""], "natrual_language": ["Errors", "in", "the", "source", "file", "can", "cause", "expand_expr", "to", "return", "const0_rtx", "where", "we", "expect", "a", "vector", ".", "To", "avoid", "crashing", ",", "use", "one", "of", "the", "vector", "clear", "instructions", "."], "TS_V_token": ["arm", "0"], "File": "arm-builtins", "Func": "safe_vector_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44400, "Length": 52}
{"ground_truth": ["", "static", "bool", "arm_pragma_target_parse", "(", "tree", "args", ",", "tree", "pop_target", ")", "{", "tree", "prev_tree", "=", "target_option_current_node", ";", "tree", "cur_tree", ";", "struct", "cl_target_option", "*", "prev_opt", ";", "struct", "cl_target_option", "*", "cur_opt", ";", "if", "(", "!", "args", ")", "{", "cur_tree", "=", "(", "(", "pop_target", ")", "?", "pop_target", ":", "target_option_default_node", ")", ";", "cl_target_option_restore", "(", "&", "global_options", ",", "&", "global_options_set", ",", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ")", ";", "}", "else", "{", "cur_tree", "=", "arm_valid_target_attribute_tree", "(", "args", ",", "&", "global_options", ",", "&", "global_options_set", ")", ";", "if", "(", "cur_tree", "==", "NULL_TREE", ")", "{", "cl_target_option_restore", "(", "&", "global_options", ",", "&", "global_options_set", ",", "TREE_TARGET_OPTION", "(", "prev_tree", ")", ")", ";", "return", "false", ";", "}", "target_option_current_node", "=", "cur_tree", ";", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ",", "&", "global_options_set", ",", "false", ")", ";", "}", "prev_opt", "=", "TREE_TARGET_OPTION", "(", "prev_tree", ")", ";", "cur_opt", "=", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ";", "gcc_assert", "(", "prev_opt", ")", ";", "gcc_assert", "(", "cur_opt", ")", ";", "if", "(", "cur_opt", "!=", "prev_opt", ")", "{", "cpp_options", "*", "cpp_opts", "=", "cpp_get_options", "(", "parse_in", ")", ";", "unsigned", "char", "saved_warn_unused_macros", "=", "cpp_opts", "->", "warn_unused_macros", ";", "cpp_opts", "->", "warn_unused_macros", "=", "0", ";", "gcc_assert", "(", "cur_opt", "->", "x_target_flags", "==", "target_flags", ")", ";", "tree", "acond_macro", "=", "get_identifier", "(", "\"__ARM_NEON_FP\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "acond_macro", "=", "get_identifier", "(", "\"__ARM_FP\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "acond_macro", "=", "get_identifier", "(", "\"__ARM_FEATURE_LDREX\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "arm_cpu_builtins", "(", "parse_in", ")", ";", "cpp_opts", "->", "warn_unused_macros", "=", "saved_warn_unused_macros", ";", "arm_reset_previous_fndecl", "(", ")", ";", "if", "(", "cur_tree", "==", "target_option_default_node", ")", "save_restore_target_globals", "(", "cur_tree", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Hook", "to", "validate", "the", "current", "#", "pragma", "GCC", "target", "and", "set", "the", "arch", "custom", "mode", "state", ".", "If", "ARGS", "is", "NULL", ",", "then", "POP_TARGET", "is", "used", "to", "reset", "the", "options", "."], "TS_V_token": ["arm", "0", "\"__ARM_NEON_FP\"", "\"__ARM_FP\"", "\"__ARM_FEATURE_LDREX\""], "File": "arm-c1", "Func": "arm_pragma_target_parse", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44401, "Length": 266}
{"ground_truth": ["", "static", "bool", "arm_pragma_target_parse", "(", "tree", "args", ",", "tree", "pop_target", ")", "{", "tree", "prev_tree", "=", "target_option_current_node", ";", "tree", "cur_tree", ";", "struct", "cl_target_option", "*", "prev_opt", ";", "struct", "cl_target_option", "*", "cur_opt", ";", "if", "(", "!", "args", ")", "{", "cur_tree", "=", "(", "(", "pop_target", ")", "?", "pop_target", ":", "target_option_default_node", ")", ";", "cl_target_option_restore", "(", "&", "global_options", ",", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ")", ";", "}", "else", "{", "cur_tree", "=", "arm_valid_target_attribute_tree", "(", "args", ",", "&", "global_options", ",", "&", "global_options_set", ")", ";", "if", "(", "cur_tree", "==", "NULL_TREE", ")", "{", "cl_target_option_restore", "(", "&", "global_options", ",", "TREE_TARGET_OPTION", "(", "prev_tree", ")", ")", ";", "return", "false", ";", "}", "target_option_current_node", "=", "cur_tree", ";", "}", "prev_opt", "=", "TREE_TARGET_OPTION", "(", "prev_tree", ")", ";", "cur_opt", "=", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ";", "gcc_assert", "(", "prev_opt", ")", ";", "gcc_assert", "(", "cur_opt", ")", ";", "if", "(", "cur_opt", "!=", "prev_opt", ")", "{", "cpp_options", "*", "cpp_opts", "=", "cpp_get_options", "(", "parse_in", ")", ";", "unsigned", "char", "saved_warn_unused_macros", "=", "cpp_opts", "->", "warn_unused_macros", ";", "cpp_opts", "->", "warn_unused_macros", "=", "0", ";", "gcc_assert", "(", "cur_opt", "->", "x_target_flags", "==", "target_flags", ")", ";", "tree", "acond_macro", "=", "get_identifier", "(", "\"__ARM_NEON_FP\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "acond_macro", "=", "get_identifier", "(", "\"__ARM_FP\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "acond_macro", "=", "get_identifier", "(", "\"__ARM_FEATURE_LDREX\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "arm_cpu_builtins", "(", "parse_in", ")", ";", "cpp_opts", "->", "warn_unused_macros", "=", "saved_warn_unused_macros", ";", "arm_reset_previous_fndecl", "(", ")", ";", "if", "(", "cur_tree", "==", "target_option_default_node", ")", "save_restore_target_globals", "(", "cur_tree", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Hook", "to", "validate", "the", "current", "#", "pragma", "GCC", "target", "and", "set", "the", "arch", "custom", "mode", "state", ".", "If", "ARGS", "is", "NULL", ",", "then", "POP_TARGET", "is", "used", "to", "reset", "the", "options", "."], "TS_V_token": ["arm", "0", "\"__ARM_NEON_FP\"", "\"__ARM_FP\"", "\"__ARM_FEATURE_LDREX\""], "File": "arm-c3", "Func": "arm_pragma_target_parse", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44402, "Length": 244}
{"ground_truth": ["", "void", "arm_register_target_pragmas", "(", "void", ")", "{", "targetm", ".", "target_option", ".", "pragma_parse", "=", "arm_pragma_target_parse", ";", "REGISTER_SUBTARGET_PRAGMAS", "(", ")", ";", "}", ""], "natrual_language": ["Register", "target", "pragmas", ".", "We", "need", "to", "add", "the", "hook", "for", "parsing", "#", "pragma", "GCC", "option", "here", "rather", "than", "in", "arm.cc", "since", "it", "will", "pull", "in", "various", "preprocessor", "functions", ",", "and", "those", "are", "not", "present", "in", "languages", "like", "fortran", "without", "a", "preprocessor", "."], "TS_V_token": ["arm"], "File": "arm-c3", "Func": "arm_register_target_pragmas", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44403, "Length": 19}
{"ground_truth": ["", "void", "arm_lang_object_attributes_init", "(", "void", ")", "{", "arm_lang_output_object_attributes_hook", "=", "arm_output_c_attributes", ";", "}", ""], "natrual_language": ["Setup", "so", "that", "common", "code", "calls", "arm_output_c_attributes", "."], "TS_V_token": ["arm"], "File": "arm-c", "Func": "arm_lang_object_attributes_init", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44404, "Length": 11}
{"ground_truth": ["", "static", "void", "arm_output_c_attributes", "(", "void", ")", "{", "int", "wchar_size", "=", "(", "int", ")", "(", "TYPE_PRECISION", "(", "wchar_type_node", ")", "/", "BITS_PER_UNIT", ")", ";", "arm_emit_eabi_attribute", "(", "\"Tag_ABI_PCS_wchar_t\"", ",", "18", ",", "wchar_size", ")", ";", "}", ""], "natrual_language": ["Output", "C", "specific", "EABI", "object", "attributes", ".", "These", "can", "not", "be", "done", "in", "arm.c", "because", "they", "require", "information", "from", "the", "C", "frontend", "."], "TS_V_token": ["arm", "\"Tag_ABI_PCS_wchar_t\"", "18"], "File": "arm-c", "Func": "arm_output_c_attributes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44405, "Length": 32}
{"ground_truth": ["", "static", "void", "arm_pragma_arm", "(", "cpp_reader", "*", ")", "{", "tree", "x", ";", "if", "(", "pragma_lex", "(", "&", "x", ")", "!=", "CPP_STRING", ")", "{", "error", "(", "\"%<#pragma GCC arm%> requires a string parameter\"", ")", ";", "return", ";", "}", "const", "char", "*", "name", "=", "TREE_STRING_POINTER", "(", "x", ")", ";", "if", "(", "strcmp", "(", "name", ",", "\"arm_mve_types.h\"", ")", "==", "0", ")", "arm_mve", "::", "handle_arm_mve_types_h", "(", ")", ";", "else", "error", "(", "\"unknown %<#pragma GCC arm%> option %qs\"", ",", "name", ")", ";", "}", ""], "natrual_language": ["Implement", "``", "#", "pragma", "GCC", "arm", "''", "."], "TS_V_token": ["arm", "\"%<#pragma GCC arm%> requires a string parameter\"", "\"arm_mve_types.h\"", "0", "arm_mve::handle_arm_mve_types_h", "\"unknown %<#pragma GCC arm%> option %qs\""], "File": "arm-c", "Func": "arm_pragma_arm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44406, "Length": 66}
{"ground_truth": ["", "static", "bool", "arm_pragma_target_parse", "(", "tree", "args", ",", "tree", "pop_target", ")", "{", "tree", "prev_tree", "=", "target_option_current_node", ";", "tree", "cur_tree", ";", "struct", "cl_target_option", "*", "prev_opt", ";", "struct", "cl_target_option", "*", "cur_opt", ";", "if", "(", "!", "args", ")", "{", "cur_tree", "=", "(", "(", "pop_target", ")", "?", "pop_target", ":", "target_option_default_node", ")", ";", "cl_target_option_restore", "(", "&", "global_options", ",", "&", "global_options_set", ",", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ")", ";", "}", "else", "{", "cur_tree", "=", "arm_valid_target_attribute_tree", "(", "args", ",", "&", "global_options", ",", "&", "global_options_set", ")", ";", "if", "(", "cur_tree", "==", "NULL_TREE", ")", "{", "cl_target_option_restore", "(", "&", "global_options", ",", "&", "global_options_set", ",", "TREE_TARGET_OPTION", "(", "prev_tree", ")", ")", ";", "return", "false", ";", "}", "target_option_current_node", "=", "cur_tree", ";", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ",", "false", ")", ";", "arm_option_reconfigure_globals", "(", ")", ";", "}", "prev_opt", "=", "TREE_TARGET_OPTION", "(", "prev_tree", ")", ";", "cur_opt", "=", "TREE_TARGET_OPTION", "(", "cur_tree", ")", ";", "gcc_assert", "(", "prev_opt", ")", ";", "gcc_assert", "(", "cur_opt", ")", ";", "if", "(", "cur_opt", "!=", "prev_opt", ")", "{", "cpp_options", "*", "cpp_opts", "=", "cpp_get_options", "(", "parse_in", ")", ";", "unsigned", "char", "saved_warn_unused_macros", "=", "cpp_opts", "->", "warn_unused_macros", ";", "cpp_opts", "->", "warn_unused_macros", "=", "0", ";", "gcc_assert", "(", "cur_opt", "->", "x_target_flags", "==", "target_flags", ")", ";", "tree", "acond_macro", "=", "get_identifier", "(", "\"__ARM_NEON_FP\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "acond_macro", "=", "get_identifier", "(", "\"__ARM_FP\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "acond_macro", "=", "get_identifier", "(", "\"__ARM_FEATURE_LDREX\"", ")", ";", "C_CPP_HASHNODE", "(", "acond_macro", ")", "->", "flags", "|=", "NODE_CONDITIONAL", ";", "cpp_force_token_locations", "(", "parse_in", ",", "BUILTINS_LOCATION", ")", ";", "arm_cpu_builtins", "(", "parse_in", ")", ";", "cpp_stop_forcing_token_locations", "(", "parse_in", ")", ";", "cpp_opts", "->", "warn_unused_macros", "=", "saved_warn_unused_macros", ";", "arm_reset_previous_fndecl", "(", ")", ";", "if", "(", "cur_tree", "==", "target_option_default_node", ")", "save_restore_target_globals", "(", "cur_tree", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Hook", "to", "validate", "the", "current", "#", "pragma", "GCC", "target", "and", "set", "the", "arch", "custom", "mode", "state", ".", "If", "ARGS", "is", "NULL", ",", "then", "POP_TARGET", "is", "used", "to", "reset", "the", "options", "."], "TS_V_token": ["arm", "0", "\"__ARM_NEON_FP\"", "\"__ARM_FP\"", "\"__ARM_FEATURE_LDREX\""], "File": "arm-c", "Func": "arm_pragma_target_parse", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44407, "Length": 279}
{"ground_truth": ["", "void", "arm_register_target_pragmas", "(", "void", ")", "{", "targetm", ".", "target_option", ".", "pragma_parse", "=", "arm_pragma_target_parse", ";", "targetm", ".", "resolve_overloaded_builtin", "=", "arm_resolve_overloaded_builtin", ";", "c_register_pragma", "(", "\"GCC\"", ",", "\"arm\"", ",", "arm_pragma_arm", ")", ";", "REGISTER_SUBTARGET_PRAGMAS", "(", ")", ";", "}", ""], "natrual_language": ["Register", "target", "pragmas", ".", "We", "need", "to", "add", "the", "hook", "for", "parsing", "#", "pragma", "GCC", "option", "here", "rather", "than", "in", "arm.cc", "since", "it", "will", "pull", "in", "various", "preprocessor", "functions", ",", "and", "those", "are", "not", "present", "in", "languages", "like", "fortran", "without", "a", "preprocessor", "."], "TS_V_token": ["arm", "\"GCC\"", "\"arm\""], "File": "arm-c", "Func": "arm_register_target_pragmas", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44408, "Length": 34}
{"ground_truth": ["", "tree", "arm_resolve_overloaded_builtin", "(", "location_t", "loc", ",", "tree", "fndecl", ",", "void", "*", "arglist", ")", "{", "if", "(", "arm_describe_resolver", "(", "fndecl", ")", "==", "arm_cde_resolver", ")", "return", "arm_resolve_cde_builtin", "(", "loc", ",", "fndecl", ",", "arglist", ")", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Implement", "TARGET_RESOLVE_OVERLOADED_BUILTIN", ".", "This", "is", "currently", "only", "used", "for", "the", "MVE", "related", "builtins", "for", "the", "CDE", "extension", ".", "Here", "we", "ensure", "the", "type", "of", "arguments", "is", "such", "that", "the", "size", "is", "correct", ",", "and", "then", "return", "a", "tree", "that", "describes", "the", "same", "function", "call", "but", "with", "the", "relevant", "types", "cast", "as", "necessary", "."], "TS_V_token": ["arm"], "File": "arm-c", "Func": "arm_resolve_overloaded_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44409, "Length": 37}
{"ground_truth": ["", "static", "void", "def_or_undef_macro", "(", "struct", "cpp_reader", "*", "pfile", ",", "const", "char", "*", "name", ",", "bool", "def_p", ")", "{", "if", "(", "def_p", ")", "cpp_define", "(", "pfile", ",", "name", ")", ";", "else", "cpp_undef", "(", "pfile", ",", "name", ")", ";", "}", ""], "natrual_language": ["Define", "or", "undefine", "macros", "based", "on", "the", "current", "target", ".", "If", "the", "user", "does", "#", "pragma", "GCC", "target", ",", "we", "need", "to", "adjust", "the", "macros", "dynamically", "."], "TS_V_token": ["arm"], "File": "arm-c", "Func": "def_or_undef_macro", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44410, "Length": 38}
{"ground_truth": ["", "static", "tree", "arm_d_handle_target_float_abi", "(", "void", ")", "{", "const", "char", "*", "abi", ";", "switch", "(", "arm_float_abi", ")", "{", "case", "ARM_FLOAT_ABI_HARD", ":", "abi", "=", "\"hard\"", ";", "break", ";", "case", "ARM_FLOAT_ABI_SOFT", ":", "abi", "=", "\"soft\"", ";", "break", ";", "case", "ARM_FLOAT_ABI_SOFTFP", ":", "abi", "=", "\"softfp\"", ";", "break", ";", "default", ":", "abi", "=", "\"\"", ";", "break", ";", "}", "return", "build_string_literal", "(", "strlen", "(", "abi", ")", "+", "1", ",", "abi", ")", ";", "}", ""], "natrual_language": ["Handle", "a", "call", "to", "`", "__traits", "(", "getTargetInfo", ",", "``", "floatAbi", "''", ")", "'", "."], "TS_V_token": ["arm", "\"hard\"", "\"soft\"", "\"softfp\"", "\"\"", "1"], "File": "arm-d", "Func": "arm_d_handle_target_float_abi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44411, "Length": 67}
{"ground_truth": ["", "void", "arm_d_register_target_info", "(", "void", ")", "{", "const", "struct", "d_target_info_spec", "handlers", "[", "]", "=", "{", "{", "\"floatAbi\"", ",", "arm_d_handle_target_float_abi", "}", ",", "{", "NULL", ",", "NULL", "}", ",", "}", ";", "d_add_target_info_handlers", "(", "handlers", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_D_REGISTER_CPU_TARGET_INFO", "."], "TS_V_token": ["arm", "\"floatAbi\""], "File": "arm-d", "Func": "arm_d_register_target_info", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44412, "Length": 34}
{"ground_truth": ["", "void", "arm_d_target_versions", "(", "void", ")", "{", "d_add_builtin_version", "(", "\"ARM\"", ")", ";", "if", "(", "TARGET_THUMB", "||", "TARGET_THUMB2", ")", "{", "d_add_builtin_version", "(", "\"Thumb\"", ")", ";", "d_add_builtin_version", "(", "\"ARM_Thumb\"", ")", ";", "}", "if", "(", "TARGET_HARD_FLOAT_ABI", ")", "d_add_builtin_version", "(", "\"ARM_HardFloat\"", ")", ";", "else", "{", "if", "(", "TARGET_SOFT_FLOAT", ")", "d_add_builtin_version", "(", "\"ARM_SoftFloat\"", ")", ";", "else", "if", "(", "TARGET_HARD_FLOAT", ")", "d_add_builtin_version", "(", "\"ARM_SoftFP\"", ")", ";", "}", "if", "(", "TARGET_SOFT_FLOAT", ")", "d_add_builtin_version", "(", "\"D_SoftFloat\"", ")", ";", "else", "if", "(", "TARGET_HARD_FLOAT", ")", "d_add_builtin_version", "(", "\"D_HardFloat\"", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_D_CPU_VERSIONS", "for", "ARM", "targets", "."], "TS_V_token": ["arm", "\"ARM\"", "\"Thumb\"", "\"ARM_Thumb\"", "\"ARM_HardFloat\"", "\"ARM_SoftFloat\"", "\"ARM_SoftFP\"", "\"D_SoftFloat\"", "\"D_HardFloat\""], "File": "arm-d", "Func": "arm_d_target_versions", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44413, "Length": 80}
{"ground_truth": ["", "static", "tree", "arm_mve_type_for_scalar_type", "(", "tree", "eltype", ")", "{", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "__TYPE_FINAL", ";", "++", "i", ")", "if", "(", "arm_simd_types", "[", "i", "]", ".", "eltype", "==", "eltype", "&&", "GET_MODE_SIZE", "(", "arm_simd_types", "[", "i", "]", ".", "mode", ")", "==", "16", ")", "return", "arm_simd_types", "[", "i", "]", ".", "itype", ";", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Return", "the", "MVE", "abi", "type", "with", "element", "of", "type", "TYPE", "."], "TS_V_token": ["arm", "0", "16"], "File": "arm-mve-builtins", "Func": "arm_mve_type_for_scalar_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44414, "Length": 59}
{"ground_truth": ["", "void", "handle_arm_mve_types_h", "(", ")", "{", "if", "(", "handle_arm_mve_types_p", ")", "{", "error", "(", "\"duplicate definition of %qs\"", ",", "\"arm_mve_types.h\"", ")", ";", "return", ";", "}", "handle_arm_mve_types_p", "=", "true", ";", "if", "(", "!", "TARGET_HAVE_MVE", ")", "{", "error", "(", "\"this definition requires the MVE ISA extension\"", ")", ";", "return", ";", "}", "register_builtin_types", "(", ")", ";", "for", "(", "unsigned", "int", "type_i", "=", "0", ";", "type_i", "<", "NUM_VECTOR_TYPES", ";", "++", "type_i", ")", "{", "vector_type_index", "type", "=", "vector_type_index", "(", "type_i", ")", ";", "register_vector_type", "(", "type", ")", ";", "if", "(", "type_i", "!=", "VECTOR_TYPE_mve_pred16_t", ")", "register_builtin_tuple_types", "(", "type", ")", ";", "}", "}", ""], "natrual_language": ["Implement", "#", "pragma", "GCC", "arm", "``", "arm_mve_types.h", "''", "."], "TS_V_token": ["arm", "\"duplicate definition of %qs\"", "\"arm_mve_types.h\"", "\"this definition requires the MVE ISA extension\"", "0"], "File": "arm-mve-builtins", "Func": "handle_arm_mve_types_h", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44415, "Length": 84}
{"ground_truth": ["", "static", "void", "register_builtin_tuple_types", "(", "vector_type_index", "type", ")", "{", "const", "vector_type_info", "*", "info", "=", "&", "vector_types", "[", "type", "]", ";", "if", "(", "scalar_types", "[", "type", "]", "==", "boolean_type_node", "||", "(", "info", "->", "requires_float", "&&", "!", "TARGET_HAVE_MVE_FLOAT", ")", ")", "return", ";", "const", "char", "*", "vector_type_name", "=", "info", "->", "acle_name", ";", "char", "buffer", "[", "sizeof", "(", "\"float32x4x2_t\"", ")", "]", ";", "for", "(", "unsigned", "int", "num_vectors", "=", "2", ";", "num_vectors", "<=", "4", ";", "num_vectors", "+=", "2", ")", "{", "snprintf", "(", "buffer", ",", "sizeof", "(", "buffer", ")", ",", "\"%.*sx%d_t\"", ",", "(", "int", ")", "strlen", "(", "vector_type_name", ")", "-", "2", ",", "vector_type_name", ",", "num_vectors", ")", ";", "tree", "vectype", "=", "acle_vector_types", "[", "0", "]", "[", "type", "]", ";", "tree", "arrtype", "=", "build_array_type_nelts", "(", "vectype", ",", "num_vectors", ")", ";", "gcc_assert", "(", "TYPE_MODE_RAW", "(", "arrtype", ")", "==", "TYPE_MODE", "(", "arrtype", ")", ")", ";", "tree", "field", "=", "build_decl", "(", "input_location", ",", "FIELD_DECL", ",", "get_identifier", "(", "\"val\"", ")", ",", "arrtype", ")", ";", "tree", "t", "=", "lang_hooks", ".", "types", ".", "simulate_record_decl", "(", "input_location", ",", "buffer", ",", "make_array_slice", "(", "&", "field", ",", "1", ")", ")", ";", "gcc_assert", "(", "TYPE_MODE_RAW", "(", "t", ")", "==", "TYPE_MODE", "(", "t", ")", ")", ";", "acle_vector_types", "[", "num_vectors", ">>", "1", "]", "[", "type", "]", "=", "TREE_TYPE", "(", "t", ")", ";", "}", "}", ""], "natrual_language": ["Register", "tuple", "type", "TYPE", "with", "NUM_VECTORS", "arity", "under", "its", "arm_mve_types.h", "name", "."], "TS_V_token": ["arm", "\"float32x4x2_t\"", "2", "4", "2", "\"%.*sx%d_t\"", "2", "0", "\"val\"", "1", "1"], "File": "arm-mve-builtins", "Func": "register_builtin_tuple_types", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44416, "Length": 203}
{"ground_truth": ["", "static", "void", "register_builtin_types", "(", ")", "{", "scalar_types", "[", "VECTOR_TYPE_", "##", "ACLE_NAME", "]", "=", "SCALAR_TYPE", ";", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "NUM_VECTOR_TYPES", ";", "++", "i", ")", "{", "if", "(", "vector_types", "[", "i", "]", ".", "requires_float", "&&", "!", "TARGET_HAVE_MVE_FLOAT", ")", "continue", ";", "tree", "eltype", "=", "scalar_types", "[", "i", "]", ";", "tree", "vectype", ";", "if", "(", "eltype", "==", "boolean_type_node", ")", "{", "vectype", "=", "get_typenode_from_name", "(", "UINT16_TYPE", ")", ";", "gcc_assert", "(", "GET_MODE_SIZE", "(", "TYPE_MODE", "(", "vectype", ")", ")", "==", "2", ")", ";", "}", "else", "{", "vectype", "=", "arm_mve_type_for_scalar_type", "(", "eltype", ")", ";", "gcc_assert", "(", "VECTOR_MODE_P", "(", "TYPE_MODE", "(", "vectype", ")", ")", "&&", "GET_MODE_SIZE", "(", "TYPE_MODE", "(", "vectype", ")", ")", "==", "16", ")", ";", "}", "abi_vector_types", "[", "i", "]", "=", "vectype", ";", "}", "}", ""], "natrual_language": ["Register", "the", "built-in", "RVV", "ABI", "types", ",", "such", "as", "__rvv_int32m1_t", "."], "TS_V_token": ["arm", "0", "2", "16"], "File": "arm-mve-builtins", "Func": "register_builtin_types", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44417, "Length": 124}
{"ground_truth": ["", "static", "void", "register_vector_type", "(", "vector_type_index", "type", ")", "{", "if", "(", "vector_types", "[", "type", "]", ".", "requires_float", "&&", "!", "TARGET_HAVE_MVE_FLOAT", ")", "return", ";", "tree", "vectype", "=", "abi_vector_types", "[", "type", "]", ";", "tree", "id", "=", "get_identifier", "(", "vector_types", "[", "type", "]", ".", "acle_name", ")", ";", "tree", "decl", "=", "build_decl", "(", "input_location", ",", "TYPE_DECL", ",", "id", ",", "vectype", ")", ";", "decl", "=", "lang_hooks", ".", "decls", ".", "pushdecl", "(", "decl", ")", ";", "if", "(", "decl", "&&", "TREE_CODE", "(", "decl", ")", "==", "TYPE_DECL", "&&", "TREE_TYPE", "(", "decl", ")", "!=", "error_mark_node", "&&", "TYPE_MAIN_VARIANT", "(", "TREE_TYPE", "(", "decl", ")", ")", "==", "vectype", ")", "vectype", "=", "TREE_TYPE", "(", "decl", ")", ";", "acle_vector_types", "[", "0", "]", "[", "type", "]", "=", "vectype", ";", "}", ""], "natrual_language": ["Register", "vector", "type", "TYPE", "under", "its", "risv_vector.h", "name", "."], "TS_V_token": ["arm", "0"], "File": "arm-mve-builtins", "Func": "register_vector_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44418, "Length": 114}
{"ground_truth": ["", "bool", "aarch_bti_enabled", "(", "void", ")", "{", "return", "aarch_enable_bti", "!=", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "Branch", "Target", "Identification", "Mechanism", "is", "enabled", "."], "TS_V_token": ["arm", "0"], "File": "arm1", "Func": "aarch_bti_enabled", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44419, "Length": 12}
{"ground_truth": ["", "bool", "aarch_bti_j_insn_p", "(", "rtx_insn", "*", "insn", ")", "{", "if", "(", "!", "insn", "||", "!", "INSN_P", "(", "insn", ")", ")", "return", "false", ";", "rtx", "pat", "=", "PATTERN", "(", "insn", ")", ";", "return", "GET_CODE", "(", "pat", ")", "==", "UNSPEC_VOLATILE", "&&", "XINT", "(", "pat", ",", "1", ")", "==", "VUNSPEC_BTI_NOP", ";", "}", ""], "natrual_language": ["Check", "if", "INSN", "is", "a", "BTI", "J", "insn", "."], "TS_V_token": ["arm", "1"], "File": "arm1", "Func": "aarch_bti_j_insn_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44420, "Length": 48}
{"ground_truth": ["", "bool", "aarch_pac_insn_p", "(", "rtx", "x", ")", "{", "if", "(", "!", "x", "||", "!", "INSN_P", "(", "x", ")", ")", "return", "false", ";", "rtx", "pat", "=", "PATTERN", "(", "x", ")", ";", "if", "(", "GET_CODE", "(", "pat", ")", "==", "SET", ")", "{", "rtx", "tmp", "=", "XEXP", "(", "pat", ",", "1", ")", ";", "if", "(", "tmp", "&&", "(", "(", "GET_CODE", "(", "tmp", ")", "==", "UNSPEC", "&&", "XINT", "(", "tmp", ",", "1", ")", "==", "UNSPEC_PAC_NOP", ")", "||", "(", "GET_CODE", "(", "tmp", ")", "==", "UNSPEC_VOLATILE", "&&", "XINT", "(", "tmp", ",", "1", ")", "==", "VUNSPEC_PACBTI_NOP", ")", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Check", "if", "X", "(", "or", "any", "sub-rtx", "of", "X", ")", "is", "a", "PACIASP/PACIBSP", "instruction", "."], "TS_V_token": ["arm", "1", "1", "1"], "File": "arm1", "Func": "aarch_pac_insn_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44421, "Length": 99}
{"ground_truth": ["", "static", "unsigned", "arm_add_stmt_cost", "(", "vec_info", "*", "vinfo", ",", "void", "*", "data", ",", "int", "count", ",", "enum", "vect_cost_for_stmt", "kind", ",", "struct", "_stmt_vec_info", "*", "stmt_info", ",", "tree", "vectype", ",", "int", "misalign", ",", "enum", "vect_cost_model_location", "where", ")", "{", "unsigned", "*", "cost", "=", "(", "unsigned", "*", ")", "data", ";", "unsigned", "retval", "=", "0", ";", "if", "(", "flag_vect_cost_model", ")", "{", "int", "stmt_cost", "=", "arm_builtin_vectorization_cost", "(", "kind", ",", "vectype", ",", "misalign", ")", ";", "if", "(", "where", "==", "vect_body", "&&", "stmt_info", "&&", "stmt_in_inner_loop_p", "(", "vinfo", ",", "stmt_info", ")", ")", "count", "*=", "50", ";", "retval", "=", "(", "unsigned", ")", "(", "count", "*", "stmt_cost", ")", ";", "cost", "[", "where", "]", "+=", "retval", ";", "}", "return", "retval", ";", "}", ""], "natrual_language": ["Implement", "targetm.vectorize.add_stmt_cost", "."], "TS_V_token": ["arm", "0", "50"], "File": "arm1", "Func": "arm_add_stmt_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44422, "Length": 109}
{"ground_truth": ["", "static", "bool", "arm_bfi_1_p", "(", "rtx", "op0", ",", "rtx", "op1", ",", "rtx", "*", "sub0", ",", "rtx", "*", "sub1", ")", "{", "unsigned", "HOST_WIDE_INT", "const1", ";", "unsigned", "HOST_WIDE_INT", "const2", "=", "0", ";", "if", "(", "!", "CONST_INT_P", "(", "XEXP", "(", "op0", ",", "1", ")", ")", ")", "return", "false", ";", "const1", "=", "UINTVAL", "(", "XEXP", "(", "op0", ",", "1", ")", ")", ";", "if", "(", "!", "CONST_INT_P", "(", "XEXP", "(", "op1", ",", "1", ")", ")", "||", "~", "UINTVAL", "(", "XEXP", "(", "op1", ",", "1", ")", ")", "!=", "const1", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "op0", ",", "0", ")", ")", "==", "ASHIFT", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "op0", ",", "0", ")", ",", "1", ")", ")", ")", "{", "const2", "=", "UINTVAL", "(", "XEXP", "(", "XEXP", "(", "op0", ",", "0", ")", ",", "1", ")", ")", ";", "*", "sub0", "=", "XEXP", "(", "XEXP", "(", "op0", ",", "0", ")", ",", "0", ")", ";", "}", "else", "*", "sub0", "=", "XEXP", "(", "op0", ",", "0", ")", ";", "if", "(", "const2", ">=", "GET_MODE_BITSIZE", "(", "GET_MODE", "(", "op0", ")", ")", ")", "return", "false", ";", "*", "sub1", "=", "XEXP", "(", "op1", ",", "0", ")", ";", "return", "exact_log2", "(", "const1", "+", "(", "HOST_WIDE_INT_1U", "<<", "const2", ")", ")", ">=", "0", ";", "}", ""], "natrual_language": ["Helper", "for", "arm_bfi_p", "."], "TS_V_token": ["arm", "0", "1", "1", "1", "1", "0", "0", "1", "0", "1", "0", "0", "0", "0", "0"], "File": "arm1", "Func": "arm_bfi_1_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44423, "Length": 200}
{"ground_truth": ["", "static", "bool", "arm_bfi_p", "(", "rtx", "x", ",", "rtx", "*", "sub0", ",", "rtx", "*", "sub1", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "!=", "IOR", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "!=", "AND", "||", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "!=", "AND", ")", "return", "false", ";", "return", "(", "arm_bfi_1_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "XEXP", "(", "x", ",", "1", ")", ",", "sub0", ",", "sub1", ")", "||", "arm_bfi_1_p", "(", "XEXP", "(", "x", ",", "1", ")", ",", "XEXP", "(", "x", ",", "0", ")", ",", "sub1", ",", "sub0", ")", ")", ";", "}", ""], "natrual_language": ["Recognize", "a", "BFI", "idiom", ".", "Helper", "for", "arm_rtx_costs_internal", ".", "The", "format", "looks", "something", "like", ":", "(", "IOR", "(", "AND", "(", "reg1", ")", "(", "~const1", ")", ")", "(", "AND", "(", "ASHIFT", "(", "reg2", ")", "(", "const2", ")", ")", "(", "const1", ")", ")", ")", "where", "const1", "is", "a", "consecutive", "sequence", "of", "1-bits", "with", "the", "least-significant", "non-zero", "bit", "starting", "at", "bit", "position", "const2", ".", "If", "const2", "is", "zero", ",", "then", "the", "shift", "will", "not", "appear", "at", "all", ",", "due", "to", "canonicalization", ".", "The", "two", "arms", "of", "the", "IOR", "expression", "may", "be", "flipped", "."], "TS_V_token": ["arm", "0", "1", "0", "1", "1", "0"], "File": "arm1", "Func": "arm_bfi_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44424, "Length": 103}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_core_reg_mask", "(", "void", ")", "{", "unsigned", "int", "save_reg_mask", "=", "0", ";", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "TARGET_ARM", ")", "save_reg_mask", "|=", "(", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ")", "|", "(", "1", "<<", "IP_REGNUM", ")", "|", "(", "1", "<<", "LR_REGNUM", ")", "|", "(", "1", "<<", "PC_REGNUM", ")", ";", "save_reg_mask", "|=", "arm_compute_save_reg0_reg12_mask", "(", ")", ";", "if", "(", "arm_current_function_pac_enabled_p", "(", ")", ")", "save_reg_mask", "|=", "1", "<<", "IP_REGNUM", ";", "if", "(", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", "||", "(", "save_reg_mask", "&&", "optimize_size", "&&", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_NORMAL", "&&", "!", "crtl", "->", "tail_call_emit", "&&", "!", "crtl", "->", "calls_eh_return", ")", ")", "save_reg_mask", "|=", "1", "<<", "LR_REGNUM", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "save_reg_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "(", "(", "bit_count", "(", "save_reg_mask", ")", "+", "ARM_NUM_INTS", "(", "crtl", "->", "args", ".", "pretend_args_size", "+", "arm_compute_static_chain_stack_bytes", "(", ")", ")", ")", "%", "2", ")", "!=", "0", ")", "{", "for", "(", "reg", "=", "4", ";", "reg", "<=", "12", ";", "reg", "++", ")", "if", "(", "(", "save_reg_mask", "&", "(", "1", "<<", "reg", ")", ")", "==", "0", ")", "break", ";", "if", "(", "reg", "<=", "12", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "else", "{", "cfun", "->", "machine", "->", "sibcall_blocked", "=", "1", ";", "save_reg_mask", "|=", "(", "1", "<<", "3", ")", ";", "}", "}", "if", "(", "TARGET_THUMB2", "&&", "IS_NESTED", "(", "func_type", ")", "&&", "flag_pic", "&&", "(", "save_reg_mask", "&", "THUMB2_WORK_REGS", ")", "==", "0", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "4", ")", ";", "if", "(", "!", "call_used_or_fixed_reg_p", "(", "reg", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "core", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", ".", "This", "is", "used", "by", "arm_compute_frame_layout", ",", "which", "may", "add", "extra", "registers", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "1", "1", "1", "1", "2", "0", "4", "12", "1", "0", "12", "1", "1", "1", "3", "0", "1", "4", "1"], "File": "arm1", "Func": "arm_compute_save_core_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44425, "Length": 285}
{"ground_truth": ["", "bool", "arm_current_function_pac_enabled_p", "(", "void", ")", "{", "return", "(", "aarch_ra_sign_scope", "==", "AARCH_FUNCTION_ALL", "||", "(", "aarch_ra_sign_scope", "==", "AARCH_FUNCTION_NON_LEAF", "&&", "!", "crtl", "->", "is_leaf", ")", ")", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "return", "address", "signing", "mechanism", "is", "enabled", "."], "TS_V_token": ["arm"], "File": "arm1", "Func": "arm_current_function_pac_enabled_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44426, "Length": 25}
{"ground_truth": ["", "unsigned", "int", "arm_debugger_regno", "(", "unsigned", "int", "regno", ")", "{", "if", "(", "regno", "<", "16", ")", "return", "regno", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ")", "return", "64", "+", "regno", "-", "FIRST_VFP_REGNUM", ";", "else", "return", "256", "+", "(", "regno", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ";", "}", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "104", "+", "regno", "-", "FIRST_IWMMXT_GR_REGNUM", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "112", "+", "regno", "-", "FIRST_IWMMXT_REGNUM", ";", "if", "(", "IS_PAC_REGNUM", "(", "regno", ")", ")", "return", "DWARF_PAC_REGNUM", ";", "return", "DWARF_FRAME_REGISTERS", ";", "}", ""], "natrual_language": ["Map", "internal", "gcc", "register", "numbers", "to", "DWARF2", "register", "numbers", "."], "TS_V_token": ["arm", "16", "64", "256", "2", "104", "112"], "File": "arm1", "Func": "arm_debugger_regno", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44427, "Length": 95}
{"ground_truth": ["", "static", "int", "arm_effective_regno", "(", "rtx", "op", ",", "bool", "strict", ")", "{", "gcc_assert", "(", "REG_P", "(", "op", ")", ")", ";", "if", "(", "!", "strict", "||", "REGNO", "(", "op", ")", "<", "FIRST_PSEUDO_REGISTER", "||", "!", "reg_renumber", "||", "reg_renumber", "[", "REGNO", "(", "op", ")", "]", "<", "0", ")", "return", "REGNO", "(", "op", ")", ";", "return", "reg_renumber", "[", "REGNO", "(", "op", ")", "]", ";", "}", ""], "natrual_language": ["In", "non-STRICT", "mode", ",", "return", "the", "register", "number", ";", "in", "STRICT", "mode", "return", "the", "hard", "regno", "or", "the", "replacement", "if", "it", "wo", "n't", "be", "a", "mem", ".", "Otherwise", ",", "return", "the", "original", "pseudo", "number", "."], "TS_V_token": ["arm", "0"], "File": "arm1", "Func": "arm_effective_regno", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44428, "Length": 60}
{"ground_truth": ["", "static", "void", "arm_emit_multi_reg_pop", "(", "unsigned", "long", "saved_regs_mask", ")", "{", "int", "num_regs", "=", "0", ";", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "reg", ";", "bool", "return_in_pc", "=", "saved_regs_mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ";", "int", "offset_adj", ";", "int", "emit_update", ";", "offset_adj", "=", "return_in_pc", "?", "1", ":", "0", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "16", ")", ";", "emit_update", "=", "(", "saved_regs_mask", "&", "(", "1", "<<", "SP_REGNUM", ")", ")", "?", "0", ":", "1", ";", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", "+", "emit_update", "+", "offset_adj", ")", ")", ";", "if", "(", "return_in_pc", ")", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "if", "(", "emit_update", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "offset_adj", ")", "=", "tmp", ";", "}", "for", "(", "j", "=", "0", ",", "i", "=", "0", ";", "j", "<", "num_regs", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "rtx", "dwarf_reg", "=", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "if", "(", "arm_current_function_pac_enabled_p", "(", ")", "&&", "i", "==", "IP_REGNUM", ")", "dwarf_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "RA_AUTH_CODE", ")", ";", "if", "(", "(", "num_regs", "==", "1", ")", "&&", "emit_update", "&&", "!", "return_in_pc", ")", "{", "tmp", "=", "gen_frame_mem", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ")", ";", "tmp", "=", "emit_insn", "(", "gen_rtx_SET", "(", "reg", ",", "tmp", ")", ")", ";", "REG_NOTES", "(", "tmp", ")", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "dwarf_reg", ",", "dwarf", ")", ";", "return", ";", "}", "tmp", "=", "gen_rtx_SET", "(", "reg", ",", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "j", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", "+", "emit_update", "+", "offset_adj", ")", "=", "tmp", ";", "if", "(", "i", "!=", "PC_REGNUM", ")", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "dwarf_reg", ",", "dwarf", ")", ";", "j", "++", ";", "}", "if", "(", "return_in_pc", ")", "par", "=", "emit_jump_insn", "(", "par", ")", ";", "else", "par", "=", "emit_insn", "(", "par", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "if", "(", "!", "return_in_pc", ")", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "UNITS_PER_WORD", "*", "num_regs", ",", "stack_pointer_rtx", ",", "stack_pointer_rtx", ")", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "pattern", "that", "we", "will", "recognize", "as", "a", "pop_multi", ".", "SAVED_REGS_MASK", "shows", "which", "registers", "need", "to", "be", "restored", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "0", "1", "16", "1", "0", "1", "0", "0", "4", "1", "0", "0", "0", "1", "1", "4", "1", "0"], "File": "arm1", "Func": "arm_emit_multi_reg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44429, "Length": 408}
{"ground_truth": ["", "void", "arm_expand_vcond", "(", "rtx", "*", "operands", ",", "machine_mode", "cmp_result_mode", ")", "{", "rtx", "mask", "=", "gen_reg_rtx", "(", "cmp_result_mode", ")", ";", "bool", "inverted", "=", "arm_expand_vector_compare", "(", "mask", ",", "GET_CODE", "(", "operands", "[", "3", "]", ")", ",", "operands", "[", "4", "]", ",", "operands", "[", "5", "]", ",", "true", ")", ";", "if", "(", "inverted", ")", "std", "::", "swap", "(", "operands", "[", "1", "]", ",", "operands", "[", "2", "]", ")", ";", "emit_insn", "(", "gen_neon_vbsl", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ",", "operands", "[", "0", "]", ",", "mask", ",", "operands", "[", "1", "]", ",", "operands", "[", "2", "]", ")", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "vcond", "or", "vcondu", "pattern", "with", "operands", "OPERANDS", ".", "CMP_RESULT_MODE", "is", "the", "mode", "of", "the", "comparison", "result", "."], "TS_V_token": ["arm", "3", "4", "5", "1", "2", "0", "0", "1", "2"], "File": "arm1", "Func": "arm_expand_vcond", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44430, "Length": 98}
{"ground_truth": ["", "bool", "arm_expand_vector_compare", "(", "rtx", "target", ",", "rtx_code", "code", ",", "rtx", "op0", ",", "rtx", "op1", ",", "bool", "can_invert", ")", "{", "machine_mode", "cmp_result_mode", "=", "GET_MODE", "(", "target", ")", ";", "machine_mode", "cmp_mode", "=", "GET_MODE", "(", "op0", ")", ";", "bool", "inverted", ";", "switch", "(", "code", ")", "{", "case", "UNORDERED", ":", "case", "UNLT", ":", "case", "UNLE", ":", "case", "UNGT", ":", "case", "UNGE", ":", "case", "UNEQ", ":", "case", "NE", ":", "code", "=", "reverse_condition_maybe_unordered", "(", "code", ")", ";", "if", "(", "!", "can_invert", ")", "{", "rtx", "tmp", "=", "gen_reg_rtx", "(", "cmp_result_mode", ")", ";", "if", "(", "arm_expand_vector_compare", "(", "tmp", ",", "code", ",", "op0", ",", "op1", ",", "true", ")", ")", "gcc_unreachable", "(", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "target", ",", "gen_rtx_NOT", "(", "cmp_result_mode", ",", "tmp", ")", ")", ")", ";", "return", "false", ";", "}", "inverted", "=", "true", ";", "break", ";", "default", ":", "inverted", "=", "false", ";", "break", ";", "}", "switch", "(", "code", ")", "{", "case", "LE", ":", "case", "LT", ":", "if", "(", "op1", "!=", "CONST0_RTX", "(", "cmp_mode", ")", ")", "{", "code", "=", "swap_condition", "(", "code", ")", ";", "std", "::", "swap", "(", "op0", ",", "op1", ")", ";", "}", "case", "EQ", ":", "case", "GE", ":", "case", "GT", ":", "emit_insn", "(", "gen_neon_vc", "(", "code", ",", "cmp_mode", ",", "target", ",", "op0", ",", "op1", ")", ")", ";", "return", "inverted", ";", "case", "GEU", ":", "case", "GTU", ":", "emit_insn", "(", "gen_neon_vc", "(", "code", ",", "cmp_mode", ",", "target", ",", "op0", ",", "force_reg", "(", "cmp_mode", ",", "op1", ")", ")", ")", ";", "return", "inverted", ";", "case", "LEU", ":", "case", "LTU", ":", "emit_insn", "(", "gen_neon_vc", "(", "swap_condition", "(", "code", ")", ",", "cmp_mode", ",", "target", ",", "force_reg", "(", "cmp_mode", ",", "op1", ")", ",", "op0", ")", ")", ";", "return", "inverted", ";", "case", "LTGT", ":", "case", "ORDERED", ":", "{", "rtx", "gt_res", "=", "gen_reg_rtx", "(", "cmp_result_mode", ")", ";", "rtx", "alt_res", "=", "gen_reg_rtx", "(", "cmp_result_mode", ")", ";", "rtx_code", "alt_code", "=", "(", "code", "==", "LTGT", "?", "LT", ":", "LE", ")", ";", "if", "(", "arm_expand_vector_compare", "(", "gt_res", ",", "GT", ",", "op0", ",", "op1", ",", "true", ")", "||", "arm_expand_vector_compare", "(", "alt_res", ",", "alt_code", ",", "op0", ",", "op1", ",", "true", ")", ")", "gcc_unreachable", "(", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "target", ",", "gen_rtx_IOR", "(", "cmp_result_mode", ",", "gt_res", ",", "alt_res", ")", ")", ")", ";", "return", "inverted", ";", "}", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Expand", "code", "to", "compare", "vectors", "OP0", "and", "OP1", "using", "condition", "CODE", ".", "If", "CAN_INVERT", ",", "store", "either", "the", "result", "or", "its", "inverse", "in", "TARGET", "and", "return", "true", "if", "TARGET", "contains", "the", "inverse", ".", "If", "!", "CAN_INVERT", ",", "always", "store", "the", "result", "in", "TARGET", ",", "never", "its", "inverse", ".", "Note", "that", "the", "handling", "of", "floating-point", "comparisons", "is", "not", "IEEE", "compliant", "."], "TS_V_token": ["arm"], "File": "arm1", "Func": "arm_expand_vector_compare", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44431, "Length": 364}
{"ground_truth": ["", "static", "tree", "arm_handle_cmse_nonsecure_call", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", ",", "int", ",", "bool", "*", "no_add_attrs", ")", "{", "tree", "decl", "=", "NULL_TREE", ";", "tree", "fntype", ",", "type", ";", "if", "(", "!", "use_cmse", ")", "{", "*", "no_add_attrs", "=", "true", ";", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute ignored without %<-mcmse%> \"", "\"option\"", ",", "name", ")", ";", "return", "NULL_TREE", ";", "}", "if", "(", "DECL_P", "(", "*", "node", ")", ")", "{", "fntype", "=", "TREE_TYPE", "(", "*", "node", ")", ";", "if", "(", "TREE_CODE", "(", "*", "node", ")", "==", "VAR_DECL", "||", "TREE_CODE", "(", "*", "node", ")", "==", "TYPE_DECL", ")", "decl", "=", "*", "node", ";", "}", "else", "fntype", "=", "*", "node", ";", "while", "(", "fntype", "&&", "TREE_CODE", "(", "fntype", ")", "==", "POINTER_TYPE", ")", "fntype", "=", "TREE_TYPE", "(", "fntype", ")", ";", "if", "(", "(", "DECL_P", "(", "*", "node", ")", "&&", "!", "decl", ")", "||", "TREE_CODE", "(", "fntype", ")", "!=", "FUNCTION_TYPE", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute only applies to base type of a \"", "\"function pointer\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "return", "NULL_TREE", ";", "}", "*", "no_add_attrs", "|=", "cmse_func_args_or_return_in_stack", "(", "NULL", ",", "name", ",", "fntype", ")", ";", "if", "(", "*", "no_add_attrs", ")", "return", "NULL_TREE", ";", "if", "(", "decl", ")", "{", "type", "=", "build_distinct_type_copy", "(", "TREE_TYPE", "(", "decl", ")", ")", ";", "TREE_TYPE", "(", "decl", ")", "=", "type", ";", "}", "else", "{", "type", "=", "build_distinct_type_copy", "(", "*", "node", ")", ";", "*", "node", "=", "type", ";", "}", "fntype", "=", "type", ";", "while", "(", "TREE_CODE", "(", "fntype", ")", "!=", "FUNCTION_TYPE", ")", "{", "type", "=", "fntype", ";", "fntype", "=", "TREE_TYPE", "(", "fntype", ")", ";", "fntype", "=", "build_distinct_type_copy", "(", "fntype", ")", ";", "TREE_TYPE", "(", "type", ")", "=", "fntype", ";", "}", "tree", "attrs", "=", "tree_cons", "(", "get_identifier", "(", "\"cmse_nonsecure_call\"", ")", ",", "NULL_TREE", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ";", "TYPE_ATTRIBUTES", "(", "fntype", ")", "=", "attrs", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Called", "upon", "detection", "of", "the", "use", "of", "the", "cmse_nonsecure_call", "attribute", ",", "this", "function", "will", "check", "whether", "the", "attribute", "is", "allowed", "here", "and", "will", "add", "the", "attribute", "to", "the", "function", "type", "tree", "or", "otherwise", "issue", "a", "diagnostic", ".", "The", "reason", "we", "check", "this", "at", "declaration", "time", "is", "to", "only", "allow", "the", "use", "of", "the", "attribute", "with", "declarations", "of", "function", "pointers", "and", "not", "function", "declarations", ".", "This", "function", "checks", "NODE", "is", "of", "the", "expected", "type", "and", "issues", "diagnostics", "otherwise", "using", "NAME", ".", "If", "it", "is", "not", "of", "the", "expected", "type", "*", "NO_ADD_ATTRS", "will", "be", "set", "to", "true", "."], "TS_V_token": ["arm", "\"%qE attribute ignored without %<-mcmse%> \"", "\"option\"", "\"%qE attribute only applies to base type of a \"", "\"function pointer\"", "\"cmse_nonsecure_call\""], "File": "arm1", "Func": "arm_handle_cmse_nonsecure_call", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44432, "Length": 288}
{"ground_truth": ["", "static", "bool", "arm_hard_regno_mode_ok", "(", "unsigned", "int", "regno", ",", "machine_mode", "mode", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_CC", ")", "return", "(", "regno", "==", "CC_REGNUM", "||", "(", "TARGET_VFP_BASE", "&&", "regno", "==", "VFPCC_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "CC_REGNUM", "&&", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_CC", ")", "return", "false", ";", "if", "(", "IS_VPR_REGNUM", "(", "regno", ")", ")", "return", "VALID_MVE_PRED_MODE", "(", "mode", ")", ";", "if", "(", "TARGET_THUMB1", ")", "return", "(", "ARM_NUM_REGS", "(", "mode", ")", "<", "2", ")", "||", "(", "regno", "<", "LAST_LO_REGNUM", ")", ";", "if", "(", "TARGET_VFP_BASE", "&&", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "mode", "==", "DFmode", "||", "mode", "==", "DImode", ")", "return", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "HFmode", "||", "mode", "==", "BFmode", "||", "mode", "==", "HImode", "||", "mode", "==", "SFmode", "||", "mode", "==", "SImode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "TARGET_NEON", ")", "return", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "&&", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ")", "||", "(", "VALID_NEON_QREG_MODE", "(", "mode", ")", "&&", "NEON_REGNO_OK_FOR_QUAD", "(", "regno", ")", ")", "||", "(", "mode", "==", "TImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "2", ")", ")", "||", "(", "mode", "==", "EImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "3", ")", ")", "||", "(", "mode", "==", "OImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "4", ")", ")", "||", "(", "mode", "==", "CImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "6", ")", ")", "||", "(", "mode", "==", "XImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "8", ")", ")", ";", "if", "(", "TARGET_HAVE_MVE", ")", "return", "(", "(", "VALID_MVE_MODE", "(", "mode", ")", "&&", "NEON_REGNO_OK_FOR_QUAD", "(", "regno", ")", ")", "||", "(", "mode", "==", "OImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "4", ")", ")", "||", "(", "mode", "==", "XImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "8", ")", ")", ")", ";", "return", "false", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "mode", "==", "SImode", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ";", "}", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", ")", "{", "if", "(", "ARM_NUM_REGS", "(", "mode", ")", ">", "4", ")", "return", "false", ";", "if", "(", "TARGET_THUMB2", "&&", "!", "(", "TARGET_HAVE_MVE", "||", "TARGET_CDE", ")", ")", "return", "true", ";", "return", "!", "(", "(", "TARGET_LDRD", "||", "TARGET_CDE", ")", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">", "4", "&&", "(", "regno", "&", "1", ")", "!=", "0", ")", ";", "}", "if", "(", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", ";", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "REGNO", "is", "a", "valid", "register", "for", "holding", "a", "quantity", "of", "type", "MODE", "."], "TS_V_token": ["arm", "2", "2", "3", "4", "6", "8", "4", "8", "4", "4", "1", "0"], "File": "arm1", "Func": "arm_hard_regno_mode_ok", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44433, "Length": 394}
{"ground_truth": ["", "static", "struct", "machine_function", "*", "arm_init_machine_status", "(", "void", ")", "{", "struct", "machine_function", "*", "machine", ";", "machine", "=", "ggc_cleared_alloc", "<", "machine_function", ">", "(", ")", ";", "machine", "->", "func_type", "=", "ARM_FT_UNKNOWN", ";", "machine", "->", "static_chain_stack_bytes", "=", "-", "1", ";", "machine", "->", "pacspval_needed", "=", "0", ";", "return", "machine", ";", "}", ""], "natrual_language": ["Functions", "to", "save", "and", "restore", "machine-specific", "function", "data", "."], "TS_V_token": ["arm", "1", "0"], "File": "arm1", "Func": "arm_init_machine_status", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44434, "Length": 46}
{"ground_truth": ["", "static", "bool", "arm_modes_tieable_p", "(", "machine_mode", "mode1", ",", "machine_mode", "mode2", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode1", ")", "==", "GET_MODE_CLASS", "(", "mode2", ")", ")", "return", "true", ";", "if", "(", "TARGET_HAVE_MVE", "&&", "(", "VALID_MVE_PRED_MODE", "(", "mode1", ")", "&&", "VALID_MVE_PRED_MODE", "(", "mode2", ")", ")", ")", "return", "true", ";", "if", "(", "(", "TARGET_NEON", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode1", ")", ")", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode2", ")", ")", ")", "||", "(", "TARGET_HAVE_MVE", "&&", "(", "VALID_MVE_MODE", "(", "mode1", ")", "||", "VALID_MVE_STRUCT_MODE", "(", "mode1", ")", ")", "&&", "(", "VALID_MVE_MODE", "(", "mode2", ")", "||", "VALID_MVE_STRUCT_MODE", "(", "mode2", ")", ")", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "MODES_TIEABLE_P", "."], "TS_V_token": ["arm"], "File": "arm1", "Func": "arm_modes_tieable_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44435, "Length": 120}
{"ground_truth": ["", "opt_machine_mode", "arm_mode_to_pred_mode", "(", "machine_mode", "mode", ")", "{", "switch", "(", "GET_MODE_NUNITS", "(", "mode", ")", ")", "{", "case", "16", ":", "return", "V16BImode", ";", "case", "8", ":", "return", "V8BImode", ";", "case", "4", ":", "return", "V4BImode", ";", "case", "2", ":", "return", "V2QImode", ";", "}", "return", "opt_machine_mode", "(", ")", ";", "}", ""], "natrual_language": ["Return", "the", "mode", "for", "the", "MVE", "vector", "of", "predicates", "corresponding", "to", "MODE", "."], "TS_V_token": ["arm", "16", "8", "4", "2"], "File": "arm1", "Func": "arm_mode_to_pred_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44436, "Length": 46}
{"ground_truth": ["", "void", "arm_options_perform_arch_sanity_checks", "(", "void", ")", "{", "if", "(", "TARGET_INTERWORK", ")", "arm_cpp_interwork", "=", "1", ";", "if", "(", "arm_arch5t", ")", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "if", "(", "TARGET_IWMMXT", "&&", "!", "ARM_DOUBLEWORD_ALIGN", ")", "error", "(", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", ")", ";", "if", "(", "TARGET_IWMMXT_ABI", "&&", "!", "TARGET_IWMMXT", ")", "error", "(", "\"iwmmxt abi requires an iwmmxt capable cpu\"", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "TARGET_BPABI", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support interworking\"", ")", ";", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_SOFT_FLOAT", ")", "arm_fpu_attr", "=", "FPU_NONE", ";", "else", "arm_fpu_attr", "=", "FPU_VFP", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "TARGET_CALLER_INTERWORKING", ")", "error", "(", "\"AAPCS does not support %<-mcaller-super-interworking%>\"", ")", ";", "else", "if", "(", "TARGET_CALLEE_INTERWORKING", ")", "error", "(", "\"AAPCS does not support %<-mcallee-super-interworking%>\"", ")", ";", "}", "if", "(", "!", "arm_arch4", "&&", "arm_fp16_format", "!=", "ARM_FP16_FORMAT_NONE", ")", "sorry", "(", "\"__fp16 and no ldrh\"", ")", ";", "if", "(", "use_cmse", "&&", "!", "arm_arch_cmse", ")", "error", "(", "\"target CPU does not support ARMv8-M Security Extensions\"", ")", ";", "if", "(", "use_cmse", "&&", "TARGET_HARD_FLOAT", "&&", "LAST_VFP_REGNUM", ">", "LAST_LO_VFP_REGNUM", ")", "error", "(", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "arm_abi", "==", "ARM_ABI_IWMMXT", ")", "arm_pcs_default", "=", "ARM_PCS_AAPCS_IWMMXT", ";", "else", "if", "(", "TARGET_HARD_FLOAT_ABI", ")", "{", "arm_pcs_default", "=", "ARM_PCS_AAPCS_VFP", ";", "if", "(", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_vfpv2", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_mve", ")", ")", "error", "(", "\"%<-mfloat-abi=hard%>: selected architecture lacks an FPU\"", ")", ";", "}", "else", "arm_pcs_default", "=", "ARM_PCS_AAPCS", ";", "}", "else", "{", "if", "(", "arm_float_abi", "==", "ARM_FLOAT_ABI_HARD", ")", "sorry", "(", "\"%<-mfloat-abi=hard%> and VFP\"", ")", ";", "if", "(", "arm_abi", "==", "ARM_ABI_APCS", ")", "arm_pcs_default", "=", "ARM_PCS_APCS", ";", "else", "arm_pcs_default", "=", "ARM_PCS_ATPCS", ";", "}", "}", ""], "natrual_language": ["Perform", "some", "validation", "between", "the", "desired", "architecture", "and", "the", "rest", "of", "the", "options", "."], "TS_V_token": ["arm", "1", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", "\"iwmmxt abi requires an iwmmxt capable cpu\"", "0", "\"target CPU does not support interworking\"", "\"AAPCS does not support %<-mcaller-super-interworking%>\"", "\"AAPCS does not support %<-mcallee-super-interworking%>\"", "\"__fp16 and no ldrh\"", "\"target CPU does not support ARMv8-M Security Extensions\"", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", "\"%<-mfloat-abi=hard%>: selected architecture lacks an FPU\"", "\"%<-mfloat-abi=hard%> and VFP\""], "File": "arm1", "Func": "arm_options_perform_arch_sanity_checks", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44437, "Length": 246}
{"ground_truth": ["", "static", "void", "arm_option_override_internal", "(", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "arm_override_options_after_change_1", "(", "opts", ",", "opts_set", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support THUMB instructions\"", ")", ";", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "}", "if", "(", "TARGET_APCS_FRAME", "&&", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_APCS_FRAME", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "opts", "->", "x_target_flags", "|=", "MASK_INTERWORK", ";", "cl_optimization", "*", "to", "=", "TREE_OPTIMIZATION", "(", "init_optimize", ")", ";", "if", "(", "!", "opts_set", "->", "x_arm_restrict_it", ")", "opts", "->", "x_arm_restrict_it", "=", "arm_arch8", ";", "if", "(", "!", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", "||", "!", "arm_arch_notm", ")", "opts", "->", "x_arm_restrict_it", "=", "0", ";", "if", "(", "!", "opts_set", "->", "x_arm_restrict_it", "&&", "(", "opts_set", "->", "x_arm_cpu_string", "||", "opts_set", "->", "x_arm_tune_string", ")", ")", "opts", "->", "x_arm_restrict_it", "=", "0", ";", "if", "(", "!", "opts_set", "->", "x_unaligned_access", ")", "{", "opts", "->", "x_unaligned_access", "=", "(", "TARGET_32BIT_P", "(", "opts", "->", "x_target_flags", ")", "&&", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ";", "}", "else", "if", "(", "opts", "->", "x_unaligned_access", "==", "1", "&&", "!", "(", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support unaligned accesses\"", ")", ";", "opts", "->", "x_unaligned_access", "=", "0", ";", "}", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_schedule_insns", "=", "0", ";", "else", "opts", "->", "x_flag_schedule_insns", "=", "to", "->", "x_flag_schedule_insns", ";", "if", "(", "optimize_function_for_size_p", "(", "cfun", ")", "&&", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_shrink_wrap", "=", "false", ";", "else", "opts", "->", "x_flag_shrink_wrap", "=", "to", "->", "x_flag_shrink_wrap", ";", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_ipa_ra", "=", "0", ";", "else", "opts", "->", "x_flag_ipa_ra", "=", "to", "->", "x_flag_ipa_ra", ";", "if", "(", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_inline_asm_unified", "=", "true", ";", "if", "(", "arm_stack_protector_guard", "==", "SSP_GLOBAL", "&&", "opts", "->", "x_arm_stack_protector_guard_offset_str", ")", "{", "error", "(", "\"incompatible options %<-mstack-protector-guard=global%> and \"", "\"%<-mstack-protector-guard-offset=%s%>\"", ",", "arm_stack_protector_guard_offset_str", ")", ";", "}", "if", "(", "opts", "->", "x_arm_stack_protector_guard_offset_str", ")", "{", "char", "*", "end", ";", "const", "char", "*", "str", "=", "arm_stack_protector_guard_offset_str", ";", "errno", "=", "0", ";", "long", "offs", "=", "strtol", "(", "arm_stack_protector_guard_offset_str", ",", "&", "end", ",", "0", ")", ";", "if", "(", "!", "*", "str", "||", "*", "end", "||", "errno", ")", "error", "(", "\"%qs is not a valid offset in %qs\"", ",", "str", ",", "\"-mstack-protector-guard-offset=\"", ")", ";", "arm_stack_protector_guard_offset", "=", "offs", ";", "}", "if", "(", "arm_current_function_pac_enabled_p", "(", ")", ")", "{", "if", "(", "!", "arm_arch8m_main", ")", "error", "(", "\"This architecture does not support branch protection \"", "\"instructions\"", ")", ";", "if", "(", "TARGET_TPCS_FRAME", ")", "sorry", "(", "\"Return address signing is not supported with %<-mtpcs-frame%>.\"", ")", ";", "}", "SUBTARGET_OVERRIDE_INTERNAL_OPTIONS", ";", "}", ""], "natrual_language": ["Reset", "options", "between", "modes", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "0", "\"target CPU does not support THUMB instructions\"", "0", "0", "1", "0", "\"target CPU does not support unaligned accesses\"", "0", "0", "0", "\"incompatible options %<-mstack-protector-guard=global%> and \"", "\"%<-mstack-protector-guard-offset=%s%>\"", "0", "0", "\"%qs is not a valid offset in %qs\"", "\"-mstack-protector-guard-offset=\"", "\"This architecture does not support branch protection \"", "\"instructions\"", "\"Return address signing is not supported with %<-mtpcs-frame%>.\""], "File": "arm1", "Func": "arm_option_override_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44438, "Length": 449}
{"ground_truth": ["", "static", "void", "arm_option_restore", "(", "struct", "gcc_options", "*", ",", "struct", "gcc_options", "*", "opts_set", ",", "struct", "cl_target_option", "*", "ptr", ")", "{", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "ptr", ",", "opts_set", ",", "false", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_OPTION_RESTORE", "."], "TS_V_token": ["arm"], "File": "arm1", "Func": "arm_option_restore", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44439, "Length": 32}
{"ground_truth": ["", "enum", "reg_class", "arm_regno_class", "(", "int", "regno", ")", "{", "if", "(", "regno", "==", "PC_REGNUM", ")", "return", "NO_REGS", ";", "if", "(", "IS_VPR_REGNUM", "(", "regno", ")", ")", "return", "VPR_REG", ";", "if", "(", "IS_PAC_REGNUM", "(", "regno", ")", ")", "return", "PAC_REG", ";", "if", "(", "TARGET_THUMB1", ")", "{", "if", "(", "regno", "==", "STACK_POINTER_REGNUM", ")", "return", "STACK_REG", ";", "if", "(", "regno", "==", "CC_REGNUM", ")", "return", "CC_REG", ";", "if", "(", "regno", "<", "8", ")", "return", "LO_REGS", ";", "return", "HI_REGS", ";", "}", "if", "(", "TARGET_THUMB2", "&&", "regno", "<", "8", ")", "return", "LO_REGS", ";", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "TARGET_THUMB2", "?", "HI_REGS", ":", "GENERAL_REGS", ";", "if", "(", "regno", "==", "CC_REGNUM", "||", "regno", "==", "VFPCC_REGNUM", ")", "return", "TARGET_THUMB2", "?", "CC_REG", ":", "NO_REGS", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "regno", "<=", "D7_VFP_REGNUM", ")", "return", "VFP_D0_D7_REGS", ";", "else", "if", "(", "regno", "<=", "LAST_LO_VFP_REGNUM", ")", "return", "VFP_LO_REGS", ";", "else", "return", "VFP_HI_REGS", ";", "}", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_REGS", ";", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_GR_REGS", ";", "return", "NO_REGS", ";", "}", ""], "natrual_language": ["For", "efficiency", "and", "historical", "reasons", "LO_REGS", ",", "HI_REGS", "and", "CC_REGS", "are", "not", "used", "in", "arm", "mode", "."], "TS_V_token": ["arm", "8", "8"], "File": "arm1", "Func": "arm_regno_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44440, "Length": 178}
{"ground_truth": ["", "static", "void", "arm_setup_incoming_varargs", "(", "cumulative_args_t", "pcum_v", ",", "const", "function_arg_info", "&", "arg", ",", "int", "*", "pretend_size", ",", "int", "second_time", "ATTRIBUTE_UNUSED", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "cfun", "->", "machine", "->", "uses_anonymous_args", "=", "1", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "nregs", "=", "pcum", "->", "aapcs_ncrn", ";", "if", "(", "!", "TYPE_NO_NAMED_ARGS_STDARG_P", "(", "TREE_TYPE", "(", "current_function_decl", ")", ")", "&&", "(", "nregs", "&", "1", ")", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "arg", ".", "mode", ",", "arg", ".", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", ",", "arg", ".", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "{", "nregs", "++", ";", "if", "(", "res", ">", "1", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\"", ",", "arg", ".", "type", ")", ";", "}", "}", "}", "else", "nregs", "=", "pcum", "->", "nregs", ";", "if", "(", "nregs", "<", "NUM_ARG_REGS", ")", "*", "pretend_size", "=", "(", "NUM_ARG_REGS", "-", "nregs", ")", "*", "UNITS_PER_WORD", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_SETUP_INCOMING_VARARGS", ".", "On", "the", "ARM", ",", "PRETEND_SIZE", "is", "set", "in", "order", "to", "have", "the", "prologue", "push", "the", "last", "named", "arg", "and", "all", "anonymous", "args", "onto", "the", "stack", ".", "XXX", "I", "know", "the", "prologue", "should", "n't", "be", "pushing", "registers", ",", "but", "it", "is", "faster", "that", "way", "."], "TS_V_token": ["arm", "1", "1", "0", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", "0", "1", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\""], "File": "arm1", "Func": "arm_setup_incoming_varargs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44441, "Length": 167}
{"ground_truth": ["", "static", "void", "arm_unwind_emit", "(", "FILE", "*", "out_file", ",", "rtx_insn", "*", "insn", ")", "{", "rtx", "note", ",", "pat", ";", "bool", "handled_one", "=", "false", ";", "if", "(", "arm_except_unwind_info", "(", "&", "global_options", ")", "!=", "UI_TARGET", ")", "return", ";", "if", "(", "!", "(", "flag_unwind_tables", "||", "crtl", "->", "uses_eh_lsda", ")", "&&", "(", "TREE_NOTHROW", "(", "current_function_decl", ")", "||", "crtl", "->", "all_throwers_are_sibcalls", ")", ")", "return", ";", "if", "(", "NOTE_P", "(", "insn", ")", "||", "!", "RTX_FRAME_RELATED_P", "(", "insn", ")", ")", "return", ";", "for", "(", "note", "=", "REG_NOTES", "(", "insn", ")", ";", "note", ";", "note", "=", "XEXP", "(", "note", ",", "1", ")", ")", "{", "switch", "(", "REG_NOTE_KIND", "(", "note", ")", ")", "{", "case", "REG_FRAME_RELATED_EXPR", ":", "pat", "=", "XEXP", "(", "note", ",", "0", ")", ";", "goto", "found", ";", "case", "REG_CFA_REGISTER", ":", "pat", "=", "XEXP", "(", "note", ",", "0", ")", ";", "if", "(", "pat", "==", "NULL", ")", "{", "pat", "=", "PATTERN", "(", "insn", ")", ";", "if", "(", "GET_CODE", "(", "pat", ")", "==", "PARALLEL", ")", "pat", "=", "XVECEXP", "(", "pat", ",", "0", ",", "0", ")", ";", "}", "{", "rtx", "dest", ",", "src", ";", "unsigned", "reg", ";", "src", "=", "SET_SRC", "(", "pat", ")", ";", "dest", "=", "SET_DEST", "(", "pat", ")", ";", "gcc_assert", "(", "src", "==", "stack_pointer_rtx", "||", "IS_PAC_REGNUM", "(", "REGNO", "(", "src", ")", ")", ")", ";", "reg", "=", "REGNO", "(", "dest", ")", ";", "if", "(", "IS_PAC_REGNUM", "(", "REGNO", "(", "src", ")", ")", ")", "arm_unwind_emit_set", "(", "out_file", ",", "PATTERN", "(", "insn", ")", ")", ";", "else", "asm_fprintf", "(", "out_file", ",", "\"\\t.unwind_raw 0, 0x%x @ vsp = r%d\\n\"", ",", "reg", "+", "0x90", ",", "reg", ")", ";", "}", "handled_one", "=", "true", ";", "break", ";", "case", "REG_CFA_DEF_CFA", ":", "case", "REG_CFA_ADJUST_CFA", ":", "case", "REG_CFA_RESTORE", ":", "return", ";", "case", "REG_CFA_EXPRESSION", ":", "case", "REG_CFA_OFFSET", ":", "gcc_unreachable", "(", ")", ";", "default", ":", "break", ";", "}", "}", "if", "(", "handled_one", ")", "return", ";", "pat", "=", "PATTERN", "(", "insn", ")", ";", "found", ":", "switch", "(", "GET_CODE", "(", "pat", ")", ")", "{", "case", "SET", ":", "arm_unwind_emit_set", "(", "out_file", ",", "pat", ")", ";", "break", ";", "case", "SEQUENCE", ":", "arm_unwind_emit_sequence", "(", "out_file", ",", "pat", ")", ";", "break", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "unwind", "directives", "for", "the", "given", "insn", "."], "TS_V_token": ["arm", "1", "0", "0", "0", "0", "\"\\t.unwind_raw 0, 0x%x @ vsp = r%d\\n\"", "0x90"], "File": "arm1", "Func": "arm_unwind_emit", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44442, "Length": 333}
{"ground_truth": ["", "static", "void", "arm_unwind_emit_set", "(", "FILE", "*", "out_file", ",", "rtx", "p", ")", "{", "rtx", "e0", ";", "rtx", "e1", ";", "unsigned", "reg", ";", "e0", "=", "XEXP", "(", "p", ",", "0", ")", ";", "e1", "=", "XEXP", "(", "p", ",", "1", ")", ";", "switch", "(", "GET_CODE", "(", "e0", ")", ")", "{", "case", "MEM", ":", "if", "(", "GET_CODE", "(", "XEXP", "(", "e0", ",", "0", ")", ")", "!=", "PRE_DEC", "||", "!", "REG_P", "(", "XEXP", "(", "XEXP", "(", "e0", ",", "0", ")", ",", "0", ")", ")", "||", "REGNO", "(", "XEXP", "(", "XEXP", "(", "e0", ",", "0", ")", ",", "0", ")", ")", "!=", "SP_REGNUM", ")", "abort", "(", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.save \"", ")", ";", "if", "(", "IS_VFP_REGNUM", "(", "REGNO", "(", "e1", ")", ")", ")", "asm_fprintf", "(", "out_file", ",", "\"{d%d}\\n\"", ",", "(", "REGNO", "(", "e1", ")", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ")", ";", "else", "asm_fprintf", "(", "out_file", ",", "\"{%r}\\n\"", ",", "REGNO", "(", "e1", ")", ")", ";", "break", ";", "case", "REG", ":", "if", "(", "REGNO", "(", "e0", ")", "==", "SP_REGNUM", ")", "{", "if", "(", "GET_CODE", "(", "e1", ")", "!=", "PLUS", "||", "!", "REG_P", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "||", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "!=", "SP_REGNUM", "||", "!", "CONST_INT_P", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", "abort", "(", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.pad #%wd\\n\"", ",", "-", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", ";", "}", "else", "if", "(", "REGNO", "(", "e0", ")", "==", "HARD_FRAME_POINTER_REGNUM", ")", "{", "HOST_WIDE_INT", "offset", ";", "if", "(", "GET_CODE", "(", "e1", ")", "==", "PLUS", ")", "{", "if", "(", "!", "REG_P", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "||", "!", "CONST_INT_P", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", "abort", "(", ")", ";", "reg", "=", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", ";", "offset", "=", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.setfp %r, %r, #%wd\\n\"", ",", "HARD_FRAME_POINTER_REGNUM", ",", "reg", ",", "offset", ")", ";", "}", "else", "if", "(", "REG_P", "(", "e1", ")", ")", "{", "reg", "=", "REGNO", "(", "e1", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.setfp %r, %r\\n\"", ",", "HARD_FRAME_POINTER_REGNUM", ",", "reg", ")", ";", "}", "else", "abort", "(", ")", ";", "}", "else", "if", "(", "REG_P", "(", "e1", ")", "&&", "REGNO", "(", "e1", ")", "==", "SP_REGNUM", ")", "{", "asm_fprintf", "(", "out_file", ",", "\"\\t.movsp %r\\n\"", ",", "REGNO", "(", "e0", ")", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "e1", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "&&", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "==", "SP_REGNUM", "&&", "CONST_INT_P", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", "{", "asm_fprintf", "(", "out_file", ",", "\"\\t.movsp %r, #%d\\n\"", ",", "REGNO", "(", "e0", ")", ",", "(", "int", ")", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", ";", "}", "else", "if", "(", "REGNO", "(", "e0", ")", "==", "IP_REGNUM", "&&", "arm_current_function_pac_enabled_p", "(", ")", ")", "{", "if", "(", "cfun", "->", "machine", "->", "pacspval_needed", ")", "asm_fprintf", "(", "out_file", ",", "\"\\t.pacspval\\n\"", ")", ";", "}", "else", "abort", "(", ")", ";", "break", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "unwind", "directives", "for", "a", "SET", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "0", "0", "0", "\"\\t.save \"", "\"{d%d}\\n\"", "2", "\"{%r}\\n\"", "0", "0", "1", "\"\\t.pad #%wd\\n\"", "1", "0", "1", "0", "1", "\"\\t.setfp %r, %r, #%wd\\n\"", "\"\\t.setfp %r, %r\\n\"", "\"\\t.movsp %r\\n\"", "0", "0", "1", "\"\\t.movsp %r, #%d\\n\"", "1", "\"\\t.pacspval\\n\""], "File": "arm1", "Func": "arm_unwind_emit_set", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44443, "Length": 498}
{"ground_truth": ["", "tree", "arm_valid_target_attribute_tree", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "struct", "cl_target_option", "cl_opts", ";", "if", "(", "!", "arm_valid_target_attribute_rec", "(", "args", ",", "opts", ")", ")", "return", "NULL_TREE", ";", "cl_target_option_save", "(", "&", "cl_opts", ",", "opts", ",", "opts_set", ")", ";", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "&", "cl_opts", ",", "opts_set", ",", "false", ")", ";", "arm_option_check_internal", "(", "opts", ")", ";", "arm_option_reconfigure_globals", "(", ")", ";", "arm_options_perform_arch_sanity_checks", "(", ")", ";", "arm_option_override_internal", "(", "opts", ",", "opts_set", ")", ";", "return", "build_target_option_node", "(", "opts", ",", "opts_set", ")", ";", "}", ""], "natrual_language": ["Return", "a", "TARGET_OPTION_NODE", "tree", "of", "the", "target", "options", "listed", "or", "NULL", "."], "TS_V_token": ["arm"], "File": "arm1", "Func": "arm_valid_target_attribute_tree", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44444, "Length": 86}
{"ground_truth": ["", "static", "bool", "arm_vectorize_vec_perm_const", "(", "machine_mode", "vmode", ",", "machine_mode", "op_mode", ",", "rtx", "target", ",", "rtx", "op0", ",", "rtx", "op1", ",", "const", "vec_perm_indices", "&", "sel", ")", "{", "if", "(", "vmode", "!=", "op_mode", ")", "return", "false", ";", "struct", "expand_vec_perm_d", "d", ";", "int", "i", ",", "nelt", ",", "which", ";", "if", "(", "!", "VALID_NEON_DREG_MODE", "(", "vmode", ")", "&&", "!", "VALID_NEON_QREG_MODE", "(", "vmode", ")", ")", "return", "false", ";", "d", ".", "target", "=", "target", ";", "if", "(", "op0", ")", "{", "rtx", "nop0", "=", "force_reg", "(", "vmode", ",", "op0", ")", ";", "if", "(", "op0", "==", "op1", ")", "op1", "=", "nop0", ";", "op0", "=", "nop0", ";", "}", "if", "(", "op1", ")", "op1", "=", "force_reg", "(", "vmode", ",", "op1", ")", ";", "d", ".", "op0", "=", "op0", ";", "d", ".", "op1", "=", "op1", ";", "d", ".", "vmode", "=", "vmode", ";", "gcc_assert", "(", "VECTOR_MODE_P", "(", "d", ".", "vmode", ")", ")", ";", "d", ".", "testing_p", "=", "!", "target", ";", "nelt", "=", "GET_MODE_NUNITS", "(", "d", ".", "vmode", ")", ";", "for", "(", "i", "=", "which", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "{", "int", "ei", "=", "sel", "[", "i", "]", "&", "(", "2", "*", "nelt", "-", "1", ")", ";", "which", "|=", "(", "ei", "<", "nelt", "?", "1", ":", "2", ")", ";", "}", "switch", "(", "which", ")", "{", "default", ":", "gcc_unreachable", "(", ")", ";", "case", "3", ":", "d", ".", "one_vector_p", "=", "false", ";", "if", "(", "d", ".", "testing_p", "||", "!", "rtx_equal_p", "(", "op0", ",", "op1", ")", ")", "break", ";", "case", "2", ":", "d", ".", "op0", "=", "op1", ";", "d", ".", "one_vector_p", "=", "true", ";", "break", ";", "case", "1", ":", "d", ".", "op1", "=", "op0", ";", "d", ".", "one_vector_p", "=", "true", ";", "break", ";", "}", "d", ".", "perm", ".", "new_vector", "(", "sel", ".", "encoding", "(", ")", ",", "d", ".", "one_vector_p", "?", "1", ":", "2", ",", "nelt", ")", ";", "if", "(", "!", "d", ".", "testing_p", ")", "return", "arm_expand_vec_perm_const_1", "(", "&", "d", ")", ";", "d", ".", "target", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "1", ")", ";", "d", ".", "op1", "=", "d", ".", "op0", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "2", ")", ";", "if", "(", "!", "d", ".", "one_vector_p", ")", "d", ".", "op1", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "3", ")", ";", "start_sequence", "(", ")", ";", "bool", "ret", "=", "arm_expand_vec_perm_const_1", "(", "&", "d", ")", ";", "end_sequence", "(", ")", ";", "return", "ret", ";", "}", ""], "natrual_language": ["Implement", "TARGET_VECTORIZE_VEC_PERM_CONST", "."], "TS_V_token": ["arm", "0", "2", "1", "1", "2", "3", "2", "1", "1", "2", "1", "2", "3"], "File": "arm1", "Func": "arm_vectorize_vec_perm_const", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44445, "Length": 385}
{"ground_truth": ["", "bool", "arm_vector_mode_supported_p", "(", "machine_mode", "mode", ")", "{", "if", "(", "TARGET_NEON", "&&", "(", "mode", "==", "V2SFmode", "||", "mode", "==", "V4SImode", "||", "mode", "==", "V8HImode", "||", "mode", "==", "V4HFmode", "||", "mode", "==", "V16QImode", "||", "mode", "==", "V4SFmode", "||", "mode", "==", "V2DImode", "||", "mode", "==", "V8HFmode", "||", "mode", "==", "V4BFmode", "||", "mode", "==", "V8BFmode", ")", ")", "return", "true", ";", "if", "(", "(", "TARGET_NEON", "||", "TARGET_IWMMXT", ")", "&&", "(", "(", "mode", "==", "V2SImode", ")", "||", "(", "mode", "==", "V4HImode", ")", "||", "(", "mode", "==", "V8QImode", ")", ")", ")", "return", "true", ";", "if", "(", "TARGET_INT_SIMD", "&&", "(", "mode", "==", "V4UQQmode", "||", "mode", "==", "V4QQmode", "||", "mode", "==", "V2UHQmode", "||", "mode", "==", "V2HQmode", "||", "mode", "==", "V2UHAmode", "||", "mode", "==", "V2HAmode", ")", ")", "return", "true", ";", "if", "(", "TARGET_HAVE_MVE", "&&", "(", "VALID_MVE_SI_MODE", "(", "mode", ")", "||", "VALID_MVE_PRED_MODE", "(", "mode", ")", ")", ")", "return", "true", ";", "if", "(", "TARGET_HAVE_MVE_FLOAT", "&&", "(", "mode", "==", "V2DFmode", "||", "mode", "==", "V4SFmode", "||", "mode", "==", "V8HFmode", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "vector_mode_supported_p", "."], "TS_V_token": ["arm"], "File": "arm1", "Func": "arm_vector_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44446, "Length": 164}
{"ground_truth": ["", "static", "rtx", "emit_multi_reg_push", "(", "unsigned", "long", "mask", ",", "unsigned", "long", "dwarf_regs_mask", ")", "{", "int", "num_regs", "=", "0", ";", "int", "num_dwarf_regs", "=", "0", ";", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", ";", "int", "dwarf_par_index", ";", "rtx", "tmp", ",", "reg", ";", "dwarf_regs_mask", "&=", "~", "(", "1", "<<", "PC_REGNUM", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_dwarf_regs", "++", ";", "}", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "16", ")", ";", "gcc_assert", "(", "(", "dwarf_regs_mask", "&", "~", "mask", ")", "==", "0", ")", ";", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", ")", ")", ";", "dwarf", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_dwarf_regs", "+", "1", ")", ")", ";", "dwarf_par_index", "=", "1", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "rtx", "dwarf_reg", "=", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "if", "(", "arm_current_function_pac_enabled_p", "(", ")", "&&", "i", "==", "IP_REGNUM", ")", "dwarf_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "RA_AUTH_CODE", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "BLKmode", ",", "gen_rtx_PRE_MODIFY", "(", "Pmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "num_regs", ")", ")", ")", ",", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ")", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "SImode", ",", "stack_pointer_rtx", ")", ",", "dwarf_reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", "++", ")", "=", "tmp", ";", "}", "break", ";", "}", "}", "for", "(", "j", "=", "1", ",", "i", "++", ";", "j", "<", "num_regs", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "rtx", "dwarf_reg", "=", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "if", "(", "arm_current_function_pac_enabled_p", "(", ")", "&&", "i", "==", "IP_REGNUM", ")", "dwarf_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "RA_AUTH_CODE", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", ")", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "j", ")", ")", ",", "dwarf_reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", "++", ")", "=", "tmp", ";", "}", "j", "++", ";", "}", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "0", ")", "=", "tmp", ";", "add_reg_note", "(", "par", ",", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ")", ";", "return", "par", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "that", "we", "will", "recognize", "as", "a", "push_multi", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "1", "16", "0", "1", "1", "0", "1", "0", "0", "4", "1", "1", "1", "0", "1", "1", "0", "1", "4", "1", "0", "4", "1", "0", "0"], "File": "arm1", "Func": "emit_multi_reg_push", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44447, "Length": 489}
{"ground_truth": ["", "rtx", "mve_bool_vec_to_const", "(", "rtx", "const_vec", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "const_vec", ")", ";", "if", "(", "!", "VECTOR_MODE_P", "(", "mode", ")", ")", "return", "const_vec", ";", "unsigned", "n_elts", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "unsigned", "el_prec", "=", "GET_MODE_PRECISION", "(", "GET_MODE_INNER", "(", "mode", ")", ")", ";", "unsigned", "shift_c", "=", "16", "/", "n_elts", ";", "unsigned", "i", ";", "int", "hi_val", "=", "0", ";", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "i", "++", ")", "{", "rtx", "el", "=", "CONST_VECTOR_ELT", "(", "const_vec", ",", "i", ")", ";", "unsigned", "HOST_WIDE_INT", "elpart", ";", "gcc_assert", "(", "CONST_INT_P", "(", "el", ")", ")", ";", "elpart", "=", "INTVAL", "(", "el", ")", "&", "(", "(", "1U", "<<", "el_prec", ")", "-", "1", ")", ";", "unsigned", "index", "=", "BYTES_BIG_ENDIAN", "?", "n_elts", "-", "i", "-", "1", ":", "i", ";", "hi_val", "|=", "elpart", "<<", "(", "index", "*", "shift_c", ")", ";", "}", "return", "gen_int_mode", "(", "hi_val", ",", "SImode", ")", ";", "}", ""], "natrual_language": ["Return", "a", "HI", "representation", "of", "CONST_VEC", "suitable", "for", "MVE", "predicates", "."], "TS_V_token": ["arm", "16", "0", "0", "1U", "1", "1"], "File": "arm1", "Func": "mve_bool_vec_to_const", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44448, "Length": 146}
{"ground_truth": ["", "int", "mve_struct_mem_operand", "(", "rtx", "op", ")", "{", "rtx", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "REG_P", "(", "ind", ")", ")", "return", "arm_address_register_rtx_p", "(", "ind", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "ind", ")", "==", "POST_INC", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "mem", "suitable", "for", "loading/storing", "an", "MVE", "struct", "type", "."], "TS_V_token": ["arm", "0", "0", "0", "0"], "File": "arm1", "Func": "mve_struct_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44449, "Length": 58}
{"ground_truth": ["", "int", "mve_vector_mem_operand", "(", "machine_mode", "mode", ",", "rtx", "op", ",", "bool", "strict", ")", "{", "enum", "rtx_code", "code", ";", "int", "val", ",", "reg_no", ";", "if", "(", "REG_P", "(", "op", ")", ")", "{", "reg_no", "=", "arm_effective_regno", "(", "op", ",", "strict", ")", ";", "return", "(", "(", "(", "mode", "==", "E_V8QImode", "||", "mode", "==", "E_V4QImode", "||", "mode", "==", "E_V4HImode", ")", "?", "reg_no", "<=", "LAST_LO_REGNUM", ":", "reg_no", "<", "LAST_ARM_REGNUM", ")", "||", "(", "!", "strict", "&&", "reg_no", ">=", "FIRST_PSEUDO_REGISTER", ")", ")", ";", "}", "code", "=", "GET_CODE", "(", "op", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "{", "reg_no", "=", "arm_effective_regno", "(", "XEXP", "(", "op", ",", "0", ")", ",", "strict", ")", ";", "return", "(", "(", "(", "mode", "==", "E_V8QImode", "||", "mode", "==", "E_V4QImode", "||", "mode", "==", "E_V4HImode", ")", "?", "reg_no", "<=", "LAST_LO_REGNUM", ":", "(", "reg_no", "<", "LAST_ARM_REGNUM", "&&", "reg_no", "!=", "SP_REGNUM", ")", ")", "||", "(", "!", "strict", "&&", "reg_no", ">=", "FIRST_PSEUDO_REGISTER", ")", ")", ";", "}", "else", "if", "(", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "GET_CODE", "(", "XEXP", "(", "op", ",", "1", ")", ")", "==", "PLUS", "&&", "XEXP", "(", "op", ",", "0", ")", "==", "XEXP", "(", "XEXP", "(", "op", ",", "1", ")", ",", "0", ")", "&&", "REG_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "op", ",", "1", ")", ",", "1", ")", ")", "==", "CONST_INT", ")", "||", "(", "reload_completed", "&&", "code", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", "&&", "GET_CODE", "(", "XEXP", "(", "op", ",", "1", ")", ")", "==", "CONST_INT", ")", ")", "{", "reg_no", "=", "arm_effective_regno", "(", "XEXP", "(", "op", ",", "0", ")", ",", "strict", ")", ";", "if", "(", "code", "==", "PLUS", ")", "val", "=", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ";", "else", "val", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "op", ",", "1", ")", ",", "1", ")", ")", ";", "switch", "(", "mode", ")", "{", "case", "E_V16QImode", ":", "case", "E_V8QImode", ":", "case", "E_V4QImode", ":", "if", "(", "abs", "(", "val", ")", ">", "127", ")", "return", "FALSE", ";", "break", ";", "case", "E_V8HImode", ":", "case", "E_V8HFmode", ":", "case", "E_V4HImode", ":", "case", "E_V4HFmode", ":", "if", "(", "val", "%", "2", "!=", "0", "||", "abs", "(", "val", ")", ">", "254", ")", "return", "FALSE", ";", "break", ";", "case", "E_V4SImode", ":", "case", "E_V4SFmode", ":", "if", "(", "val", "%", "4", "!=", "0", "||", "abs", "(", "val", ")", ">", "508", ")", "return", "FALSE", ";", "break", ";", "default", ":", "return", "FALSE", ";", "}", "return", "(", "(", "!", "strict", "&&", "reg_no", ">=", "FIRST_PSEUDO_REGISTER", ")", "||", "(", "MVE_STN_LDW_MODE", "(", "mode", ")", "?", "reg_no", "<=", "LAST_LO_REGNUM", ":", "(", "reg_no", "<", "LAST_ARM_REGNUM", "&&", "(", "code", "==", "PLUS", "||", "reg_no", "!=", "SP_REGNUM", ")", ")", ")", ")", ";", "}", "return", "FALSE", ";", "}", ""], "natrual_language": ["This", "function", "returns", "TRUE", "on", "matching", "mode", "and", "op.1", ".", "For", "given", "modes", ",", "check", "for", "[", "Rn", "]", ",", "return", "TRUE", "for", "Rn", "<", "=", "LO_REGS.2", ".", "For", "other", "modes", ",", "check", "for", "[", "Rn", "]", ",", "return", "TRUE", "for", "Rn", "<", "R15", "(", "expect", "R13", ")", "."], "TS_V_token": ["arm", "0", "1", "0", "1", "0", "0", "1", "1", "0", "1", "0", "1", "1", "1", "127", "2", "0", "254", "4", "0", "508"], "File": "arm1", "Func": "mve_vector_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44450, "Length": 449}
{"ground_truth": ["", "rtx", "neon_make_constant", "(", "rtx", "vals", ",", "bool", "generate", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "vals", ")", ";", "rtx", "target", ";", "rtx", "const_vec", "=", "NULL_RTX", ";", "int", "n_elts", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "int", "n_const", "=", "0", ";", "int", "i", ";", "if", "(", "GET_CODE", "(", "vals", ")", "==", "CONST_VECTOR", ")", "const_vec", "=", "vals", ";", "else", "if", "(", "GET_CODE", "(", "vals", ")", "==", "PARALLEL", ")", "{", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "++", "i", ")", "{", "rtx", "x", "=", "XVECEXP", "(", "vals", ",", "0", ",", "i", ")", ";", "if", "(", "CONST_INT_P", "(", "x", ")", "||", "CONST_DOUBLE_P", "(", "x", ")", ")", "n_const", "++", ";", "}", "if", "(", "n_const", "==", "n_elts", ")", "const_vec", "=", "gen_rtx_CONST_VECTOR", "(", "mode", ",", "XVEC", "(", "vals", ",", "0", ")", ")", ";", "}", "else", "gcc_unreachable", "(", ")", ";", "if", "(", "const_vec", "!=", "NULL", "&&", "simd_immediate_valid_for_move", "(", "const_vec", ",", "mode", ",", "NULL", ",", "NULL", ")", ")", "return", "const_vec", ";", "else", "if", "(", "TARGET_HAVE_MVE", "&&", "VALID_MVE_PRED_MODE", "(", "mode", ")", ")", "return", "mve_bool_vec_to_const", "(", "const_vec", ")", ";", "else", "if", "(", "(", "target", "=", "neon_vdup_constant", "(", "vals", ",", "generate", ")", ")", "!=", "NULL_RTX", ")", "return", "target", ";", "else", "if", "(", "const_vec", "!=", "NULL_RTX", ")", "return", "arm_disable_literal_pool", "?", "NULL_RTX", ":", "const_vec", ";", "else", "return", "NULL_RTX", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "VALS", ",", "which", "is", "a", "PARALLEL", "containing", "only", "constants", "(", "for", "vec_init", ")", "or", "CONST_VECTOR", ",", "efficiently", "into", "a", "register", ".", "Returns", "an", "RTX", "to", "copy", "into", "the", "register", ",", "or", "NULL_RTX", "for", "a", "PARALLEL", "that", "can", "not", "be", "converted", "into", "a", "CONST_VECTOR", "."], "TS_V_token": ["arm", "0", "0", "0", "0"], "File": "arm1", "Func": "neon_make_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44451, "Length": 208}
{"ground_truth": ["", "rtx_insn", "*", "thumb1_md_asm_adjust", "(", "vec", "<", "rtx", ">", "&", "outputs", ",", "vec", "<", "rtx", ">", "&", ",", "vec", "<", "machine_mode", ">", "&", ",", "vec", "<", "const", "char", "*", ">", "&", "constraints", ",", "vec", "<", "rtx", ">", "&", ",", "HARD_REG_SET", "&", ")", "{", "for", "(", "unsigned", "i", "=", "0", ",", "n", "=", "outputs", ".", "length", "(", ")", ";", "i", "<", "n", ";", "++", "i", ")", "if", "(", "strncmp", "(", "constraints", "[", "i", "]", ",", "\"=@cc\"", ",", "4", ")", "==", "0", ")", "{", "sorry", "(", "\"asm flags not supported in thumb1 mode\"", ")", ";", "break", ";", "}", "return", "NULL", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_MD_ASM_ADJUST", ",", "while", "in", "thumb1", "mode", ".", "Unlike", "the", "arm", "version", ",", "we", "do", "NOT", "implement", "asm", "flag", "outputs", "."], "TS_V_token": ["arm", "0", "\"=@cc\"", "4", "0", "\"asm flags not supported in thumb1 mode\""], "File": "arm1", "Func": "thumb1_md_asm_adjust", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44452, "Length": 93}
{"ground_truth": ["", "void", "thumb2_expand_return", "(", "bool", "simple_return", ")", "{", "int", "i", ",", "num_regs", ";", "unsigned", "long", "saved_regs_mask", ";", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "saved_regs_mask", "=", "offsets", "->", "saved_regs_mask", ";", "for", "(", "i", "=", "0", ",", "num_regs", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "if", "(", "!", "simple_return", "&&", "saved_regs_mask", ")", "{", "gcc_assert", "(", "!", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", ";", "if", "(", "arm_current_function_pac_enabled_p", "(", ")", ")", "{", "gcc_assert", "(", "!", "(", "saved_regs_mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", ")", ";", "arm_emit_multi_reg_pop", "(", "saved_regs_mask", ")", ";", "emit_insn", "(", "gen_aut_nop", "(", ")", ")", ";", "emit_jump_insn", "(", "simple_return_rtx", ")", ";", "}", "else", "if", "(", "num_regs", "==", "1", ")", "{", "rtx", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "2", ")", ")", ";", "rtx", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ";", "rtx", "addr", "=", "gen_rtx_MEM", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "SImode", ",", "stack_pointer_rtx", ")", ")", ";", "set_mem_alias_set", "(", "addr", ",", "get_frame_alias_set", "(", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", "=", "gen_rtx_SET", "(", "reg", ",", "addr", ")", ";", "RTX_FRAME_RELATED_P", "(", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", ")", "=", "1", ";", "emit_jump_insn", "(", "par", ")", ";", "}", "else", "{", "saved_regs_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "saved_regs_mask", "|=", "(", "1", "<<", "PC_REGNUM", ")", ";", "arm_emit_multi_reg_pop", "(", "saved_regs_mask", ")", ";", "}", "}", "else", "{", "if", "(", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", "cmse_nonsecure_entry_clear_before_return", "(", ")", ";", "emit_jump_insn", "(", "simple_return_rtx", ")", ";", "}", "}", ""], "natrual_language": ["Generate", "pattern", "*", "pop_multiple_with_stack_update_and_return", "if", "single", "POP", "instruction", "can", "be", "generated", ".", "LR", "should", "be", "replaced", "by", "PC", ".", "All", "the", "checks", "required", "are", "already", "done", "by", "USE_RETURN_INSN", "(", ")", ".", "Hence", ",", "all", "we", "really", "need", "to", "check", "here", "is", "if", "single", "register", "is", "to", "be", "returned", ",", "or", "multiple", "register", "return", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "2", "0", "0", "0", "1", "0", "1", "1", "1", "1"], "File": "arm1", "Func": "thumb2_expand_return", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44453, "Length": 270}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_address_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "TARGET_HAVE_MVE", "&&", "VALID_MVE_PRED_MODE", "(", "mode", ")", ")", "mode", "=", "HImode", ";", "if", "(", "TARGET_HAVE_MVE", "&&", "VALID_MVE_MODE", "(", "mode", ")", ")", "return", "mve_vector_mem_operand", "(", "mode", ",", "x", ",", "strict_p", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", ";", "if", "(", "!", "CONST_INT_P", "(", "addend", ")", ")", "return", "0", ";", "offset", "=", "INTVAL", "(", "addend", ")", ";", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "return", "(", "offset", ">", "-", "256", "&&", "offset", "<", "256", ")", ";", "return", "(", "use_ldrd", "&&", "offset", ">", "-", "1024", "&&", "offset", "<", "1024", "&&", "(", "offset", "&", "3", ")", "==", "0", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", "||", "(", "TARGET_HAVE_MVE", "&&", "VALID_MVE_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "(", "thumb2_legitimate_index_p", "(", "mode", ",", "xop1", ",", "strict_p", ")", "||", "(", "!", "strict_p", "&&", "will_be_in_index_register", "(", "xop1", ")", ")", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "thumb2_legitimate_index_p", "(", "mode", ",", "xop0", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "can_avoid_literal_pool_for_label_p", "(", "x", ")", ")", "return", "0", ";", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "Thumb-2", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "256", "256", "1024", "1024", "3", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "0"], "File": "arm1", "Func": "thumb2_legitimate_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44454, "Length": 503}
{"ground_truth": ["", "int", "use_return_insn", "(", "int", "iscond", ",", "rtx", "sibling", ")", "{", "int", "regno", ";", "unsigned", "int", "func_type", ";", "unsigned", "long", "saved_int_regs", ";", "unsigned", "HOST_WIDE_INT", "stack_adjust", ";", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "if", "(", "arm_current_function_pac_enabled_p", "(", ")", ")", "return", "0", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "func_type", "&", "(", "ARM_FT_VOLATILE", "|", "ARM_FT_NAKED", "|", "ARM_FT_STACKALIGN", ")", ")", "return", "0", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", "&&", "(", "frame_pointer_needed", "||", "TARGET_THUMB", ")", ")", "return", "0", ";", "if", "(", "TARGET_LDRD", "&&", "current_tune", "->", "prefer_ldrd_strd", "&&", "!", "optimize_function_for_size_p", "(", "cfun", ")", ")", "return", "0", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "stack_adjust", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "crtl", "->", "args", ".", "pretend_args_size", "||", "cfun", "->", "machine", "->", "uses_anonymous_args", "||", "crtl", "->", "calls_eh_return", "||", "cfun", "->", "calls_alloca", "||", "!", "(", "stack_adjust", "==", "0", "||", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "stack_adjust", "==", "4", ")", ")", "||", "(", "!", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", ")", "&&", "arm_compute_static_chain_stack_bytes", "(", ")", "!=", "0", ")", ")", "return", "0", ";", "saved_int_regs", "=", "offsets", "->", "saved_regs_mask", ";", "if", "(", "stack_adjust", "==", "4", "&&", "!", "arm_arch5t", "&&", "TARGET_ARM", ")", "{", "if", "(", "!", "call_used_or_fixed_reg_p", "(", "3", ")", ")", "return", "0", ";", "if", "(", "arm_size_return_regs", "(", ")", ">=", "(", "4", "*", "UNITS_PER_WORD", ")", ")", "return", "0", ";", "if", "(", "sibling", ")", "{", "gcc_assert", "(", "CALL_P", "(", "sibling", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "sibling", ",", "USE", ",", "3", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&", "0x7", ")", "return", "0", ";", "}", "if", "(", "TARGET_INTERWORK", "&&", "saved_int_regs", "!=", "0", "&&", "!", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "iscond", "&&", "arm_tune_strongarm", ")", "{", "if", "(", "saved_int_regs", "!=", "0", "&&", "saved_int_regs", "!=", "(", "1", "<<", "LR_REGNUM", ")", ")", "return", "0", ";", "if", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", ")", "return", "0", ";", "}", "if", "(", "IS_CMSE_ENTRY", "(", "func_type", ")", "&&", "(", "saved_int_regs", "||", "TARGET_HAVE_FPCXT_CMSE", ")", ")", "return", "0", ";", "if", "(", "saved_int_regs", "&&", "!", "(", "saved_int_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "return", "0", ";", "if", "(", "TARGET_VFP_BASE", ")", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<=", "LAST_VFP_REGNUM", ";", "regno", "++", ")", "if", "(", "reg_needs_saving_p", "(", "regno", ")", ")", "return", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "reg_needs_saving_p", "(", "regno", ")", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "'s", "epilogue", "can", "be", "output", "as", "RTL", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0", "4", "0", "0", "4", "3", "0", "4", "0", "3", "0", "0x7", "0", "0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "1"], "File": "arm1", "Func": "use_return_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44455, "Length": 405}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_func_type", "(", ")", "{", "unsigned", "long", "type", "=", "ARM_FT_UNKNOWN", ";", "tree", "a", ";", "tree", "attr", ";", "if", "(", "TREE_CODE", "(", "current_function_decl", ")", "!=", "FUNCTION_DECL", ")", "abort", "(", ")", ";", "if", "(", "optimize", ">", "0", "&&", "current_function_nothrow", "&&", "TREE_THIS_VOLATILE", "(", "current_function_decl", ")", ")", "type", "|=", "ARM_FT_VOLATILE", ";", "if", "(", "current_function_needs_context", ")", "type", "|=", "ARM_FT_NESTED", ";", "attr", "=", "DECL_ATTRIBUTES", "(", "current_function_decl", ")", ";", "a", "=", "lookup_attribute", "(", "\"naked\"", ",", "attr", ")", ";", "if", "(", "a", "!=", "NULL_TREE", ")", "type", "|=", "ARM_FT_NAKED", ";", "if", "(", "cfun", "->", "machine", "->", "eh_epilogue_sp_ofs", "!=", "NULL_RTX", ")", "type", "|=", "ARM_FT_EXCEPTION_HANDLER", ";", "else", "{", "a", "=", "lookup_attribute", "(", "\"isr\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "a", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "type", "|=", "TARGET_INTERWORK", "?", "ARM_FT_INTERWORKED", ":", "ARM_FT_NORMAL", ";", "else", "type", "|=", "arm_isr_value", "(", "TREE_VALUE", "(", "a", ")", ")", ";", "}", "return", "type", ";", "}", ""], "natrual_language": ["Computes", "the", "type", "of", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "\"naked\"", "\"isr\"", "\"interrupt\""], "File": "arm2", "Func": "arm_compute_func_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44456, "Length": 153}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_reg0_reg12_mask", "(", ")", "{", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "int", "save_reg_mask", "=", "0", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "{", "unsigned", "int", "max_reg", ";", "if", "(", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_FIQ", ")", "max_reg", "=", "7", ";", "else", "max_reg", "=", "12", ";", "for", "(", "reg", "=", "0", ";", "reg", "<=", "max_reg", ";", "reg", "++", ")", "if", "(", "regs_ever_live", "[", "reg", "]", "||", "(", "!", "current_function_is_leaf", "&&", "call_used_regs", "[", "reg", "]", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "}", "else", "{", "for", "(", "reg", "=", "0", ";", "reg", "<=", "10", ";", "reg", "++", ")", "if", "(", "regs_ever_live", "[", "reg", "]", "&&", "!", "call_used_regs", "[", "reg", "]", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "if", "(", "!", "TARGET_APCS_FRAME", "&&", "!", "frame_pointer_needed", "&&", "regs_ever_live", "[", "HARD_FRAME_POINTER_REGNUM", "]", "&&", "!", "call_used_regs", "[", "HARD_FRAME_POINTER_REGNUM", "]", ")", "save_reg_mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "regs_ever_live", "[", "PIC_OFFSET_TABLE_REGNUM", "]", ")", "save_reg_mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "the", "register", "save", "mask", "for", "registers", "0", "through", "12", "inclusive", ".", "This", "code", "is", "used", "by", "arm_compute_save_reg_mask", "."], "TS_V_token": ["arm", "0", "7", "12", "0", "1", "0", "10", "1", "1", "1"], "File": "arm2", "Func": "arm_compute_save_reg0_reg12_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44457, "Length": 178}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_reg_mask", "(", ")", "{", "unsigned", "int", "save_reg_mask", "=", "0", ";", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "frame_pointer_needed", ")", "save_reg_mask", "|=", "(", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ")", "|", "(", "1", "<<", "IP_REGNUM", ")", "|", "(", "1", "<<", "LR_REGNUM", ")", "|", "(", "1", "<<", "PC_REGNUM", ")", ";", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "return", "save_reg_mask", ";", "save_reg_mask", "|=", "arm_compute_save_reg0_reg12_mask", "(", ")", ";", "if", "(", "regs_ever_live", "[", "LR_REGNUM", "]", "||", "(", "save_reg_mask", "&&", "optimize_size", "&&", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_NORMAL", ")", ")", "save_reg_mask", "|=", "1", "<<", "LR_REGNUM", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "save_reg_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", ".", "This", "is", "used", "by", "arm_get_frame_offsets", ",", "which", "may", "add", "extra", "registers", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "1", "1", "1"], "File": "arm2", "Func": "arm_compute_save_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44458, "Length": 124}
{"ground_truth": ["", "unsigned", "long", "arm_current_func_type", "(", ")", "{", "if", "(", "ARM_FUNC_TYPE", "(", "cfun", "->", "machine", "->", "func_type", ")", "==", "ARM_FT_UNKNOWN", ")", "cfun", "->", "machine", "->", "func_type", "=", "arm_compute_func_type", "(", ")", ";", "return", "cfun", "->", "machine", "->", "func_type", ";", "}", ""], "natrual_language": ["Returns", "the", "type", "of", "the", "current", "function", "."], "TS_V_token": ["arm"], "File": "arm2", "Func": "arm_current_func_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44459, "Length": 37}
{"ground_truth": ["", "static", "int", "arm_get_strip_length", "(", "char", "c", ")", "{", "switch", "(", "c", ")", "{", "ARM_NAME_ENCODING_LENGTHS", "default", ":", "return", "0", ";", "}", "}", ""], "natrual_language": ["Return", "the", "length", "of", "a", "function", "name", "prefix", "that", "starts", "with", "the", "character", "'", "c", "'", "."], "TS_V_token": ["arm", "0"], "File": "arm2", "Func": "arm_get_strip_length", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44460, "Length": 21}
{"ground_truth": ["", "void", "arm_init_expanders", "(", ")", "{", "init_machine_status", "=", "arm_init_machine_status", ";", "mark_machine_status", "=", "arm_mark_machine_status", ";", "free_machine_status", "=", "arm_free_machine_status", ";", "}", ""], "natrual_language": ["Do", "anything", "needed", "before", "RTL", "is", "emitted", "for", "each", "function", "."], "TS_V_token": ["arm"], "File": "arm2", "Func": "arm_init_expanders", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44461, "Length": 18}
{"ground_truth": ["", "const", "char", "*", "arm_strip_name_encoding", "(", "const", "char", "*", "name", ")", "{", "int", "skip", ";", "while", "(", "(", "skip", "=", "arm_get_strip_length", "(", "*", "name", ")", ")", ")", "name", "+=", "skip", ";", "return", "name", ";", "}", ""], "natrual_language": ["Return", "a", "pointer", "to", "a", "function", "'s", "name", "with", "any", "and", "all", "prefix", "encodings", "stripped", "from", "it", "."], "TS_V_token": ["arm"], "File": "arm2", "Func": "arm_strip_name_encoding", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44462, "Length": 34}
{"ground_truth": ["", "void", "thumb_expand_prologue", "(", ")", "{", "HOST_WIDE_INT", "amount", "=", "(", "get_frame_size", "(", ")", "+", "current_function_outgoing_args_size", ")", ";", "unsigned", "long", "func_type", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "return", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "{", "error", "(", "\"interrupt Service Routines cannot be coded in Thumb mode\"", ")", ";", "return", ";", "}", "if", "(", "frame_pointer_needed", ")", "emit_insn", "(", "gen_movsi", "(", "hard_frame_pointer_rtx", ",", "stack_pointer_rtx", ")", ")", ";", "if", "(", "amount", ")", "{", "amount", "=", "ROUND_UP", "(", "amount", ")", ";", "if", "(", "amount", "<", "512", ")", "emit_insn", "(", "gen_addsi3", "(", "stack_pointer_rtx", ",", "stack_pointer_rtx", ",", "GEN_INT", "(", "-", "amount", ")", ")", ")", ";", "else", "{", "int", "regno", ";", "rtx", "reg", ";", "for", "(", "regno", "=", "LAST_ARG_REGNUM", "+", "1", ";", "regno", "<=", "LAST_LO_REGNUM", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", "&&", "!", "(", "TARGET_SINGLE_PIC_BASE", "&&", "(", "regno", "==", "arm_pic_register", ")", ")", "&&", "!", "(", "frame_pointer_needed", "&&", "(", "regno", "==", "THUMB_HARD_FRAME_POINTER_REGNUM", ")", ")", ")", "break", ";", "if", "(", "regno", ">", "LAST_LO_REGNUM", ")", "{", "rtx", "spare", "=", "gen_rtx", "(", "REG", ",", "SImode", ",", "IP_REGNUM", ")", ";", "reg", "=", "gen_rtx", "(", "REG", ",", "SImode", ",", "LAST_LO_REGNUM", ")", ";", "emit_insn", "(", "gen_movsi", "(", "spare", ",", "reg", ")", ")", ";", "emit_insn", "(", "gen_prologue_use", "(", "spare", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "reg", ",", "GEN_INT", "(", "-", "amount", ")", ")", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "stack_pointer_rtx", ",", "stack_pointer_rtx", ",", "reg", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "reg", ",", "spare", ")", ")", ";", "emit_insn", "(", "gen_prologue_use", "(", "reg", ")", ")", ";", "}", "else", "{", "reg", "=", "gen_rtx", "(", "REG", ",", "SImode", ",", "regno", ")", ";", "emit_insn", "(", "gen_movsi", "(", "reg", ",", "GEN_INT", "(", "-", "amount", ")", ")", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "stack_pointer_rtx", ",", "stack_pointer_rtx", ",", "reg", ")", ")", ";", "}", "}", "}", "if", "(", "current_function_profile", "||", "TARGET_NO_SCHED_PRO", ")", "emit_insn", "(", "gen_blockage", "(", ")", ")", ";", "}", ""], "natrual_language": ["Generate", "the", "rest", "of", "a", "function", "'s", "prologue", "."], "TS_V_token": ["arm", "\"interrupt Service Routines cannot be coded in Thumb mode\"", "512", "1"], "File": "arm2", "Func": "thumb_expand_prologue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44463, "Length": 308}
{"ground_truth": ["", "int", "thumb_far_jump_used_p", "(", "int", "in_prologue", ")", "{", "rtx", "insn", ";", "if", "(", "cfun", "->", "machine", "->", "far_jump_used", ")", "return", "1", ";", "if", "(", "!", "in_prologue", ")", "{", "if", "(", "regs_ever_live", "[", "ARG_POINTER_REGNUM", "]", ")", "cfun", "->", "machine", "->", "arg_pointer_live", "=", "1", ";", "else", "if", "(", "!", "cfun", "->", "machine", "->", "arg_pointer_live", ")", "return", "0", ";", "}", "for", "(", "insn", "=", "get_insns", "(", ")", ";", "insn", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "{", "if", "(", "GET_CODE", "(", "insn", ")", "==", "JUMP_INSN", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "!=", "ADDR_VEC", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "!=", "ADDR_DIFF_VEC", "&&", "get_attr_far_jump", "(", "insn", ")", "==", "FAR_JUMP_YES", ")", "{", "cfun", "->", "machine", "->", "far_jump_used", "=", "1", ";", "return", "1", ";", "}", "}", "return", "0", ";", "}", ""], "natrual_language": ["Returns", "non-zero", "if", "the", "current", "function", "contains", ",", "or", "might", "contain", "a", "far", "jump", "."], "TS_V_token": ["arm", "1", "1", "0", "1", "1", "0"], "File": "arm2", "Func": "thumb_far_jump_used_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44464, "Length": 128}
{"ground_truth": ["", "static", "Mnode", "*", "add_minipool_forward_ref", "(", "Mfix", "*", "fix", ")", "{", "Mnode", "*", "max_mp", "=", "NULL", ";", "HOST_WIDE_INT", "max_address", "=", "fix", "->", "address", "+", "fix", "->", "forwards", ";", "Mnode", "*", "mp", ";", "if", "(", "minipool_vector_head", "&&", "fix", "->", "address", ">=", "minipool_vector_head", "->", "max_address", "-", "fix", "->", "fix_size", ")", "return", "NULL", ";", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "mp", "->", "next", ")", "{", "if", "(", "GET_CODE", "(", "fix", "->", "value", ")", "==", "GET_CODE", "(", "mp", "->", "value", ")", "&&", "fix", "->", "mode", "==", "mp", "->", "mode", "&&", "(", "GET_CODE", "(", "fix", "->", "value", ")", "!=", "CODE_LABEL", "||", "(", "CODE_LABEL_NUMBER", "(", "fix", "->", "value", ")", "==", "CODE_LABEL_NUMBER", "(", "mp", "->", "value", ")", ")", ")", "&&", "rtx_equal_p", "(", "fix", "->", "value", ",", "mp", "->", "value", ")", ")", "{", "mp", "->", "refcount", "++", ";", "return", "move_minipool_fix_forward_ref", "(", "mp", ",", "max_mp", ",", "max_address", ")", ";", "}", "if", "(", "max_mp", "==", "NULL", "&&", "mp", "->", "max_address", ">", "max_address", ")", "max_mp", "=", "mp", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", "&&", "max_mp", "==", "NULL", "&&", "fix", "->", "fix_size", "==", "8", "&&", "mp", "->", "fix_size", "!=", "8", ")", "{", "max_mp", "=", "mp", ";", "max_address", "=", "mp", "->", "max_address", ";", "}", "}", "mp", "=", "xmalloc", "(", "sizeof", "(", "*", "mp", ")", ")", ";", "mp", "->", "fix_size", "=", "fix", "->", "fix_size", ";", "mp", "->", "mode", "=", "fix", "->", "mode", ";", "mp", "->", "value", "=", "fix", "->", "value", ";", "mp", "->", "refcount", "=", "1", ";", "mp", "->", "min_address", "=", "-", "65536", ";", "if", "(", "max_mp", "==", "NULL", ")", "{", "mp", "->", "max_address", "=", "max_address", ";", "mp", "->", "next", "=", "NULL", ";", "mp", "->", "prev", "=", "minipool_vector_tail", ";", "if", "(", "mp", "->", "prev", "==", "NULL", ")", "{", "minipool_vector_head", "=", "mp", ";", "minipool_vector_label", "=", "gen_label_rtx", "(", ")", ";", "}", "else", "mp", "->", "prev", "->", "next", "=", "mp", ";", "minipool_vector_tail", "=", "mp", ";", "}", "else", "{", "if", "(", "max_address", ">", "max_mp", "->", "max_address", "-", "mp", "->", "fix_size", ")", "mp", "->", "max_address", "=", "max_mp", "->", "max_address", "-", "mp", "->", "fix_size", ";", "else", "mp", "->", "max_address", "=", "max_address", ";", "mp", "->", "next", "=", "max_mp", ";", "mp", "->", "prev", "=", "max_mp", "->", "prev", ";", "max_mp", "->", "prev", "=", "mp", ";", "if", "(", "mp", "->", "prev", "!=", "NULL", ")", "mp", "->", "prev", "->", "next", "=", "mp", ";", "else", "minipool_vector_head", "=", "mp", ";", "}", "max_mp", "=", "mp", ";", "while", "(", "mp", "->", "prev", "!=", "NULL", "&&", "mp", "->", "prev", "->", "max_address", ">", "mp", "->", "max_address", "-", "mp", "->", "prev", "->", "fix_size", ")", "{", "mp", "->", "prev", "->", "max_address", "=", "mp", "->", "max_address", "-", "mp", "->", "prev", "->", "fix_size", ";", "mp", "=", "mp", "->", "prev", ";", "}", "return", "max_mp", ";", "}", ""], "natrual_language": ["Add", "a", "constant", "to", "the", "minipool", "for", "a", "forward", "reference", ".", "Returns", "the", "node", "added", "or", "NULL", "if", "the", "constant", "will", "not", "fit", "in", "this", "pool", "."], "TS_V_token": ["arm", "8", "8", "1", "65536"], "File": "arm3", "Func": "add_minipool_forward_ref", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44465, "Length": 433}
{"ground_truth": ["", "int", "adjacent_mem_locations", "(", "rtx", "a", ",", "rtx", "b", ")", "{", "if", "(", "volatile_refs_p", "(", "a", ")", "||", "volatile_refs_p", "(", "b", ")", ")", "return", "0", ";", "if", "(", "(", "GET_CODE", "(", "XEXP", "(", "a", ",", "0", ")", ")", "==", "REG", "||", "(", "GET_CODE", "(", "XEXP", "(", "a", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "a", ",", "0", ")", ",", "1", ")", ")", "==", "CONST_INT", ")", ")", "&&", "(", "GET_CODE", "(", "XEXP", "(", "b", ",", "0", ")", ")", "==", "REG", "||", "(", "GET_CODE", "(", "XEXP", "(", "b", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "b", ",", "0", ")", ",", "1", ")", ")", "==", "CONST_INT", ")", ")", ")", "{", "HOST_WIDE_INT", "val0", "=", "0", ",", "val1", "=", "0", ";", "rtx", "reg0", ",", "reg1", ";", "int", "val_diff", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "a", ",", "0", ")", ")", "==", "PLUS", ")", "{", "reg0", "=", "XEXP", "(", "XEXP", "(", "a", ",", "0", ")", ",", "0", ")", ";", "val0", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "a", ",", "0", ")", ",", "1", ")", ")", ";", "}", "else", "reg0", "=", "XEXP", "(", "a", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "b", ",", "0", ")", ")", "==", "PLUS", ")", "{", "reg1", "=", "XEXP", "(", "XEXP", "(", "b", ",", "0", ")", ",", "0", ")", ";", "val1", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "b", ",", "0", ")", ",", "1", ")", ")", ";", "}", "else", "reg1", "=", "XEXP", "(", "b", ",", "0", ")", ";", "if", "(", "!", "const_ok_for_op", "(", "PLUS", ",", "val0", ")", "||", "!", "const_ok_for_op", "(", "PLUS", ",", "val1", ")", ")", "return", "0", ";", "if", "(", "arm_eliminable_register", "(", "reg0", ")", ")", "return", "0", ";", "val_diff", "=", "val1", "-", "val0", ";", "if", "(", "arm_ld_sched", ")", "{", "return", "(", "optimize_size", "&&", "(", "REGNO", "(", "reg0", ")", "==", "REGNO", "(", "reg1", ")", ")", "&&", "(", "val0", "==", "0", "||", "val1", "==", "0", "||", "val0", "==", "4", "||", "val1", "==", "4", ")", "&&", "(", "val_diff", "==", "4", "||", "val_diff", "==", "-", "4", ")", ")", ";", "}", "return", "(", "(", "REGNO", "(", "reg0", ")", "==", "REGNO", "(", "reg1", ")", ")", "&&", "(", "val_diff", "==", "4", "||", "val_diff", "==", "-", "4", ")", ")", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["If", "the", "target", "storage", "locations", "of", "arguments", "MEM1", "and", "MEM2", "are", "adjacent", ",", "then", "return", "the", "argument", "that", "has", "the", "lower", "address", ".", "Otherwise", ",", "return", "NULL_RTX", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "4", "4", "4", "4", "4", "4", "0"], "File": "arm3", "Func": "adjacent_mem_locations", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44466, "Length": 369}
{"ground_truth": ["", "const", "char", "*", "arithmetic_instr", "(", "rtx", "op", ",", "int", "shift_first_arg", ")", "{", "switch", "(", "GET_CODE", "(", "op", ")", ")", "{", "case", "PLUS", ":", "return", "\"add\"", ";", "case", "MINUS", ":", "return", "shift_first_arg", "?", "\"rsb\"", ":", "\"sub\"", ";", "case", "IOR", ":", "return", "\"orr\"", ";", "case", "XOR", ":", "return", "\"eor\"", ";", "case", "AND", ":", "return", "\"and\"", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Return", "the", "appropriate", "ARM", "instruction", "for", "the", "operation", "code", ".", "The", "returned", "result", "should", "not", "be", "overwritten", ".", "OP", "is", "the", "rtx", "of", "the", "operation", ".", "SHIFT_FIRST_ARG", "is", "TRUE", "if", "the", "first", "argument", "of", "the", "operator", "was", "shifted", "."], "TS_V_token": ["arm", "\"add\"", "\"rsb\"", "\"sub\"", "\"orr\"", "\"eor\"", "\"and\""], "File": "arm3", "Func": "arithmetic_instr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44467, "Length": 62}
{"ground_truth": ["", "static", "bool", "arm_9e_rtx_costs", "(", "rtx", "x", ",", "int", "code", ",", "int", "outer_code", ",", "int", "*", "total", ")", "{", "enum", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "int", "nonreg_cost", ";", "int", "cost", ";", "if", "(", "TARGET_THUMB", ")", "{", "switch", "(", "code", ")", "{", "case", "MULT", ":", "*", "total", "=", "COSTS_N_INSNS", "(", "3", ")", ";", "return", "true", ";", "default", ":", "*", "total", "=", "thumb_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "mode", "==", "DImode", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "ZERO_EXTEND", "||", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "SIGN_EXTEND", ")", ")", "{", "*", "total", "=", "3", ";", "return", "true", ";", "}", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", ")", "{", "*", "total", "=", "30", ";", "return", "true", ";", "}", "if", "(", "mode", "==", "DImode", ")", "{", "cost", "=", "7", ";", "nonreg_cost", "=", "8", ";", "}", "else", "{", "cost", "=", "2", ";", "nonreg_cost", "=", "4", ";", "}", "*", "total", "=", "cost", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "0", ")", ")", "?", "0", ":", "nonreg_cost", ")", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "1", ")", ")", "?", "0", ":", "nonreg_cost", ")", ";", "return", "true", ";", "default", ":", "*", "total", "=", "arm_rtx_costs_1", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "}", ""], "natrual_language": ["RTX", "costs", "for", "9e", "(", "and", "later", ")", "cores", "."], "TS_V_token": ["arm", "3", "0", "1", "0", "0", "3", "30", "7", "8", "2", "4", "0", "0", "1", "0"], "File": "arm3", "Func": "arm_9e_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44468, "Length": 253}
{"ground_truth": ["", "static", "int", "arm_address_register_rtx_p", "(", "rtx", "x", ",", "int", "strict_p", ")", "{", "int", "regno", ";", "if", "(", "GET_CODE", "(", "x", ")", "!=", "REG", ")", "return", "0", ";", "regno", "=", "REGNO", "(", "x", ")", ";", "if", "(", "strict_p", ")", "return", "ARM_REGNO_OK_FOR_BASE_P", "(", "regno", ")", ";", "return", "(", "regno", "<=", "LAST_ARM_REGNUM", "||", "regno", ">=", "FIRST_PSEUDO_REGISTER", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "valid", "as", "an", "ARM", "state", "addressing", "register", "."], "TS_V_token": ["arm", "0"], "File": "arm3", "Func": "arm_address_register_rtx_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44469, "Length": 63}
{"ground_truth": ["", "static", "int", "arm_adjust_cost", "(", "rtx", "insn", ",", "rtx", "link", ",", "rtx", "dep", ",", "int", "cost", ")", "{", "rtx", "i_pat", ",", "d_pat", ";", "if", "(", "arm_tune_xscale", "&&", "REG_NOTE_KIND", "(", "link", ")", "==", "0", "&&", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", ")", "{", "int", "shift_opnum", "=", "get_attr_shift", "(", "insn", ")", ";", "enum", "attr_type", "attr_type", "=", "get_attr_type", "(", "dep", ")", ";", "if", "(", "shift_opnum", "!=", "0", "&&", "(", "attr_type", "==", "TYPE_ALU_SHIFT", "||", "attr_type", "==", "TYPE_ALU_SHIFT_REG", ")", ")", "{", "rtx", "shifted_operand", ";", "int", "opno", ";", "extract_insn", "(", "insn", ")", ";", "shifted_operand", "=", "recog_data", ".", "operand", "[", "shift_opnum", "]", ";", "extract_insn", "(", "dep", ")", ";", "preprocess_constraints", "(", ")", ";", "for", "(", "opno", "=", "0", ";", "opno", "<", "recog_data", ".", "n_operands", ";", "opno", "++", ")", "{", "if", "(", "recog_data", ".", "operand_type", "[", "opno", "]", "==", "OP_IN", ")", "continue", ";", "if", "(", "reg_overlap_mentioned_p", "(", "recog_data", ".", "operand", "[", "opno", "]", ",", "shifted_operand", ")", ")", "return", "2", ";", "}", "}", "}", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_ANTI", "||", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_OUTPUT", ")", "return", "0", ";", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "0", "&&", "GET_CODE", "(", "insn", ")", "==", "CALL_INSN", ")", "return", "1", ";", "if", "(", "(", "i_pat", "=", "single_set", "(", "insn", ")", ")", "!=", "NULL", "&&", "GET_CODE", "(", "SET_SRC", "(", "i_pat", ")", ")", "==", "MEM", "&&", "(", "d_pat", "=", "single_set", "(", "dep", ")", ")", "!=", "NULL", "&&", "GET_CODE", "(", "SET_DEST", "(", "d_pat", ")", ")", "==", "MEM", ")", "{", "rtx", "src_mem", "=", "XEXP", "(", "SET_SRC", "(", "i_pat", ")", ",", "0", ")", ";", "if", "(", "(", "GET_CODE", "(", "src_mem", ")", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "src_mem", ")", ")", "||", "reg_mentioned_p", "(", "stack_pointer_rtx", ",", "src_mem", ")", "||", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "src_mem", ")", "||", "reg_mentioned_p", "(", "hard_frame_pointer_rtx", ",", "src_mem", ")", ")", "return", "1", ";", "}", "return", "cost", ";", "}", ""], "natrual_language": ["This", "function", "implements", "the", "target", "macro", "TARGET_SCHED_ADJUST_COST", ".", "It", "corrects", "the", "value", "of", "COST", "based", "on", "the", "relationship", "between", "INSN", "and", "DEP", "through", "the", "dependence", "LINK", ".", "It", "returns", "the", "new", "value", ".", "There", "is", "a", "per-core", "adjust_cost", "hook", "to", "adjust", "scheduler", "costs", "and", "the", "per-core", "hook", "can", "choose", "to", "completely", "override", "the", "generic", "adjust_cost", "function", ".", "Only", "put", "bits", "of", "code", "into", "arm_adjust_cost", "that", "are", "common", "across", "all", "cores", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "2", "0", "0", "1", "0", "1"], "File": "arm3", "Func": "arm_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44470, "Length": 301}
{"ground_truth": ["", "int", "arm_apply_result_size", "(", "void", ")", "{", "int", "size", "=", "16", ";", "if", "(", "TARGET_ARM", ")", "{", "if", "(", "TARGET_HARD_FLOAT_ABI", ")", "{", "if", "(", "TARGET_FPA", ")", "size", "+=", "12", ";", "if", "(", "TARGET_MAVERICK", ")", "size", "+=", "8", ";", "}", "if", "(", "TARGET_IWMMXT_ABI", ")", "size", "+=", "8", ";", "}", "return", "size", ";", "}", ""], "natrual_language": ["Determine", "the", "amount", "of", "memory", "needed", "to", "store", "the", "possible", "return", "registers", "of", "an", "untyped", "call", "."], "TS_V_token": ["arm", "16", "12", "8", "8"], "File": "arm3", "Func": "arm_apply_result_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44471, "Length": 51}
{"ground_truth": ["", "static", "inline", "int", "arm_arm_address_cost", "(", "rtx", "x", ")", "{", "enum", "rtx_code", "c", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "c", "==", "PRE_INC", "||", "c", "==", "PRE_DEC", "||", "c", "==", "POST_INC", "||", "c", "==", "POST_DEC", ")", "return", "0", ";", "if", "(", "c", "==", "MEM", "||", "c", "==", "LABEL_REF", "||", "c", "==", "SYMBOL_REF", ")", "return", "10", ";", "if", "(", "c", "==", "PLUS", "||", "c", "==", "MINUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "CONST_INT", ")", "return", "2", ";", "if", "(", "ARITHMETIC_P", "(", "XEXP", "(", "x", ",", "0", ")", ")", "||", "ARITHMETIC_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "return", "3", ";", "return", "4", ";", "}", "return", "6", ";", "}", ""], "natrual_language": ["All", "address", "computations", "that", "can", "be", "done", "are", "free", ",", "but", "rtx", "cost", "returns", "the", "same", "for", "practically", "all", "of", "them", ".", "So", "we", "weight", "the", "different", "types", "of", "address", "here", "in", "the", "order", "(", "most", "pref", "first", ")", ":", "PRE/POST_INC/DEC", ",", "SHIFT", "or", "NON-INT", "sum", ",", "INT", "sum", ",", "REG", ",", "MEM", "or", "LABEL", "."], "TS_V_token": ["arm", "0", "10", "0", "2", "0", "1", "3", "4", "6"], "File": "arm3", "Func": "arm_arm_address_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44472, "Length": 117}
{"ground_truth": ["", "static", "bool", "arm_assemble_integer", "(", "rtx", "x", ",", "unsigned", "int", "size", ",", "int", "aligned_p", ")", "{", "if", "(", "size", "==", "UNITS_PER_WORD", "&&", "aligned_p", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "NEED_GOT_RELOC", "&&", "flag_pic", "&&", "making_const_table", "&&", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "||", "GET_CODE", "(", "x", ")", "==", "LABEL_REF", ")", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "&&", "(", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "||", "SYMBOL_REF_LOCAL_P", "(", "x", ")", ")", ")", "fputs", "(", "\"(GOTOFF)\"", ",", "asm_out_file", ")", ";", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "LABEL_REF", ")", "fputs", "(", "\"(GOTOFF)\"", ",", "asm_out_file", ")", ";", "else", "fputs", "(", "\"(GOT)\"", ",", "asm_out_file", ")", ";", "}", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "true", ";", "}", "if", "(", "arm_vector_mode_supported_p", "(", "GET_MODE", "(", "x", ")", ")", ")", "{", "int", "i", ",", "units", ";", "gcc_assert", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", ";", "units", "=", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "switch", "(", "GET_MODE", "(", "x", ")", ")", "{", "case", "V2SImode", ":", "size", "=", "4", ";", "break", ";", "case", "V4HImode", ":", "size", "=", "2", ";", "break", ";", "case", "V8QImode", ":", "size", "=", "1", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", ";", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_integer", "(", "elt", ",", "size", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ",", "1", ")", ";", "}", "return", "true", ";", "}", "return", "default_assemble_integer", "(", "x", ",", "size", ",", "aligned_p", ")", ";", "}", ""], "natrual_language": ["Target", "hook", "for", "assembling", "integer", "objects", ".", "The", "ARM", "version", "needs", "to", "handle", "word-sized", "values", "specially", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "\"(GOTOFF)\"", "\"(GOTOFF)\"", "\"(GOT)\"", "4", "2", "1", "0", "0", "1"], "File": "arm3", "Func": "arm_assemble_integer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44473, "Length": 264}
{"ground_truth": ["", "static", "int", "arm_barrier_cost", "(", "rtx", "insn", ")", "{", "int", "base_cost", "=", "50", ";", "rtx", "next", "=", "next_nonnote_insn", "(", "insn", ")", ";", "if", "(", "next", "!=", "NULL", "&&", "GET_CODE", "(", "next", ")", "==", "CODE_LABEL", ")", "base_cost", "-=", "20", ";", "switch", "(", "GET_CODE", "(", "insn", ")", ")", "{", "case", "CODE_LABEL", ":", "return", "50", ";", "case", "INSN", ":", "case", "CALL_INSN", ":", "return", "base_cost", ";", "case", "JUMP_INSN", ":", "return", "base_cost", "-", "10", ";", "default", ":", "return", "base_cost", "+", "10", ";", "}", "}", ""], "natrual_language": ["Return", "the", "cost", "of", "forcibly", "inserting", "a", "barrier", "after", "INSN", "."], "TS_V_token": ["arm", "50", "20", "50", "10", "10"], "File": "arm3", "Func": "arm_barrier_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44474, "Length": 78}
{"ground_truth": ["", "static", "bool", "arm_cannot_copy_insn_p", "(", "rtx", "insn", ")", "{", "rtx", "pat", "=", "PATTERN", "(", "insn", ")", ";", "if", "(", "GET_CODE", "(", "pat", ")", "==", "PARALLEL", "&&", "GET_CODE", "(", "XVECEXP", "(", "pat", ",", "0", ",", "0", ")", ")", "==", "SET", ")", "{", "rtx", "rhs", "=", "SET_SRC", "(", "XVECEXP", "(", "pat", ",", "0", ",", "0", ")", ")", ";", "if", "(", "GET_CODE", "(", "rhs", ")", "==", "UNSPEC", "&&", "XINT", "(", "rhs", ",", "1", ")", "==", "UNSPEC_PIC_BASE", ")", "return", "TRUE", ";", "if", "(", "GET_CODE", "(", "rhs", ")", "==", "MEM", "&&", "GET_CODE", "(", "XEXP", "(", "rhs", ",", "0", ")", ")", "==", "UNSPEC", "&&", "XINT", "(", "XEXP", "(", "rhs", ",", "0", ")", ",", "1", ")", "==", "UNSPEC_PIC_BASE", ")", "return", "TRUE", ";", "}", "return", "FALSE", ";", "}", ""], "natrual_language": ["Must", "not", "copy", "any", "rtx", "that", "uses", "a", "pc-relative", "address", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1", "0", "0", "1"], "File": "arm3", "Func": "arm_cannot_copy_insn_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44475, "Length": 119}
{"ground_truth": ["", "enum", "rtx_code", "arm_canonicalize_comparison", "(", "enum", "rtx_code", "code", ",", "enum", "machine_mode", "mode", ",", "rtx", "*", "op1", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "INTVAL", "(", "*", "op1", ")", ";", "unsigned", "HOST_WIDE_INT", "maxval", ";", "maxval", "=", "(", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "1", ")", "<<", "(", "GET_MODE_BITSIZE", "(", "mode", ")", "-", "1", ")", ")", "-", "1", ";", "switch", "(", "code", ")", "{", "case", "EQ", ":", "case", "NE", ":", "return", "code", ";", "case", "GT", ":", "case", "LE", ":", "if", "(", "i", "!=", "maxval", "&&", "(", "const_ok_for_arm", "(", "i", "+", "1", ")", "||", "const_ok_for_arm", "(", "-", "(", "i", "+", "1", ")", ")", ")", ")", "{", "*", "op1", "=", "GEN_INT", "(", "i", "+", "1", ")", ";", "return", "code", "==", "GT", "?", "GE", ":", "LT", ";", "}", "break", ";", "case", "GE", ":", "case", "LT", ":", "if", "(", "i", "!=", "~", "maxval", "&&", "(", "const_ok_for_arm", "(", "i", "-", "1", ")", "||", "const_ok_for_arm", "(", "-", "(", "i", "-", "1", ")", ")", ")", ")", "{", "*", "op1", "=", "GEN_INT", "(", "i", "-", "1", ")", ";", "return", "code", "==", "GE", "?", "GT", ":", "LE", ";", "}", "break", ";", "case", "GTU", ":", "case", "LEU", ":", "if", "(", "i", "!=", "~", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "0", ")", "&&", "(", "const_ok_for_arm", "(", "i", "+", "1", ")", "||", "const_ok_for_arm", "(", "-", "(", "i", "+", "1", ")", ")", ")", ")", "{", "*", "op1", "=", "GEN_INT", "(", "i", "+", "1", ")", ";", "return", "code", "==", "GTU", "?", "GEU", ":", "LTU", ";", "}", "break", ";", "case", "GEU", ":", "case", "LTU", ":", "if", "(", "i", "!=", "0", "&&", "(", "const_ok_for_arm", "(", "i", "-", "1", ")", "||", "const_ok_for_arm", "(", "-", "(", "i", "-", "1", ")", ")", ")", ")", "{", "*", "op1", "=", "GEN_INT", "(", "i", "-", "1", ")", ";", "return", "code", "==", "GEU", "?", "GTU", ":", "LEU", ";", "}", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "code", ";", "}", ""], "natrual_language": ["Canonicalize", "a", "comparison", "so", "that", "we", "are", "more", "likely", "to", "recognize", "it", ".", "This", "can", "be", "done", "for", "a", "few", "constant", "compares", ",", "where", "we", "can", "make", "the", "immediate", "value", "easier", "to", "load", "."], "TS_V_token": ["arm", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1"], "File": "arm3", "Func": "arm_canonicalize_comparison", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44476, "Length": 303}
{"ground_truth": ["", "static", "bool", "arm_cirrus_insn_p", "(", "rtx", "insn", ")", "{", "enum", "attr_cirrus", "attr", ";", "if", "(", "!", "insn", "||", "GET_CODE", "(", "insn", ")", "!=", "INSN", "||", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "USE", "||", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "CLOBBER", ")", "return", "0", ";", "attr", "=", "get_attr_cirrus", "(", "insn", ")", ";", "return", "attr", "!=", "CIRRUS_NOT", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "INSN", "is", "a", "Cirrus", "instruction", "."], "TS_V_token": ["arm", "0"], "File": "arm3", "Func": "arm_cirrus_insn_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44477, "Length": 60}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_func_type", "(", "void", ")", "{", "unsigned", "long", "type", "=", "ARM_FT_UNKNOWN", ";", "tree", "a", ";", "tree", "attr", ";", "gcc_assert", "(", "TREE_CODE", "(", "current_function_decl", ")", "==", "FUNCTION_DECL", ")", ";", "if", "(", "optimize", ">", "0", "&&", "(", "TREE_NOTHROW", "(", "current_function_decl", ")", "||", "!", "(", "flag_unwind_tables", "||", "(", "flag_exceptions", "&&", "!", "USING_SJLJ_EXCEPTIONS", ")", ")", ")", "&&", "TREE_THIS_VOLATILE", "(", "current_function_decl", ")", ")", "type", "|=", "ARM_FT_VOLATILE", ";", "if", "(", "cfun", "->", "static_chain_decl", "!=", "NULL", ")", "type", "|=", "ARM_FT_NESTED", ";", "attr", "=", "DECL_ATTRIBUTES", "(", "current_function_decl", ")", ";", "a", "=", "lookup_attribute", "(", "\"naked\"", ",", "attr", ")", ";", "if", "(", "a", "!=", "NULL_TREE", ")", "type", "|=", "ARM_FT_NAKED", ";", "a", "=", "lookup_attribute", "(", "\"isr\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "a", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "type", "|=", "TARGET_INTERWORK", "?", "ARM_FT_INTERWORKED", ":", "ARM_FT_NORMAL", ";", "else", "type", "|=", "arm_isr_value", "(", "TREE_VALUE", "(", "a", ")", ")", ";", "return", "type", ";", "}", ""], "natrual_language": ["Computes", "the", "type", "of", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "\"naked\"", "\"isr\"", "\"interrupt\""], "File": "arm3", "Func": "arm_compute_func_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44478, "Length": 155}
{"ground_truth": ["", "HOST_WIDE_INT", "arm_compute_initial_elimination_offset", "(", "unsigned", "int", "from", ",", "unsigned", "int", "to", ")", "{", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "switch", "(", "from", ")", "{", "case", "ARG_POINTER_REGNUM", ":", "switch", "(", "to", ")", "{", "case", "THUMB_HARD_FRAME_POINTER_REGNUM", ":", "return", "0", ";", "case", "FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "soft_frame", "-", "offsets", "->", "saved_args", ";", "case", "ARM_HARD_FRAME_POINTER_REGNUM", ":", "if", "(", "offsets", "->", "frame", "==", "offsets", "->", "saved_regs", ")", "return", "0", ";", "return", "(", "frame_pointer_needed", "&&", "cfun", "->", "static_chain_decl", "!=", "NULL", "&&", "!", "cfun", "->", "machine", "->", "uses_anonymous_args", ")", "?", "4", ":", "0", ";", "case", "STACK_POINTER_REGNUM", ":", "return", "offsets", "->", "outgoing_args", "-", "(", "offsets", "->", "saved_args", "+", "4", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "gcc_unreachable", "(", ")", ";", "case", "FRAME_POINTER_REGNUM", ":", "switch", "(", "to", ")", "{", "case", "THUMB_HARD_FRAME_POINTER_REGNUM", ":", "return", "0", ";", "case", "ARM_HARD_FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "frame", "-", "offsets", "->", "soft_frame", ";", "case", "STACK_POINTER_REGNUM", ":", "return", "offsets", "->", "outgoing_args", "-", "offsets", "->", "soft_frame", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "gcc_unreachable", "(", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Compute", "the", "distance", "from", "register", "FROM", "to", "register", "TO", ".", "These", "can", "be", "the", "arg", "pointer", "(", "26", ")", ",", "the", "soft", "frame", "pointer", "(", "25", ")", ",", "the", "stack", "pointer", "(", "13", ")", "or", "the", "hard", "frame", "pointer", "(", "11", ")", ".", "Typical", "stack", "layout", "looks", "like", "this", ":", "old", "stack", "pointer", "-", ">", "|", "|", "--", "--", "|", "|", "\\", "|", "|", "saved", "arguments", "for", "|", "|", "vararg", "functions", "|", "|", "/", "--", "hard", "FP", "&", "arg", "pointer", "-", ">", "|", "|", "\\", "|", "|", "stack", "|", "|", "frame", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "call", "saved", "|", "|", "registers", "soft", "frame", "pointer", "-", ">", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "local", "|", "|", "variables", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "outgoing", "|", "|", "arguments", "current", "stack", "pointer", "-", ">", "|", "|", "/", "--", "For", "a", "given", "funciton", "some", "or", "all", "of", "these", "stack", "compomnents", "may", "not", "be", "needed", ",", "giving", "rise", "to", "the", "possibility", "of", "eliminating", "some", "of", "the", "registers", ".", "The", "values", "returned", "by", "this", "function", "must", "reflect", "the", "behaviour", "of", "arm_expand_prologue", "(", ")", "and", "arm_compute_save_reg_mask", "(", ")", ".", "The", "sign", "of", "the", "number", "returned", "reflects", "the", "direction", "of", "stack", "growth", ",", "so", "the", "values", "are", "positive", "for", "all", "eliminations", "except", "from", "the", "soft", "frame", "pointer", "to", "the", "hard", "frame", "pointer", "."], "TS_V_token": ["arm", "0", "0", "4", "0", "4", "0"], "File": "arm3", "Func": "arm_compute_initial_elimination_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44479, "Length": 175}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_reg0_reg12_mask", "(", "void", ")", "{", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "long", "save_reg_mask", "=", "0", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "{", "unsigned", "int", "max_reg", ";", "if", "(", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_FIQ", ")", "max_reg", "=", "7", ";", "else", "max_reg", "=", "12", ";", "for", "(", "reg", "=", "0", ";", "reg", "<=", "max_reg", ";", "reg", "++", ")", "if", "(", "regs_ever_live", "[", "reg", "]", "||", "(", "!", "current_function_is_leaf", "&&", "call_used_regs", "[", "reg", "]", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "current_function_uses_pic_offset_table", ")", "save_reg_mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "}", "else", "{", "for", "(", "reg", "=", "0", ";", "reg", "<=", "10", ";", "reg", "++", ")", "if", "(", "regs_ever_live", "[", "reg", "]", "&&", "!", "call_used_regs", "[", "reg", "]", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "if", "(", "!", "TARGET_APCS_FRAME", "&&", "!", "frame_pointer_needed", "&&", "regs_ever_live", "[", "HARD_FRAME_POINTER_REGNUM", "]", "&&", "!", "call_used_regs", "[", "HARD_FRAME_POINTER_REGNUM", "]", ")", "save_reg_mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "(", "regs_ever_live", "[", "PIC_OFFSET_TABLE_REGNUM", "]", "||", "current_function_uses_pic_offset_table", ")", ")", "save_reg_mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "}", "if", "(", "current_function_calls_eh_return", ")", "{", "unsigned", "int", "i", ";", "for", "(", "i", "=", "0", ";", ";", "i", "++", ")", "{", "reg", "=", "EH_RETURN_DATA_REGNO", "(", "i", ")", ";", "if", "(", "reg", "==", "INVALID_REGNUM", ")", "break", ";", "save_reg_mask", "|=", "1", "<<", "reg", ";", "}", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "the", "register", "save", "mask", "for", "registers", "0", "through", "12", "inclusive", ".", "This", "code", "is", "used", "by", "arm_compute_save_reg_mask", "."], "TS_V_token": ["arm", "0", "7", "12", "0", "1", "1", "0", "10", "1", "1", "1", "0", "1"], "File": "arm3", "Func": "arm_compute_save_reg0_reg12_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44480, "Length": 241}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_reg_mask", "(", "void", ")", "{", "unsigned", "int", "save_reg_mask", "=", "0", ";", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "frame_pointer_needed", ")", "save_reg_mask", "|=", "(", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ")", "|", "(", "1", "<<", "IP_REGNUM", ")", "|", "(", "1", "<<", "LR_REGNUM", ")", "|", "(", "1", "<<", "PC_REGNUM", ")", ";", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "return", "save_reg_mask", ";", "save_reg_mask", "|=", "arm_compute_save_reg0_reg12_mask", "(", ")", ";", "if", "(", "regs_ever_live", "[", "LR_REGNUM", "]", "||", "(", "save_reg_mask", "&&", "optimize_size", "&&", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_NORMAL", "&&", "!", "current_function_calls_eh_return", ")", ")", "save_reg_mask", "|=", "1", "<<", "LR_REGNUM", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "save_reg_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "(", "(", "bit_count", "(", "save_reg_mask", ")", "+", "ARM_NUM_INTS", "(", "current_function_pretend_args_size", ")", ")", "%", "2", ")", "!=", "0", ")", "{", "unsigned", "int", "reg", ";", "for", "(", "reg", "=", "4", ";", "reg", "<=", "12", ";", "reg", "++", ")", "if", "(", "(", "save_reg_mask", "&", "(", "1", "<<", "reg", ")", ")", "==", "0", ")", "break", ";", "if", "(", "reg", "<=", "12", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "else", "{", "cfun", "->", "machine", "->", "sibcall_blocked", "=", "1", ";", "save_reg_mask", "|=", "(", "1", "<<", "3", ")", ";", "}", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", ".", "This", "is", "used", "by", "arm_get_frame_offsets", ",", "which", "may", "add", "extra", "registers", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "1", "1", "1", "2", "0", "4", "12", "1", "0", "12", "1", "1", "1", "3"], "File": "arm3", "Func": "arm_compute_save_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44481, "Length": 218}
{"ground_truth": ["", "static", "int", "arm_comp_type_attributes", "(", "tree", "type1", ",", "tree", "type2", ")", "{", "int", "l1", ",", "l2", ",", "s1", ",", "s2", ";", "if", "(", "TREE_CODE", "(", "type1", ")", "!=", "FUNCTION_TYPE", ")", "return", "1", ";", "l1", "=", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "l2", "=", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "s1", "=", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "s2", "=", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "l1", "|", "l2", "|", "s1", "|", "s2", ")", "{", "if", "(", "(", "l1", "!=", "l2", ")", "||", "(", "s1", "!=", "s2", ")", ")", "return", "0", ";", "if", "(", "(", "l1", "&", "s2", ")", "||", "(", "l2", "&", "s1", ")", ")", "return", "0", ";", "}", "l1", "=", "lookup_attribute", "(", "\"isr\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "if", "(", "!", "l1", ")", "l1", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "l2", "=", "lookup_attribute", "(", "\"isr\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "!", "l2", ")", "l1", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "l1", "!=", "l2", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "0", "if", "the", "attributes", "for", "two", "types", "are", "incompatible", ",", "1", "if", "they", "are", "compatible", ",", "and", "2", "if", "they", "are", "nearly", "compatible", "(", "which", "causes", "a", "warning", "to", "be", "generated", ")", "."], "TS_V_token": ["arm", "1", "\"long_call\"", "\"long_call\"", "\"short_call\"", "\"short_call\"", "0", "0", "\"isr\"", "\"interrupt\"", "\"isr\"", "\"interrupt\"", "0", "1"], "File": "arm3", "Func": "arm_comp_type_attributes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44482, "Length": 213}
{"ground_truth": ["", "bool", "arm_const_double_by_parts", "(", "rtx", "val", ")", "{", "enum", "machine_mode", "mode", "=", "GET_MODE", "(", "val", ")", ";", "rtx", "part", ";", "if", "(", "optimize_size", "||", "arm_ld_sched", ")", "return", "true", ";", "if", "(", "mode", "==", "VOIDmode", ")", "mode", "=", "DImode", ";", "part", "=", "gen_highpart_mode", "(", "SImode", ",", "mode", ",", "val", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "part", ")", "==", "CONST_INT", ")", ";", "if", "(", "const_ok_for_arm", "(", "INTVAL", "(", "part", ")", ")", "||", "const_ok_for_arm", "(", "~", "INTVAL", "(", "part", ")", ")", ")", "return", "true", ";", "part", "=", "gen_lowpart", "(", "SImode", ",", "val", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "part", ")", "==", "CONST_INT", ")", ";", "if", "(", "const_ok_for_arm", "(", "INTVAL", "(", "part", ")", ")", "||", "const_ok_for_arm", "(", "~", "INTVAL", "(", "part", ")", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Return", "true", "if", "it", "is", "worthwhile", "to", "split", "a", "64-bit", "constant", "into", "two", "32-bit", "operations", ".", "This", "is", "the", "case", "if", "optimizing", "for", "size", ",", "or", "if", "we", "have", "load", "delay", "slots", ",", "or", "if", "one", "32-bit", "part", "can", "be", "done", "with", "a", "single", "data", "operation", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_const_double_by_parts", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44483, "Length": 126}
{"ground_truth": ["", "int", "arm_const_double_inline_cost", "(", "rtx", "val", ")", "{", "rtx", "lowpart", ",", "highpart", ";", "enum", "machine_mode", "mode", ";", "mode", "=", "GET_MODE", "(", "val", ")", ";", "if", "(", "mode", "==", "VOIDmode", ")", "mode", "=", "DImode", ";", "gcc_assert", "(", "GET_MODE_SIZE", "(", "mode", ")", "==", "8", ")", ";", "lowpart", "=", "gen_lowpart", "(", "SImode", ",", "val", ")", ";", "highpart", "=", "gen_highpart_mode", "(", "SImode", ",", "mode", ",", "val", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "lowpart", ")", "==", "CONST_INT", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "highpart", ")", "==", "CONST_INT", ")", ";", "return", "(", "arm_gen_constant", "(", "SET", ",", "SImode", ",", "NULL_RTX", ",", "INTVAL", "(", "lowpart", ")", ",", "NULL_RTX", ",", "NULL_RTX", ",", "0", ",", "0", ")", "+", "arm_gen_constant", "(", "SET", ",", "SImode", ",", "NULL_RTX", ",", "INTVAL", "(", "highpart", ")", ",", "NULL_RTX", ",", "NULL_RTX", ",", "0", ",", "0", ")", ")", ";", "}", ""], "natrual_language": ["Return", "the", "cost", "of", "synthesizing", "a", "64-bit", "constant", "VAL", "inline", ".", "Returns", "the", "number", "of", "insns", "needed", ",", "or", "99", "if", "we", "do", "n't", "know", "how", "to", "do", "it", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0"], "File": "arm3", "Func": "arm_const_double_inline_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44484, "Length": 131}
{"ground_truth": ["", "int", "arm_const_double_rtx", "(", "rtx", "x", ")", "{", "REAL_VALUE_TYPE", "r", ";", "int", "i", ";", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "r", ",", "x", ")", ";", "if", "(", "REAL_VALUE_MINUS_ZERO", "(", "r", ")", ")", "return", "0", ";", "for", "(", "i", "=", "0", ";", "i", "<", "fp_consts_inited", ";", "i", "++", ")", "if", "(", "REAL_VALUES_EQUAL", "(", "r", ",", "values_fp", "[", "i", "]", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "a", "valid", "immediate", "FP", "constant", "."], "TS_V_token": ["arm", "0", "0", "1", "0"], "File": "arm3", "Func": "arm_const_double_rtx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44485, "Length": 71}
{"ground_truth": ["", "int", "arm_coproc_mem_operand", "(", "rtx", "op", ",", "bool", "wb", ")", "{", "rtx", "ind", ";", "if", "(", "!", "(", "reload_in_progress", "||", "reload_completed", ")", "&&", "(", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "arg_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_incoming_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_outgoing_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_dynamic_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_vars_rtx", ",", "op", ")", ")", ")", "return", "FALSE", ";", "if", "(", "GET_CODE", "(", "op", ")", "!=", "MEM", ")", "return", "FALSE", ";", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "reload_completed", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "LABEL_REF", "||", "(", "GET_CODE", "(", "ind", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "1", ")", ")", "==", "CONST_INT", ")", ")", ")", "return", "TRUE", ";", "if", "(", "GET_CODE", "(", "ind", ")", "==", "REG", ")", "return", "arm_address_register_rtx_p", "(", "ind", ",", "0", ")", ";", "if", "(", "wb", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "PRE_INC", "||", "GET_CODE", "(", "ind", ")", "==", "POST_INC", "||", "GET_CODE", "(", "ind", ")", "==", "PRE_DEC", "||", "GET_CODE", "(", "ind", ")", "==", "POST_DEC", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ";", "if", "(", "wb", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "POST_MODIFY", "||", "GET_CODE", "(", "ind", ")", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "ind", ",", "0", ")", ")", ")", "ind", "=", "XEXP", "(", "ind", ",", "1", ")", ";", "if", "(", "GET_CODE", "(", "ind", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "REG", "&&", "REG_MODE_OK_FOR_BASE_P", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "VOIDmode", ")", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "==", "CONST_INT", "&&", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", ">", "-", "1024", "&&", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "<", "1024", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&", "3", ")", "==", "0", ")", "return", "TRUE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "valid", "coprocessor", "memory", "address", "pattern", ".", "WB", "if", "true", "if", "writeback", "address", "modes", "are", "allowed", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "0", "1", "1", "1024", "1", "1024", "1", "3", "0"], "File": "arm3", "Func": "arm_coproc_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44486, "Length": 393}
{"ground_truth": ["", "unsigned", "int", "arm_dbx_register_number", "(", "unsigned", "int", "regno", ")", "{", "if", "(", "regno", "<", "16", ")", "return", "regno", ";", "if", "(", "IS_FPA_REGNUM", "(", "regno", ")", ")", "return", "(", "TARGET_AAPCS_BASED", "?", "96", ":", "16", ")", "+", "regno", "-", "FIRST_FPA_REGNUM", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "return", "64", "+", "regno", "-", "FIRST_VFP_REGNUM", ";", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "104", "+", "regno", "-", "FIRST_IWMMXT_GR_REGNUM", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "112", "+", "regno", "-", "FIRST_IWMMXT_REGNUM", ";", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Map", "internal", "gcc", "register", "numbers", "to", "DWARF2", "register", "numbers", "."], "TS_V_token": ["arm", "16", "96", "16", "64", "104", "112"], "File": "arm3", "Func": "arm_dbx_register_number", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44487, "Length": 85}
{"ground_truth": ["", "int", "arm_debugger_arg_offset", "(", "int", "value", ",", "rtx", "addr", ")", "{", "rtx", "insn", ";", "if", "(", "value", "!=", "0", ")", "return", "0", ";", "if", "(", "GET_CODE", "(", "addr", ")", "!=", "REG", ")", "return", "0", ";", "if", "(", "REGNO", "(", "addr", ")", "==", "(", "unsigned", ")", "HARD_FRAME_POINTER_REGNUM", ")", "return", "0", ";", "if", "(", "(", "TARGET_THUMB", "||", "!", "frame_pointer_needed", ")", "&&", "REGNO", "(", "addr", ")", "==", "SP_REGNUM", ")", "return", "0", ";", "for", "(", "insn", "=", "get_insns", "(", ")", ";", "insn", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "{", "if", "(", "GET_CODE", "(", "insn", ")", "==", "INSN", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "SET", "&&", "REGNO", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "0", ")", ")", "==", "REGNO", "(", "addr", ")", "&&", "GET_CODE", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "0", ")", ")", "==", "REG", "&&", "REGNO", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "0", ")", ")", "==", "(", "unsigned", ")", "HARD_FRAME_POINTER_REGNUM", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "1", ")", ")", "==", "CONST_INT", ")", "{", "value", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "1", ")", ")", ";", "break", ";", "}", "}", "if", "(", "value", "==", "0", ")", "{", "debug_rtx", "(", "addr", ")", ";", "warning", "(", "0", ",", "\"unable to compute real location of stacked parameter\"", ")", ";", "value", "=", "8", ";", "}", "return", "value", ";", "}", ""], "natrual_language": ["Handle", "a", "special", "case", "when", "computing", "the", "offset", "of", "an", "argument", "from", "the", "frame", "pointer", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0", "1", "1", "0", "1", "0", "1", "1", "1", "1", "0", "0", "\"unable to compute real location of stacked parameter\"", "8"], "File": "arm3", "Func": "arm_debugger_arg_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44488, "Length": 254}
{"ground_truth": ["", "static", "bool", "arm_default_short_enums", "(", "void", ")", "{", "return", "TARGET_AAPCS_BASED", "&&", "arm_abi", "!=", "ARM_ABI_AAPCS_LINUX", ";", "}", ""], "natrual_language": ["AAPCS", "based", "ABIs", "use", "short", "enums", "by", "default", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_default_short_enums", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44489, "Length": 15}
{"ground_truth": ["", "static", "void", "arm_elf_asm_constructor", "(", "rtx", "symbol", ",", "int", "priority", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "!", "TARGET_AAPCS_BASED", ")", "{", "default_named_section_asm_out_constructor", "(", "symbol", ",", "priority", ")", ";", "return", ";", "}", "ctors_section", "(", ")", ";", "assemble_align", "(", "POINTER_SIZE", ")", ";", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "symbol", ")", ";", "fputs", "(", "\"(target1)\\n\"", ",", "asm_out_file", ")", ";", "}", ""], "natrual_language": ["Add", "a", "function", "to", "the", "list", "of", "static", "constructors", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "\"(target1)\\n\""], "File": "arm3", "Func": "arm_elf_asm_constructor", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44490, "Length": 59}
{"ground_truth": ["", "void", "arm_encode_call_attribute", "(", "tree", "decl", ",", "int", "flag", ")", "{", "const", "char", "*", "str", "=", "XSTR", "(", "XEXP", "(", "DECL_RTL", "(", "decl", ")", ",", "0", ")", ",", "0", ")", ";", "int", "len", "=", "strlen", "(", "str", ")", ";", "char", "*", "newstr", ";", "if", "(", "DECL_WEAK", "(", "decl", ")", "&&", "flag", "==", "SHORT_CALL_FLAG_CHAR", ")", "return", ";", "newstr", "=", "alloca", "(", "len", "+", "2", ")", ";", "newstr", "[", "0", "]", "=", "flag", ";", "strcpy", "(", "newstr", "+", "1", ",", "str", ")", ";", "newstr", "=", "(", "char", "*", ")", "ggc_alloc_string", "(", "newstr", ",", "len", "+", "1", ")", ";", "XSTR", "(", "XEXP", "(", "DECL_RTL", "(", "decl", ")", ",", "0", ")", ",", "0", ")", "=", "newstr", ";", "}", ""], "natrual_language": ["Encode", "long_call", "or", "short_call", "attribute", "by", "prefixing", "symbol", "name", "in", "DECL", "with", "a", "special", "character", "FLAG", "."], "TS_V_token": ["arm", "0", "0", "2", "0", "1", "1", "0", "0"], "File": "arm3", "Func": "arm_encode_call_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44491, "Length": 113}
{"ground_truth": ["", "static", "void", "arm_encode_section_info", "(", "tree", "decl", ",", "rtx", "rtl", ",", "int", "first", ")", "{", "if", "(", "optimize", ">", "0", "&&", "TREE_CONSTANT", "(", "decl", ")", ")", "SYMBOL_REF_FLAG", "(", "XEXP", "(", "rtl", ",", "0", ")", ")", "=", "1", ";", "if", "(", "first", "&&", "DECL_P", "(", "decl", ")", ")", "{", "if", "(", "TREE_CODE", "(", "decl", ")", "==", "FUNCTION_DECL", "&&", "DECL_WEAK", "(", "decl", ")", ")", "arm_encode_call_attribute", "(", "decl", ",", "LONG_CALL_FLAG_CHAR", ")", ";", "else", "if", "(", "!", "TREE_PUBLIC", "(", "decl", ")", ")", "arm_encode_call_attribute", "(", "decl", ",", "SHORT_CALL_FLAG_CHAR", ")", ";", "}", "default_encode_section_info", "(", "decl", ",", "rtl", ",", "first", ")", ";", "}", ""], "natrual_language": ["Symbols", "in", "the", "text", "segment", "can", "be", "accessed", "without", "indirecting", "via", "the", "constant", "pool", ";", "it", "may", "take", "an", "extra", "binary", "operation", ",", "but", "this", "is", "still", "faster", "than", "indirecting", "via", "memory", ".", "Do", "n't", "do", "this", "when", "not", "optimizing", ",", "since", "we", "wo", "n't", "be", "calculating", "al", "of", "the", "offsets", "necessary", "to", "do", "this", "simplification", "."], "TS_V_token": ["arm", "0", "0", "1"], "File": "arm3", "Func": "arm_encode_section_info", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44492, "Length": 95}
{"ground_truth": ["", "static", "rtx", "arm_expand_binop_builtin", "(", "enum", "insn_code", "icode", ",", "tree", "arglist", ",", "rtx", "target", ")", "{", "rtx", "pat", ";", "tree", "arg0", "=", "TREE_VALUE", "(", "arglist", ")", ";", "tree", "arg1", "=", "TREE_VALUE", "(", "TREE_CHAIN", "(", "arglist", ")", ")", ";", "rtx", "op0", "=", "expand_expr", "(", "arg0", ",", "NULL_RTX", ",", "VOIDmode", ",", "0", ")", ";", "rtx", "op1", "=", "expand_expr", "(", "arg1", ",", "NULL_RTX", ",", "VOIDmode", ",", "0", ")", ";", "enum", "machine_mode", "tmode", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "mode", ";", "enum", "machine_mode", "mode0", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "mode", ";", "enum", "machine_mode", "mode1", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "mode", ";", "if", "(", "VECTOR_MODE_P", "(", "mode0", ")", ")", "op0", "=", "safe_vector_operand", "(", "op0", ",", "mode0", ")", ";", "if", "(", "VECTOR_MODE_P", "(", "mode1", ")", ")", "op1", "=", "safe_vector_operand", "(", "op1", ",", "mode1", ")", ";", "if", "(", "!", "target", "||", "GET_MODE", "(", "target", ")", "!=", "tmode", "||", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "predicate", ")", "(", "target", ",", "tmode", ")", ")", "target", "=", "gen_reg_rtx", "(", "tmode", ")", ";", "gcc_assert", "(", "GET_MODE", "(", "op0", ")", "==", "mode0", "&&", "GET_MODE", "(", "op1", ")", "==", "mode1", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "predicate", ")", "(", "op0", ",", "mode0", ")", ")", "op0", "=", "copy_to_mode_reg", "(", "mode0", ",", "op0", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "2", "]", ".", "predicate", ")", "(", "op1", ",", "mode1", ")", ")", "op1", "=", "copy_to_mode_reg", "(", "mode1", ",", "op1", ")", ";", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ",", "op1", ")", ";", "if", "(", "!", "pat", ")", "return", "0", ";", "emit_insn", "(", "pat", ")", ";", "return", "target", ";", "}", ""], "natrual_language": ["Subroutine", "of", "arm_expand_builtin", "to", "take", "care", "of", "binop", "insns", "."], "TS_V_token": ["arm", "0", "0", "0", "1", "2", "0", "1", "2", "0"], "File": "arm3", "Func": "arm_expand_binop_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44493, "Length": 297}
{"ground_truth": ["", "static", "rtx", "arm_expand_unop_builtin", "(", "enum", "insn_code", "icode", ",", "tree", "arglist", ",", "rtx", "target", ",", "int", "do_load", ")", "{", "rtx", "pat", ";", "tree", "arg0", "=", "TREE_VALUE", "(", "arglist", ")", ";", "rtx", "op0", "=", "expand_expr", "(", "arg0", ",", "NULL_RTX", ",", "VOIDmode", ",", "0", ")", ";", "enum", "machine_mode", "tmode", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "mode", ";", "enum", "machine_mode", "mode0", "=", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "mode", ";", "if", "(", "!", "target", "||", "GET_MODE", "(", "target", ")", "!=", "tmode", "||", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "0", "]", ".", "predicate", ")", "(", "target", ",", "tmode", ")", ")", "target", "=", "gen_reg_rtx", "(", "tmode", ")", ";", "if", "(", "do_load", ")", "op0", "=", "gen_rtx_MEM", "(", "mode0", ",", "copy_to_mode_reg", "(", "Pmode", ",", "op0", ")", ")", ";", "else", "{", "if", "(", "VECTOR_MODE_P", "(", "mode0", ")", ")", "op0", "=", "safe_vector_operand", "(", "op0", ",", "mode0", ")", ";", "if", "(", "!", "(", "*", "insn_data", "[", "icode", "]", ".", "operand", "[", "1", "]", ".", "predicate", ")", "(", "op0", ",", "mode0", ")", ")", "op0", "=", "copy_to_mode_reg", "(", "mode0", ",", "op0", ")", ";", "}", "pat", "=", "GEN_FCN", "(", "icode", ")", "(", "target", ",", "op0", ")", ";", "if", "(", "!", "pat", ")", "return", "0", ";", "emit_insn", "(", "pat", ")", ";", "return", "target", ";", "}", ""], "natrual_language": ["Subroutine", "of", "arm_expand_builtin", "to", "take", "care", "of", "unop", "insns", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "0"], "File": "arm3", "Func": "arm_expand_unop_builtin", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44494, "Length": 213}
{"ground_truth": ["", "static", "bool", "arm_fastmul_rtx_costs", "(", "rtx", "x", ",", "int", "code", ",", "int", "outer_code", ",", "int", "*", "total", ")", "{", "enum", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "*", "total", "=", "thumb_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "mode", "==", "DImode", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "ZERO_EXTEND", "||", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "SIGN_EXTEND", ")", ")", "{", "*", "total", "=", "8", ";", "return", "true", ";", "}", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "mode", "==", "DImode", ")", "{", "*", "total", "=", "30", ";", "return", "true", ";", "}", "if", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "CONST_INT", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ";", "int", "cost", ",", "const_ok", "=", "const_ok_for_arm", "(", "i", ")", ";", "int", "j", ",", "booth_unit_size", ";", "cost", "=", "const_ok", "?", "4", ":", "8", ";", "booth_unit_size", "=", "8", ";", "for", "(", "j", "=", "0", ";", "i", "&&", "j", "<", "32", ";", "j", "+=", "booth_unit_size", ")", "{", "i", ">>=", "booth_unit_size", ";", "cost", "+=", "2", ";", "}", "*", "total", "=", "cost", ";", "return", "true", ";", "}", "*", "total", "=", "8", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "0", ")", ")", "?", "0", ":", "4", ")", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "1", ")", ")", "?", "0", ":", "4", ")", ";", "return", "true", ";", "default", ":", "*", "total", "=", "arm_rtx_costs_1", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "}", ""], "natrual_language": ["RTX", "cost", "for", "cores", "with", "a", "fast", "multiply", "unit", "(", "M", "variants", ")", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "8", "30", "1", "1", "0xffffffff", "4", "8", "8", "0", "32", "2", "8", "0", "0", "4", "1", "0", "4"], "File": "arm3", "Func": "arm_fastmul_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44495, "Length": 301}
{"ground_truth": ["", "int", "arm_float_words_big_endian", "(", "void", ")", "{", "if", "(", "TARGET_MAVERICK", ")", "return", "0", ";", "if", "(", "TARGET_FPA", ")", "{", "return", "1", ";", "}", "if", "(", "TARGET_VFP", ")", "return", "(", "TARGET_BIG_END", "?", "1", ":", "0", ")", ";", "return", "1", ";", "}", ""], "natrual_language": ["Indicate", "whether", "or", "not", "words", "of", "a", "double", "are", "in", "big-endian", "order", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "1"], "File": "arm3", "Func": "arm_float_words_big_endian", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44496, "Length": 39}
{"ground_truth": ["", "rtx", "arm_function_arg", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "enum", "machine_mode", "mode", ",", "tree", "type", ",", "int", "named", ")", "{", "int", "nregs", ";", "if", "(", "TARGET_IWMMXT_ABI", "&&", "arm_vector_mode_supported_p", "(", "mode", ")", "&&", "pcum", "->", "named_count", ">", "pcum", "->", "nargs", "+", "1", ")", "{", "if", "(", "pcum", "->", "iwmmxt_nregs", "<=", "9", ")", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "iwmmxt_nregs", "+", "FIRST_IWMMXT_REGNUM", ")", ";", "else", "{", "pcum", "->", "can_split", "=", "false", ";", "return", "NULL_RTX", ";", "}", "}", "if", "(", "pcum", "->", "nregs", "&", "1", "&&", "ARM_DOUBLEWORD_ALIGN", "&&", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ")", "pcum", "->", "nregs", "++", ";", "if", "(", "mode", "==", "VOIDmode", ")", "return", "GEN_INT", "(", "pcum", "->", "call_cookie", ")", ";", "if", "(", "pcum", "->", "can_split", ")", "nregs", "=", "1", ";", "else", "nregs", "=", "ARM_NUM_REGS2", "(", "mode", ",", "type", ")", ";", "if", "(", "!", "named", "||", "pcum", "->", "nregs", "+", "nregs", ">", "NUM_ARG_REGS", ")", "return", "NULL_RTX", ";", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "nregs", ")", ";", "}", ""], "natrual_language": ["Determine", "where", "to", "put", "an", "argument", "to", "a", "function", ".", "Value", "is", "zero", "to", "push", "the", "argument", "on", "the", "stack", ",", "or", "a", "hard", "register", "in", "which", "to", "store", "the", "argument", ".", "MODE", "is", "the", "argument", "'s", "machine", "mode", ".", "TYPE", "is", "the", "data", "type", "of", "the", "argument", "(", "as", "a", "tree", ")", ".", "This", "is", "null", "for", "libcalls", "where", "that", "information", "may", "not", "be", "available", ".", "CUM", "is", "a", "variable", "of", "type", "CUMULATIVE_ARGS", "which", "gives", "info", "about", "the", "preceding", "args", "and", "about", "the", "function", "being", "called", ".", "NAMED", "is", "nonzero", "if", "this", "argument", "is", "a", "named", "parameter", "(", "otherwise", "it", "is", "an", "extra", "parameter", "matching", "an", "ellipsis", ")", ".", "On", "the", "ARM", ",", "normally", "the", "first", "16", "bytes", "are", "passed", "in", "registers", "r0-r3", ";", "all", "other", "arguments", "are", "passed", "on", "the", "stack", ".", "If", "(", "NAMED", "==", "0", ")", "(", "which", "happens", "only", "in", "assign_parms", ",", "since", "TARGET_SETUP_INCOMING_VARARGS", "is", "defined", ")", ",", "say", "it", "is", "passed", "in", "the", "stack", "(", "function_prologue", "will", "indeed", "make", "it", "pass", "in", "the", "stack", "if", "necessary", ")", "."], "TS_V_token": ["arm", "1", "9", "1", "1"], "File": "arm3", "Func": "arm_function_arg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44497, "Length": 157}
{"ground_truth": ["", "static", "bool", "arm_function_ok_for_sibcall", "(", "tree", "decl", ",", "tree", "exp", "ATTRIBUTE_UNUSED", ")", "{", "int", "call_type", "=", "TARGET_LONG_CALLS", "?", "CALL_LONG", ":", "CALL_NORMAL", ";", "if", "(", "cfun", "->", "machine", "->", "sibcall_blocked", ")", "return", "false", ";", "if", "(", "decl", "==", "NULL", "||", "TARGET_THUMB", ")", "return", "false", ";", "if", "(", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "TREE_TYPE", "(", "decl", ")", ")", ")", ")", "call_type", "=", "CALL_SHORT", ";", "else", "if", "(", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "TREE_TYPE", "(", "decl", ")", ")", ")", ")", "call_type", "=", "CALL_LONG", ";", "if", "(", "call_type", "==", "CALL_LONG", "&&", "(", "flag_pic", "||", "!", "TREE_ASM_WRITTEN", "(", "decl", ")", ")", ")", "return", "false", ";", "if", "(", "TARGET_INTERWORK", "&&", "TREE_PUBLIC", "(", "decl", ")", "&&", "!", "TREE_ASM_WRITTEN", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "IS_INTERRUPT", "(", "arm_current_func_type", "(", ")", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "it", "is", "ok", "to", "make", "a", "tail-call", "to", "DECL", "."], "TS_V_token": ["arm", "\"short_call\"", "\"long_call\""], "File": "arm3", "Func": "arm_function_ok_for_sibcall", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44498, "Length": 135}
{"ground_truth": ["", "rtx", "arm_function_value", "(", "tree", "type", ",", "tree", "func", "ATTRIBUTE_UNUSED", ")", "{", "enum", "machine_mode", "mode", ";", "int", "unsignedp", "ATTRIBUTE_UNUSED", ";", "rtx", "r", "ATTRIBUTE_UNUSED", ";", "mode", "=", "TYPE_MODE", "(", "type", ")", ";", "if", "(", "INTEGRAL_TYPE_P", "(", "type", ")", ")", "PROMOTE_FUNCTION_MODE", "(", "mode", ",", "unsignedp", ",", "type", ")", ";", "if", "(", "arm_return_in_msb", "(", "type", ")", ")", "{", "HOST_WIDE_INT", "size", "=", "int_size_in_bytes", "(", "type", ")", ";", "if", "(", "size", "%", "UNITS_PER_WORD", "!=", "0", ")", "{", "size", "+=", "UNITS_PER_WORD", "-", "size", "%", "UNITS_PER_WORD", ";", "mode", "=", "mode_for_size", "(", "size", "*", "BITS_PER_UNIT", ",", "MODE_INT", ",", "0", ")", ";", "}", "}", "return", "LIBCALL_VALUE", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Define", "how", "to", "find", "the", "value", "returned", "by", "a", "function", "."], "TS_V_token": ["arm", "0", "0"], "File": "arm3", "Func": "arm_function_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44499, "Length": 101}
{"ground_truth": ["", "rtx", "arm_gen_compare_reg", "(", "enum", "rtx_code", "code", ",", "rtx", "x", ",", "rtx", "y", ")", "{", "enum", "machine_mode", "mode", "=", "SELECT_CC_MODE", "(", "code", ",", "x", ",", "y", ")", ";", "rtx", "cc_reg", "=", "gen_rtx_REG", "(", "mode", ",", "CC_REGNUM", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "cc_reg", ",", "gen_rtx_COMPARE", "(", "mode", ",", "x", ",", "y", ")", ")", ")", ";", "return", "cc_reg", ";", "}", ""], "natrual_language": ["X", "and", "Y", "are", "two", "things", "to", "compare", "using", "CODE", ".", "Emit", "the", "compare", "insn", "and", "return", "the", "rtx", "for", "register", "0", "in", "the", "proper", "mode", ".", "FP", "means", "this", "is", "a", "floating", "point", "compare", ":", "I", "do", "n't", "think", "that", "it", "is", "needed", "on", "the", "arm", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_gen_compare_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44500, "Length": 60}
{"ground_truth": ["", "rtx", "arm_gen_load_multiple", "(", "int", "base_regno", ",", "int", "count", ",", "rtx", "from", ",", "int", "up", ",", "int", "write_back", ",", "rtx", "basemem", ",", "HOST_WIDE_INT", "*", "offsetp", ")", "{", "HOST_WIDE_INT", "offset", "=", "*", "offsetp", ";", "int", "i", "=", "0", ",", "j", ";", "rtx", "result", ";", "int", "sign", "=", "up", "?", "1", ":", "-", "1", ";", "rtx", "mem", ",", "addr", ";", "if", "(", "arm_tune_xscale", "&&", "count", "<=", "2", "&&", "!", "optimize_size", ")", "{", "rtx", "seq", ";", "start_sequence", "(", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "{", "addr", "=", "plus_constant", "(", "from", ",", "i", "*", "4", "*", "sign", ")", ";", "mem", "=", "adjust_automodify_address", "(", "basemem", ",", "SImode", ",", "addr", ",", "offset", ")", ";", "emit_move_insn", "(", "gen_rtx_REG", "(", "SImode", ",", "base_regno", "+", "i", ")", ",", "mem", ")", ";", "offset", "+=", "4", "*", "sign", ";", "}", "if", "(", "write_back", ")", "{", "emit_move_insn", "(", "from", ",", "plus_constant", "(", "from", ",", "count", "*", "4", "*", "sign", ")", ")", ";", "*", "offsetp", "=", "offset", ";", "}", "seq", "=", "get_insns", "(", ")", ";", "end_sequence", "(", ")", ";", "return", "seq", ";", "}", "result", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "(", "write_back", "?", "1", ":", "0", ")", ")", ")", ";", "if", "(", "write_back", ")", "{", "XVECEXP", "(", "result", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "GET_MODE", "(", "from", ")", ",", "from", ",", "plus_constant", "(", "from", ",", "count", "*", "4", "*", "sign", ")", ")", ";", "i", "=", "1", ";", "count", "++", ";", "}", "for", "(", "j", "=", "0", ";", "i", "<", "count", ";", "i", "++", ",", "j", "++", ")", "{", "addr", "=", "plus_constant", "(", "from", ",", "j", "*", "4", "*", "sign", ")", ";", "mem", "=", "adjust_automodify_address_nv", "(", "basemem", ",", "SImode", ",", "addr", ",", "offset", ")", ";", "XVECEXP", "(", "result", ",", "0", ",", "i", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_rtx_REG", "(", "SImode", ",", "base_regno", "+", "j", ")", ",", "mem", ")", ";", "offset", "+=", "4", "*", "sign", ";", "}", "if", "(", "write_back", ")", "*", "offsetp", "=", "offset", ";", "return", "result", ";", "}", ""], "natrual_language": ["Routines", "for", "use", "in", "generating", "RTL", "."], "TS_V_token": ["arm", "0", "1", "1", "2", "0", "4", "4", "4", "1", "0", "0", "0", "4", "1", "0", "4", "0", "4"], "File": "arm3", "Func": "arm_gen_load_multiple", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44501, "Length": 329}
{"ground_truth": ["", "static", "arm_stack_offsets", "*", "arm_get_frame_offsets", "(", "void", ")", "{", "struct", "arm_stack_offsets", "*", "offsets", ";", "unsigned", "long", "func_type", ";", "int", "leaf", ";", "int", "saved", ";", "HOST_WIDE_INT", "frame_size", ";", "offsets", "=", "&", "cfun", "->", "machine", "->", "stack_offsets", ";", "if", "(", "reload_completed", ")", "return", "offsets", ";", "frame_size", "=", "ROUND_UP_WORD", "(", "get_frame_size", "(", ")", ")", ";", "leaf", "=", "leaf_function_p", "(", ")", ";", "offsets", "->", "saved_args", "=", "current_function_pretend_args_size", ";", "offsets", "->", "frame", "=", "offsets", "->", "saved_args", "+", "(", "frame_pointer_needed", "?", "4", ":", "0", ")", ";", "if", "(", "TARGET_ARM", ")", "{", "unsigned", "int", "regno", ";", "saved", "=", "bit_count", "(", "arm_compute_save_reg_mask", "(", ")", ")", "*", "4", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "saved", "+=", "8", ";", "}", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "!", "IS_VOLATILE", "(", "func_type", ")", ")", "{", "for", "(", "regno", "=", "FIRST_FPA_REGNUM", ";", "regno", "<=", "LAST_FPA_REGNUM", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "saved", "+=", "12", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", ")", "saved", "+=", "arm_get_vfp_saved_size", "(", ")", ";", "}", "}", "else", "{", "saved", "=", "bit_count", "(", "thumb_compute_save_reg_mask", "(", ")", ")", "*", "4", ";", "if", "(", "TARGET_BACKTRACE", ")", "saved", "+=", "16", ";", "}", "offsets", "->", "saved_regs", "=", "offsets", "->", "saved_args", "+", "saved", ";", "offsets", "->", "soft_frame", "=", "offsets", "->", "saved_regs", "+", "CALLER_INTERWORKING_SLOT_SIZE", ";", "if", "(", "leaf", "&&", "frame_size", "==", "0", ")", "{", "offsets", "->", "outgoing_args", "=", "offsets", "->", "soft_frame", ";", "return", "offsets", ";", "}", "if", "(", "ARM_DOUBLEWORD_ALIGN", "&&", "(", "offsets", "->", "soft_frame", "&", "7", ")", ")", "offsets", "->", "soft_frame", "+=", "4", ";", "offsets", "->", "locals_base", "=", "offsets", "->", "soft_frame", "+", "frame_size", ";", "offsets", "->", "outgoing_args", "=", "(", "offsets", "->", "locals_base", "+", "current_function_outgoing_args_size", ")", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", ")", "{", "if", "(", "offsets", "->", "outgoing_args", "&", "7", ")", "offsets", "->", "outgoing_args", "+=", "4", ";", "gcc_assert", "(", "!", "(", "offsets", "->", "outgoing_args", "&", "7", ")", ")", ";", "}", "return", "offsets", ";", "}", ""], "natrual_language": ["Calculate", "stack", "offsets", ".", "These", "are", "used", "to", "calculate", "register", "elimination", "offsets", "and", "in", "prologue/epilogue", "code", ".", "Also", "calculates", "which", "registers", "should", "be", "saved", "."], "TS_V_token": ["arm", "4", "0", "4", "8", "12", "4", "16", "0", "7", "4", "7", "4", "7"], "File": "arm3", "Func": "arm_get_frame_offsets", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44502, "Length": 333}
{"ground_truth": ["", "static", "int", "arm_get_vfp_saved_size", "(", "void", ")", "{", "unsigned", "int", "regno", ";", "int", "count", ";", "int", "saved", ";", "saved", "=", "0", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", ")", "{", "count", "=", "0", ";", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<", "LAST_VFP_REGNUM", ";", "regno", "+=", "2", ")", "{", "if", "(", "(", "!", "regs_ever_live", "[", "regno", "]", "||", "call_used_regs", "[", "regno", "]", ")", "&&", "(", "!", "regs_ever_live", "[", "regno", "+", "1", "]", "||", "call_used_regs", "[", "regno", "+", "1", "]", ")", ")", "{", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", "+", "4", ";", "}", "count", "=", "0", ";", "}", "else", "count", "++", ";", "}", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", "+", "4", ";", "}", "}", "return", "saved", ";", "}", ""], "natrual_language": ["Return", "the", "number", "of", "bytes", "required", "to", "save", "VFP", "registers", "."], "TS_V_token": ["arm", "0", "0", "2", "1", "1", "0", "2", "8", "4", "0", "0", "2", "8", "4"], "File": "arm3", "Func": "arm_get_vfp_saved_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44503, "Length": 151}
{"ground_truth": ["", "static", "tree", "arm_handle_fndecl_attribute", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", "args", "ATTRIBUTE_UNUSED", ",", "int", "flags", "ATTRIBUTE_UNUSED", ",", "bool", "*", "no_add_attrs", ")", "{", "if", "(", "TREE_CODE", "(", "*", "node", ")", "!=", "FUNCTION_DECL", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qs attribute only applies to functions\"", ",", "IDENTIFIER_POINTER", "(", "name", ")", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Handle", "an", "attribute", "requiring", "a", "FUNCTION_DECL", ";", "arguments", "as", "in", "struct", "attribute_spec.handler", "."], "TS_V_token": ["arm", "\"%qs attribute only applies to functions\""], "File": "arm3", "Func": "arm_handle_fndecl_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44504, "Length": 57}
{"ground_truth": ["", "static", "tree", "arm_handle_isr_attribute", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", "args", ",", "int", "flags", ",", "bool", "*", "no_add_attrs", ")", "{", "if", "(", "DECL_P", "(", "*", "node", ")", ")", "{", "if", "(", "TREE_CODE", "(", "*", "node", ")", "!=", "FUNCTION_DECL", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qs attribute only applies to functions\"", ",", "IDENTIFIER_POINTER", "(", "name", ")", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "}", "else", "{", "if", "(", "TREE_CODE", "(", "*", "node", ")", "==", "FUNCTION_TYPE", "||", "TREE_CODE", "(", "*", "node", ")", "==", "METHOD_TYPE", ")", "{", "if", "(", "arm_isr_value", "(", "args", ")", "==", "ARM_FT_UNKNOWN", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qs attribute ignored\"", ",", "IDENTIFIER_POINTER", "(", "name", ")", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "}", "else", "if", "(", "TREE_CODE", "(", "*", "node", ")", "==", "POINTER_TYPE", "&&", "(", "TREE_CODE", "(", "TREE_TYPE", "(", "*", "node", ")", ")", "==", "FUNCTION_TYPE", "||", "TREE_CODE", "(", "TREE_TYPE", "(", "*", "node", ")", ")", "==", "METHOD_TYPE", ")", "&&", "arm_isr_value", "(", "args", ")", "!=", "ARM_FT_UNKNOWN", ")", "{", "*", "node", "=", "build_variant_type_copy", "(", "*", "node", ")", ";", "TREE_TYPE", "(", "*", "node", ")", "=", "build_type_attribute_variant", "(", "TREE_TYPE", "(", "*", "node", ")", ",", "tree_cons", "(", "name", ",", "args", ",", "TYPE_ATTRIBUTES", "(", "TREE_TYPE", "(", "*", "node", ")", ")", ")", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "else", "{", "if", "(", "flags", "&", "(", "(", "int", ")", "ATTR_FLAG_DECL_NEXT", "|", "(", "int", ")", "ATTR_FLAG_FUNCTION_NEXT", "|", "(", "int", ")", "ATTR_FLAG_ARRAY_NEXT", ")", ")", "{", "*", "no_add_attrs", "=", "true", ";", "return", "tree_cons", "(", "name", ",", "args", ",", "NULL_TREE", ")", ";", "}", "else", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qs attribute ignored\"", ",", "IDENTIFIER_POINTER", "(", "name", ")", ")", ";", "}", "}", "}", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Handle", "an", "``", "interrupt", "''", "or", "``", "isr", "''", "attribute", ";", "arguments", "as", "in", "struct", "attribute_spec.handler", "."], "TS_V_token": ["arm", "\"%qs attribute only applies to functions\"", "\"%qs attribute ignored\"", "\"%qs attribute ignored\""], "File": "arm3", "Func": "arm_handle_isr_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44505, "Length": 261}
{"ground_truth": ["", "static", "bool", "arm_handle_option", "(", "size_t", "code", ",", "const", "char", "*", "arg", ",", "int", "value", "ATTRIBUTE_UNUSED", ")", "{", "switch", "(", "code", ")", "{", "case", "OPT_march_", ":", "arm_select", "[", "1", "]", ".", "string", "=", "arg", ";", "return", "true", ";", "case", "OPT_mcpu_", ":", "arm_select", "[", "0", "]", ".", "string", "=", "arg", ";", "return", "true", ";", "case", "OPT_mhard_float", ":", "target_float_abi_name", "=", "\"hard\"", ";", "return", "true", ";", "case", "OPT_msoft_float", ":", "target_float_abi_name", "=", "\"soft\"", ";", "return", "true", ";", "case", "OPT_mtune_", ":", "arm_select", "[", "2", "]", ".", "string", "=", "arg", ";", "return", "true", ";", "default", ":", "return", "true", ";", "}", "}", ""], "natrual_language": ["Implement", "TARGET_HANDLE_OPTION", "."], "TS_V_token": ["arm", "1", "0", "\"hard\"", "\"soft\"", "2"], "File": "arm3", "Func": "arm_handle_option", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44506, "Length": 94}
{"ground_truth": ["", "int", "arm_hard_regno_mode_ok", "(", "unsigned", "int", "regno", ",", "enum", "machine_mode", "mode", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_CC", ")", "return", "(", "regno", "==", "CC_REGNUM", "||", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", "&&", "regno", "==", "VFPCC_REGNUM", ")", ")", ";", "if", "(", "TARGET_THUMB", ")", "return", "(", "ARM_NUM_REGS", "(", "mode", ")", "<", "2", ")", "||", "(", "regno", "<", "LAST_LO_REGNUM", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_MAVERICK", "&&", "IS_CIRRUS_REGNUM", "(", "regno", ")", ")", "return", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", ")", "||", "(", "mode", "==", "DImode", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", "&&", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "mode", "==", "SFmode", "||", "mode", "==", "SImode", ")", "return", "TRUE", ";", "if", "(", "mode", "==", "DFmode", ")", "return", "(", "(", "regno", "-", "FIRST_VFP_REGNUM", ")", "&", "1", ")", "==", "0", ";", "return", "FALSE", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "mode", "==", "SImode", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ";", "}", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", ")", "return", "!", "(", "TARGET_LDRD", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">", "4", "&&", "(", "regno", "&", "1", ")", "!=", "0", ")", ";", "if", "(", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", ";", "return", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_FPA", "&&", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "&&", "regno", ">=", "FIRST_FPA_REGNUM", "&&", "regno", "<=", "LAST_FPA_REGNUM", ")", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "REGNO", "is", "a", "valid", "register", "for", "holding", "a", "quantity", "of", "type", "MODE", "."], "TS_V_token": ["arm", "2", "1", "0", "4", "1", "0"], "File": "arm3", "Func": "arm_hard_regno_mode_ok", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44507, "Length": 232}
{"ground_truth": ["", "void", "arm_init_cumulative_args", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "tree", "fntype", ",", "rtx", "libname", "ATTRIBUTE_UNUSED", ",", "tree", "fndecl", "ATTRIBUTE_UNUSED", ")", "{", "pcum", "->", "nregs", "=", "(", "(", "fntype", "&&", "aggregate_value_p", "(", "TREE_TYPE", "(", "fntype", ")", ",", "fntype", ")", ")", "?", "1", ":", "0", ")", ";", "pcum", "->", "iwmmxt_nregs", "=", "0", ";", "pcum", "->", "can_split", "=", "true", ";", "pcum", "->", "call_cookie", "=", "CALL_NORMAL", ";", "if", "(", "TARGET_LONG_CALLS", ")", "pcum", "->", "call_cookie", "=", "CALL_LONG", ";", "if", "(", "fntype", ")", "{", "if", "(", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ")", "pcum", "->", "call_cookie", "=", "CALL_SHORT", ";", "else", "if", "(", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ")", "pcum", "->", "call_cookie", "=", "CALL_LONG", ";", "}", "pcum", "->", "named_count", "=", "0", ";", "pcum", "->", "nargs", "=", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "fntype", ")", "{", "tree", "fn_arg", ";", "for", "(", "fn_arg", "=", "TYPE_ARG_TYPES", "(", "fntype", ")", ";", "fn_arg", ";", "fn_arg", "=", "TREE_CHAIN", "(", "fn_arg", ")", ")", "pcum", "->", "named_count", "+=", "1", ";", "if", "(", "!", "pcum", "->", "named_count", ")", "pcum", "->", "named_count", "=", "INT_MAX", ";", "}", "}", ""], "natrual_language": ["Initialize", "a", "variable", "CUM", "of", "type", "CUMULATIVE_ARGS", "for", "a", "call", "to", "a", "function", "whose", "data", "type", "is", "FNTYPE", ".", "For", "a", "library", "call", ",", "FNTYPE", "is", "NULL", "."], "TS_V_token": ["arm", "1", "0", "0", "\"short_call\"", "\"long_call\"", "0", "0", "1"], "File": "arm3", "Func": "arm_init_cumulative_args", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44508, "Length": 175}
{"ground_truth": ["", "static", "struct", "machine_function", "*", "arm_init_machine_status", "(", "void", ")", "{", "struct", "machine_function", "*", "machine", ";", "machine", "=", "(", "machine_function", "*", ")", "ggc_alloc_cleared", "(", "sizeof", "(", "machine_function", ")", ")", ";", "machine", "->", "func_type", "=", "ARM_FT_UNKNOWN", ";", "return", "machine", ";", "}", ""], "natrual_language": ["Functions", "to", "save", "and", "restore", "machine-specific", "function", "data", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_init_machine_status", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44509, "Length": 38}
{"ground_truth": ["", "static", "unsigned", "long", "arm_isr_value", "(", "tree", "argument", ")", "{", "const", "isr_attribute_arg", "*", "ptr", ";", "const", "char", "*", "arg", ";", "if", "(", "argument", "==", "NULL_TREE", ")", "return", "ARM_FT_ISR", ";", "if", "(", "TREE_VALUE", "(", "argument", ")", "==", "NULL_TREE", "||", "TREE_CODE", "(", "TREE_VALUE", "(", "argument", ")", ")", "!=", "STRING_CST", ")", "return", "ARM_FT_UNKNOWN", ";", "arg", "=", "TREE_STRING_POINTER", "(", "TREE_VALUE", "(", "argument", ")", ")", ";", "for", "(", "ptr", "=", "isr_attribute_args", ";", "ptr", "->", "arg", "!=", "NULL", ";", "ptr", "++", ")", "if", "(", "streq", "(", "arg", ",", "ptr", "->", "arg", ")", ")", "return", "ptr", "->", "return_value", ";", "return", "ARM_FT_UNKNOWN", ";", "}", ""], "natrual_language": ["Returns", "the", "(", "interrupt", ")", "function", "type", "of", "the", "current", "function", ",", "or", "ARM_FT_UNKNOWN", "if", "the", "type", "can", "not", "be", "determined", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_isr_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44510, "Length": 95}
{"ground_truth": ["", "int", "arm_is_longcall_p", "(", "rtx", "sym_ref", ",", "int", "call_cookie", ",", "int", "call_symbol", ")", "{", "if", "(", "!", "call_symbol", ")", "{", "if", "(", "GET_CODE", "(", "sym_ref", ")", "!=", "MEM", ")", "return", "0", ";", "sym_ref", "=", "XEXP", "(", "sym_ref", ",", "0", ")", ";", "}", "if", "(", "GET_CODE", "(", "sym_ref", ")", "!=", "SYMBOL_REF", ")", "return", "0", ";", "if", "(", "call_cookie", "&", "CALL_SHORT", ")", "return", "0", ";", "if", "(", "TARGET_LONG_CALLS", ")", "{", "if", "(", "flag_function_sections", "||", "DECL_SECTION_NAME", "(", "current_function_decl", ")", ")", "return", "1", ";", "}", "if", "(", "current_file_function_operand", "(", "sym_ref", ")", ")", "return", "0", ";", "return", "(", "call_cookie", "&", "CALL_LONG", ")", "||", "ENCODED_LONG_CALL_ATTR_P", "(", "XSTR", "(", "sym_ref", ",", "0", ")", ")", "||", "TARGET_LONG_CALLS", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "a", "32", "bit", "``", "long_call", "''", "should", "be", "generated", "for", "this", "call", ".", "We", "generate", "a", "long_call", "if", "the", "function", ":", "a.", "has", "an", "__attribute__", "(", "(", "long", "call", ")", ")", "or", "b.", "is", "within", "the", "scope", "of", "a", "#", "pragma", "long_calls", "or", "c.", "the", "-mlong-calls", "command", "line", "switch", "has", "been", "specified", ".", "and", "either", ":", "1", ".", "-ffunction-sections", "is", "in", "effect", "or", "2.", "the", "current", "function", "has", "__attribute__", "(", "(", "section", ")", ")", "or", "3.", "the", "target", "function", "has", "__attribute__", "(", "(", "section", ")", ")", "However", "we", "do", "not", "generate", "a", "long", "call", "if", "the", "function", ":", "d.", "has", "an", "__attribute__", "(", "(", "short_call", ")", ")", "or", "e.", "is", "inside", "the", "scope", "of", "a", "#", "pragma", "no_long_calls", "or", "f.", "is", "defined", "within", "the", "current", "compilation", "unit", ".", "This", "function", "will", "be", "called", "by", "C", "fragments", "contained", "in", "the", "machine", "description", "file", ".", "SYM_REF", "and", "CALL_COOKIE", "correspond", "to", "the", "matched", "rtl", "operands", ".", "CALL_SYMBOL", "is", "used", "to", "distinguish", "between", "two", "different", "callers", "of", "the", "function", ".", "It", "is", "set", "to", "1", "in", "the", "``", "call_symbol", "''", "and", "``", "call_symbol_value", "''", "patterns", "and", "to", "0", "in", "the", "``", "call", "''", "and", "``", "call_value", "''", "patterns", ".", "This", "is", "because", "of", "the", "difference", "in", "the", "SYM_REFs", "passed", "by", "these", "patterns", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1", "0", "0"], "File": "arm3", "Func": "arm_is_longcall_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44511, "Length": 110}
{"ground_truth": ["", "int", "arm_legitimate_address_p", "(", "enum", "machine_mode", "mode", ",", "rtx", "x", ",", "RTX_CODE", "outer", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "(", "mode", "==", "DFmode", "&&", "(", "TARGET_SOFT_FLOAT", "||", "TARGET_VFP", ")", ")", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "if", "(", "use_ldrd", "&&", "GET_CODE", "(", "x", ")", "==", "POST_MODIFY", "&&", "GET_CODE", "(", "addend", ")", "==", "REG", ")", "return", "0", ";", "return", "(", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "addend", ",", "outer", ",", "strict_p", ")", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", "==", "CONST_INT", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop1", ",", "outer", ",", "strict_p", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop0", ",", "outer", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "MINUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop1", ",", "outer", ",", "strict_p", ")", ")", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "ARM", "state", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "1", "0"], "File": "arm3", "Func": "arm_legitimate_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44512, "Length": 482}
{"ground_truth": ["", "static", "int", "arm_legitimate_index_p", "(", "enum", "machine_mode", "mode", ",", "rtx", "index", ",", "RTX_CODE", "outer", ",", "int", "strict_p", ")", "{", "HOST_WIDE_INT", "range", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "index", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "(", "TARGET_FPA", "||", "TARGET_MAVERICK", ")", "&&", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "(", "TARGET_MAVERICK", "&&", "mode", "==", "DImode", ")", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "index", ",", "strict_p", ")", "&&", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", "return", "1", ";", "if", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", "{", "if", "(", "code", "==", "CONST_INT", ")", "{", "HOST_WIDE_INT", "val", "=", "INTVAL", "(", "index", ")", ";", "if", "(", "TARGET_LDRD", ")", "return", "val", ">", "-", "256", "&&", "val", "<", "256", ";", "else", "return", "val", ">", "-", "4096", "&&", "val", "<", "4092", ";", "}", "return", "TARGET_LDRD", "&&", "arm_address_register_rtx_p", "(", "index", ",", "strict_p", ")", ";", "}", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", "&&", "!", "(", "arm_arch4", "&&", "(", "mode", "==", "HImode", "||", "(", "mode", "==", "QImode", "&&", "outer", "==", "SIGN_EXTEND", ")", ")", ")", ")", "{", "if", "(", "code", "==", "MULT", ")", "{", "rtx", "xiop0", "=", "XEXP", "(", "index", ",", "0", ")", ";", "rtx", "xiop1", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xiop0", ",", "strict_p", ")", "&&", "power_of_two_operand", "(", "xiop1", ",", "SImode", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xiop1", ",", "strict_p", ")", "&&", "power_of_two_operand", "(", "xiop0", ",", "SImode", ")", ")", ")", ";", "}", "else", "if", "(", "code", "==", "LSHIFTRT", "||", "code", "==", "ASHIFTRT", "||", "code", "==", "ASHIFT", "||", "code", "==", "ROTATERT", ")", "{", "rtx", "op", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "XEXP", "(", "index", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "op", ")", "==", "CONST_INT", "&&", "INTVAL", "(", "op", ")", ">", "0", "&&", "INTVAL", "(", "op", ")", "<=", "31", ")", ";", "}", "}", "if", "(", "arm_arch4", ")", "{", "if", "(", "mode", "==", "HImode", "||", "(", "outer", "==", "SIGN_EXTEND", "&&", "mode", "==", "QImode", ")", ")", "range", "=", "256", ";", "else", "range", "=", "4096", ";", "}", "else", "range", "=", "(", "mode", "==", "HImode", ")", "?", "4095", ":", "4096", ";", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "range", "&&", "INTVAL", "(", "index", ")", ">", "-", "range", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "INDEX", "is", "valid", "for", "an", "address", "index", "operand", "in", "ARM", "state", "."], "TS_V_token": ["arm", "1024", "1024", "3", "0", "1024", "1024", "3", "0", "4", "1", "256", "256", "4096", "4092", "4", "0", "1", "1", "0", "0", "31", "256", "4096", "4095", "4096"], "File": "arm3", "Func": "arm_legitimate_index_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44513, "Length": 445}
{"ground_truth": ["", "void", "arm_load_pic_register", "(", "unsigned", "long", "saved_regs", "ATTRIBUTE_UNUSED", ")", "{", "rtx", "l1", ",", "labelno", ",", "pic_tmp", ",", "pic_tmp2", ",", "pic_rtx", ";", "rtx", "global_offset_table", ";", "if", "(", "current_function_uses_pic_offset_table", "==", "0", "||", "TARGET_SINGLE_PIC_BASE", ")", "return", ";", "gcc_assert", "(", "flag_pic", ")", ";", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "global_offset_table", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "\"_GLOBAL_OFFSET_TABLE_\"", ")", ";", "pic_tmp", "=", "plus_constant", "(", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "if", "(", "GOT_PCREL", ")", "pic_tmp2", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "gen_rtx_PLUS", "(", "Pmode", ",", "global_offset_table", ",", "pc_rtx", ")", ")", ";", "else", "pic_tmp2", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "global_offset_table", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "gen_rtx_MINUS", "(", "Pmode", ",", "pic_tmp2", ",", "pic_tmp", ")", ")", ";", "if", "(", "TARGET_ARM", ")", "{", "emit_insn", "(", "gen_pic_load_addr_arm", "(", "pic_offset_table_rtx", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_pic_add_dot_plus_eight", "(", "pic_offset_table_rtx", ",", "pic_offset_table_rtx", ",", "labelno", ")", ")", ";", "}", "else", "{", "if", "(", "REGNO", "(", "pic_offset_table_rtx", ")", ">", "LAST_LO_REGNUM", ")", "{", "pic_tmp", "=", "gen_rtx_REG", "(", "SImode", ",", "thumb_find_work_register", "(", "saved_regs", ")", ")", ";", "emit_insn", "(", "gen_pic_load_addr_thumb", "(", "pic_tmp", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "pic_offset_table_rtx", ",", "pic_tmp", ")", ")", ";", "}", "else", "emit_insn", "(", "gen_pic_load_addr_thumb", "(", "pic_offset_table_rtx", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "pic_offset_table_rtx", ",", "pic_offset_table_rtx", ",", "labelno", ")", ")", ";", "}", "emit_insn", "(", "gen_rtx_USE", "(", "VOIDmode", ",", "pic_offset_table_rtx", ")", ")", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "PIC", "register", ".", "In", "thumb", "mode", "SCRATCH", "is", "a", "low", "register", "."], "TS_V_token": ["arm", "0", "1", "\"_GLOBAL_OFFSET_TABLE_\"", "8", "4"], "File": "arm3", "Func": "arm_load_pic_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44514, "Length": 247}
{"ground_truth": ["", "static", "bool", "arm_memory_load_p", "(", "rtx", "insn", ")", "{", "rtx", "body", ",", "lhs", ",", "rhs", ";", ";", "if", "(", "insn", "==", "NULL_RTX", "||", "GET_CODE", "(", "insn", ")", "!=", "INSN", ")", "return", "false", ";", "body", "=", "PATTERN", "(", "insn", ")", ";", "if", "(", "GET_CODE", "(", "body", ")", "!=", "SET", ")", "return", "false", ";", "lhs", "=", "XEXP", "(", "body", ",", "0", ")", ";", "rhs", "=", "XEXP", "(", "body", ",", "1", ")", ";", "lhs", "=", "REG_OR_SUBREG_RTX", "(", "lhs", ")", ";", "if", "(", "GET_CODE", "(", "lhs", ")", "!=", "REG", "||", "REGNO_REG_CLASS", "(", "REGNO", "(", "lhs", ")", ")", "!=", "GENERAL_REGS", ")", "return", "false", ";", "return", "(", "GET_CODE", "(", "rhs", ")", "==", "MEM", "||", "GET_CODE", "(", "rhs", ")", "==", "SYMBOL_REF", "||", "note_invalid_constants", "(", "insn", ",", "-", "1", ",", "false", ")", ")", ";", "}", ""], "natrual_language": ["Returns", "TRUE", "if", "INSN", "is", "an", "``", "LDR", "REG", ",", "ADDR", "''", "instruction", ".", "Use", "by", "the", "Cirrus", "Maverick", "code", "which", "has", "to", "workaround", "a", "hardware", "bug", "triggered", "by", "such", "instructions", "."], "TS_V_token": ["arm", "0", "1", "1"], "File": "arm3", "Func": "arm_memory_load_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44515, "Length": 126}
{"ground_truth": ["", "static", "bool", "arm_must_pass_in_stack", "(", "enum", "machine_mode", "mode", ",", "tree", "type", ")", "{", "if", "(", "TARGET_AAPCS_BASED", ")", "return", "must_pass_in_stack_var_size", "(", "mode", ",", "type", ")", ";", "else", "return", "must_pass_in_stack_var_size_or_pad", "(", "mode", ",", "type", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "a", "type", "must", "be", "passed", "in", "memory", ".", "For", "AAPCS", ",", "small", "aggregates", "(", "padded", "to", "the", "size", "of", "a", "word", ")", "should", "be", "passed", "in", "a", "register", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_must_pass_in_stack", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44516, "Length": 34}
{"ground_truth": ["", "bool", "arm_needs_doubleword_align", "(", "enum", "machine_mode", "mode", ",", "tree", "type", ")", "{", "return", "(", "GET_MODE_ALIGNMENT", "(", "mode", ")", ">", "PARM_BOUNDARY", "||", "(", "type", "&&", "TYPE_ALIGN", "(", "type", ")", ">", "PARM_BOUNDARY", ")", ")", ";", "}", ""], "natrual_language": ["Return", "1", "if", "double", "word", "alignment", "is", "required", "for", "argument", "passing", ".", "Return", "-1", "if", "double", "word", "alignment", "used", "to", "be", "required", "for", "argument", "passing", "before", "PR77728", "ABI", "fix", ",", "but", "is", "not", "required", "anymore", ".", "Return", "0", "if", "double", "word", "alignment", "is", "not", "required", "and", "was", "n't", "requried", "before", "either", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_needs_doubleword_align", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44517, "Length": 33}
{"ground_truth": ["", "int", "arm_no_early_alu_shift_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", "=", "PATTERN", "(", "producer", ")", ";", "rtx", "op", "=", "PATTERN", "(", "consumer", ")", ";", "rtx", "early_op", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "COND_EXEC", ")", "value", "=", "COND_EXEC_CODE", "(", "value", ")", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "PARALLEL", ")", "value", "=", "XVECEXP", "(", "value", ",", "0", ",", "0", ")", ";", "value", "=", "XEXP", "(", "value", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "COND_EXEC", ")", "op", "=", "COND_EXEC_CODE", "(", "op", ")", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "PARALLEL", ")", "op", "=", "XVECEXP", "(", "op", ",", "0", ",", "0", ")", ";", "op", "=", "XEXP", "(", "op", ",", "1", ")", ";", "early_op", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "early_op", ")", "==", "REG", ")", "early_op", "=", "op", ";", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "early_op", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "an", "ALU", "op", ")", "does", "not", "have", "an", "early", "register", "shift", "value", "or", "amount", "dependency", "on", "the", "result", "of", "PRODUCER", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0"], "File": "arm3", "Func": "arm_no_early_alu_shift_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44518, "Length": 151}
{"ground_truth": ["", "int", "arm_no_early_alu_shift_value_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", "=", "PATTERN", "(", "producer", ")", ";", "rtx", "op", "=", "PATTERN", "(", "consumer", ")", ";", "rtx", "early_op", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "COND_EXEC", ")", "value", "=", "COND_EXEC_CODE", "(", "value", ")", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "PARALLEL", ")", "value", "=", "XVECEXP", "(", "value", ",", "0", ",", "0", ")", ";", "value", "=", "XEXP", "(", "value", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "COND_EXEC", ")", "op", "=", "COND_EXEC_CODE", "(", "op", ")", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "PARALLEL", ")", "op", "=", "XVECEXP", "(", "op", ",", "0", ",", "0", ")", ";", "op", "=", "XEXP", "(", "op", ",", "1", ")", ";", "early_op", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "early_op", ")", "!=", "REG", ")", "early_op", "=", "XEXP", "(", "early_op", ",", "0", ")", ";", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "early_op", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "an", "ALU", "op", ")", "does", "not", "have", "an", "early", "register", "shift", "value", "dependency", "on", "the", "result", "of", "PRODUCER", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "0"], "File": "arm3", "Func": "arm_no_early_alu_shift_value_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44519, "Length": 156}
{"ground_truth": ["", "int", "arm_no_early_mul_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", "=", "PATTERN", "(", "producer", ")", ";", "rtx", "op", "=", "PATTERN", "(", "consumer", ")", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "COND_EXEC", ")", "value", "=", "COND_EXEC_CODE", "(", "value", ")", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "PARALLEL", ")", "value", "=", "XVECEXP", "(", "value", ",", "0", ",", "0", ")", ";", "value", "=", "XEXP", "(", "value", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "COND_EXEC", ")", "op", "=", "COND_EXEC_CODE", "(", "op", ")", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "PARALLEL", ")", "op", "=", "XVECEXP", "(", "op", ",", "0", ",", "0", ")", ";", "op", "=", "XEXP", "(", "op", ",", "1", ")", ";", "return", "(", "GET_CODE", "(", "op", ")", "==", "PLUS", "&&", "!", "reg_overlap_mentioned_p", "(", "value", ",", "XEXP", "(", "op", ",", "0", ")", ")", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "(", "a", "mul", "or", "mac", "op", ")", "does", "not", "have", "an", "early", "register", "mult", "dependency", "on", "the", "result", "of", "PRODUCER", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0"], "File": "arm3", "Func": "arm_no_early_mul_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44520, "Length": 140}
{"ground_truth": ["", "int", "arm_no_early_store_addr_dep", "(", "rtx", "producer", ",", "rtx", "consumer", ")", "{", "rtx", "value", "=", "PATTERN", "(", "producer", ")", ";", "rtx", "addr", "=", "PATTERN", "(", "consumer", ")", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "COND_EXEC", ")", "value", "=", "COND_EXEC_CODE", "(", "value", ")", ";", "if", "(", "GET_CODE", "(", "value", ")", "==", "PARALLEL", ")", "value", "=", "XVECEXP", "(", "value", ",", "0", ",", "0", ")", ";", "value", "=", "XEXP", "(", "value", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "COND_EXEC", ")", "addr", "=", "COND_EXEC_CODE", "(", "addr", ")", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "PARALLEL", ")", "addr", "=", "XVECEXP", "(", "addr", ",", "0", ",", "0", ")", ";", "addr", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "return", "!", "reg_overlap_mentioned_p", "(", "value", ",", "addr", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "CONSUMER", "instruction", "(", "a", "store", ")", "does", "not", "need", "PRODUCER", "'s", "value", "to", "calculate", "the", "address", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0"], "File": "arm3", "Func": "arm_no_early_store_addr_dep", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44521, "Length": 126}
{"ground_truth": ["", "bool", "arm_output_addr_const_extra", "(", "FILE", "*", "fp", ",", "rtx", "x", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "return", "arm_emit_tls_decoration", "(", "fp", ",", "x", ")", ";", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_PIC_LABEL", ")", "{", "char", "label", "[", "256", "]", ";", "int", "labelno", "=", "INTVAL", "(", "XVECEXP", "(", "x", ",", "0", ",", "0", ")", ")", ";", "ASM_GENERATE_INTERNAL_LABEL", "(", "label", ",", "\"LPIC\"", ",", "labelno", ")", ";", "assemble_name_raw", "(", "fp", ",", "label", ")", ";", "return", "TRUE", ";", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", "return", "arm_emit_vector_const", "(", "fp", ",", "x", ")", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Implement", "TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA", "."], "TS_V_token": ["arm", "1", "1", "256", "0", "0", "\"LPIC\""], "File": "arm3", "Func": "arm_output_addr_const_extra", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44522, "Length": 120}
{"ground_truth": ["", "static", "void", "arm_output_fldmx", "(", "FILE", "*", "stream", ",", "unsigned", "int", "base", ",", "int", "reg", ",", "int", "count", ")", "{", "int", "i", ";", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "{", "if", "(", "reg", "==", "15", ")", "reg", "--", ";", "count", "++", ";", "}", "fputc", "(", "'\\t'", ",", "stream", ")", ";", "asm_fprintf", "(", "stream", ",", "\"fldmfdx\\t%r!, {\"", ",", "base", ")", ";", "for", "(", "i", "=", "reg", ";", "i", "<", "reg", "+", "count", ";", "i", "++", ")", "{", "if", "(", "i", ">", "reg", ")", "fputs", "(", "\", \"", ",", "stream", ")", ";", "asm_fprintf", "(", "stream", ",", "\"d%d\"", ",", "i", ")", ";", "}", "fputs", "(", "\"}\\n\"", ",", "stream", ")", ";", "}", ""], "natrual_language": ["Output", "a", "FLDMX", "instruction", "to", "STREAM", ".", "BASE", "if", "the", "register", "containing", "the", "address", ".", "REG", "and", "COUNT", "specify", "the", "register", "range", ".", "Extra", "registers", "may", "be", "added", "to", "avoid", "hardware", "bugs", "."], "TS_V_token": ["arm", "2", "15", "\"fldmfdx\\t%r!, {\"", "\", \"", "\"d%d\"", "\"}\\n\""], "File": "arm3", "Func": "arm_output_fldmx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44523, "Length": 108}
{"ground_truth": ["", "void", "arm_output_fn_unwind", "(", "FILE", "*", "f", ",", "bool", "prologue", ")", "{", "if", "(", "!", "ARM_EABI_UNWIND_TABLES", ")", "return", ";", "if", "(", "prologue", ")", "fputs", "(", "\"\\t.fnstart\\n\"", ",", "f", ")", ";", "else", "fputs", "(", "\"\\t.fnend\\n\"", ",", "f", ")", ";", "}", ""], "natrual_language": ["Output", "unwind", "directives", "for", "the", "start/end", "of", "a", "function", "."], "TS_V_token": ["arm", "\"\\t.fnstart\\n\"", "\"\\t.fnend\\n\""], "File": "arm3", "Func": "arm_output_fn_unwind", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44524, "Length": 38}
{"ground_truth": ["", "static", "void", "arm_output_function_prologue", "(", "FILE", "*", "f", ",", "HOST_WIDE_INT", "frame_size", ")", "{", "unsigned", "long", "func_type", ";", "if", "(", "!", "TARGET_ARM", ")", "{", "thumb_output_function_prologue", "(", "f", ",", "frame_size", ")", ";", "return", ";", "}", "gcc_assert", "(", "!", "arm_ccfsm_state", "&&", "!", "arm_target_insn", ")", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "switch", "(", "(", "int", ")", "ARM_FUNC_TYPE", "(", "func_type", ")", ")", "{", "default", ":", "case", "ARM_FT_NORMAL", ":", "break", ";", "case", "ARM_FT_INTERWORKED", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Function supports interworking.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_ISR", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_FIQ", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_EXCEPTION", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ ARM Exception Handler.\\n\"", ")", ";", "break", ";", "}", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", ")", ";", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Volatile: function does not return.\\n\"", ")", ";", "if", "(", "IS_NESTED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Nested: function declared inside another function.\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ args = %d, pretend = %d, frame = %wd\\n\"", ",", "current_function_args_size", ",", "current_function_pretend_args_size", ",", "frame_size", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", ",", "frame_pointer_needed", ",", "cfun", "->", "machine", "->", "uses_anonymous_args", ")", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ link register save eliminated.\\n\"", ")", ";", "if", "(", "current_function_calls_eh_return", ")", "asm_fprintf", "(", "f", ",", "\"\\t@ Calls __builtin_eh_return.\\n\"", ")", ";", "if", "(", "flag_pic", ")", "asm_fprintf", "(", "f", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "IP_REGNUM", ",", "PIC_OFFSET_TABLE_REGNUM", ")", ";", "return_used_this_function", "=", "0", ";", "}", ""], "natrual_language": ["Place", "some", "comments", "into", "the", "assembler", "stream", "describing", "the", "current", "function", "."], "TS_V_token": ["arm", "\"\\t%@ Function supports interworking.\\n\"", "\"\\t%@ Interrupt Service Routine.\\n\"", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", "\"\\t%@ ARM Exception Handler.\\n\"", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", "\"\\t%@ Volatile: function does not return.\\n\"", "\"\\t%@ Nested: function declared inside another function.\\n\"", "\"\\t%@ args = %d, pretend = %d, frame = %wd\\n\"", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", "\"\\t%@ link register save eliminated.\\n\"", "\"\\t@ Calls __builtin_eh_return.\\n\"", "\"\\tmov\\t%r, %r\\n\"", "0"], "File": "arm3", "Func": "arm_output_function_prologue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44525, "Length": 230}
{"ground_truth": ["", "static", "void", "arm_output_mi_thunk", "(", "FILE", "*", "file", ",", "tree", "thunk", "ATTRIBUTE_UNUSED", ",", "HOST_WIDE_INT", "delta", ",", "HOST_WIDE_INT", "vcall_offset", "ATTRIBUTE_UNUSED", ",", "tree", "function", ")", "{", "static", "int", "thunk_label", "=", "0", ";", "char", "label", "[", "256", "]", ";", "int", "mi_delta", "=", "delta", ";", "const", "char", "*", "const", "mi_op", "=", "mi_delta", "<", "0", "?", "\"sub\"", ":", "\"add\"", ";", "int", "shift", "=", "0", ";", "int", "this_regno", "=", "(", "aggregate_value_p", "(", "TREE_TYPE", "(", "TREE_TYPE", "(", "function", ")", ")", ",", "function", ")", "?", "1", ":", "0", ")", ";", "if", "(", "mi_delta", "<", "0", ")", "mi_delta", "=", "-", "mi_delta", ";", "if", "(", "TARGET_THUMB", ")", "{", "int", "labelno", "=", "thunk_label", "++", ";", "ASM_GENERATE_INTERNAL_LABEL", "(", "label", ",", "\"LTHUMBFUNC\"", ",", "labelno", ")", ";", "fputs", "(", "\"\\tldr\\tr12, \"", ",", "file", ")", ";", "assemble_name", "(", "file", ",", "label", ")", ";", "fputc", "(", "'\\n'", ",", "file", ")", ";", "}", "while", "(", "mi_delta", "!=", "0", ")", "{", "if", "(", "(", "mi_delta", "&", "(", "3", "<<", "shift", ")", ")", "==", "0", ")", "shift", "+=", "2", ";", "else", "{", "asm_fprintf", "(", "file", ",", "\"\\t%s\\t%r, %r, #%d\\n\"", ",", "mi_op", ",", "this_regno", ",", "this_regno", ",", "mi_delta", "&", "(", "0xff", "<<", "shift", ")", ")", ";", "mi_delta", "&=", "~", "(", "0xff", "<<", "shift", ")", ";", "shift", "+=", "8", ";", "}", "}", "if", "(", "TARGET_THUMB", ")", "{", "fprintf", "(", "file", ",", "\"\\tbx\\tr12\\n\"", ")", ";", "ASM_OUTPUT_ALIGN", "(", "file", ",", "2", ")", ";", "assemble_name", "(", "file", ",", "label", ")", ";", "fputs", "(", "\":\\n\"", ",", "file", ")", ";", "assemble_integer", "(", "XEXP", "(", "DECL_RTL", "(", "function", ")", ",", "0", ")", ",", "4", ",", "BITS_PER_WORD", ",", "1", ")", ";", "}", "else", "{", "fputs", "(", "\"\\tb\\t\"", ",", "file", ")", ";", "assemble_name", "(", "file", ",", "XSTR", "(", "XEXP", "(", "DECL_RTL", "(", "function", ")", ",", "0", ")", ",", "0", ")", ")", ";", "if", "(", "NEED_PLT_RELOC", ")", "fputs", "(", "\"(PLT)\"", ",", "file", ")", ";", "fputc", "(", "'\\n'", ",", "file", ")", ";", "}", "}", ""], "natrual_language": ["Output", "code", "to", "add", "DELTA", "to", "the", "first", "argument", ",", "and", "then", "jump", "to", "FUNCTION", ".", "Used", "for", "C++", "multiple", "inheritance", "."], "TS_V_token": ["arm", "0", "256", "0", "\"sub\"", "\"add\"", "0", "1", "0", "0", "\"LTHUMBFUNC\"", "\"\\tldr\\tr12, \"", "0", "3", "0", "2", "\"\\t%s\\t%r, %r, #%d\\n\"", "0xff", "0xff", "8", "\"\\tbx\\tr12\\n\"", "2", "\":\\n\"", "0", "4", "1", "\"\\tb\\t\"", "0", "0", "\"(PLT)\""], "File": "arm3", "Func": "arm_output_mi_thunk", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44526, "Length": 299}
{"ground_truth": ["", "static", "bool", "arm_output_ttype", "(", "rtx", "x", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "GET_CODE", "(", "x", ")", "!=", "CONST_INT", ")", "fputs", "(", "\"(TARGET2)\"", ",", "asm_out_file", ")", ";", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "TRUE", ";", "}", ""], "natrual_language": ["Output", "a", "reference", "from", "a", "function", "exception", "table", "to", "the", "type_info", "object", "X", ".", "The", "EABI", "specifies", "that", "the", "symbol", "should", "be", "relocated", "by", "an", "R_ARM_TARGET2", "relocation", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "\"(TARGET2)\""], "File": "arm3", "Func": "arm_output_ttype", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44527, "Length": 49}
{"ground_truth": ["", "bool", "arm_pad_arg_upward", "(", "enum", "machine_mode", "mode", ",", "tree", "type", ")", "{", "if", "(", "!", "TARGET_AAPCS_BASED", ")", "return", "DEFAULT_FUNCTION_ARG_PADDING", "(", "mode", ",", "type", ")", "==", "upward", ";", "if", "(", "type", "&&", "BYTES_BIG_ENDIAN", "&&", "INTEGRAL_TYPE_P", "(", "type", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["For", "use", "by", "FUNCTION_ARG_PADDING", "(", "MODE", ",", "TYPE", ")", ".", "Return", "true", "if", "an", "argument", "passed", "on", "the", "stack", "should", "be", "padded", "upwards", ",", "i.e", ".", "if", "the", "least-significant", "byte", "has", "useful", "data", ".", "For", "legacy", "APCS", "ABIs", "we", "use", "the", "default", ".", "For", "AAPCS", "based", "ABIs", "small", "aggregate", "types", "are", "placed", "in", "the", "lowest", "memory", "address", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_pad_arg_upward", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44528, "Length": 44}
{"ground_truth": ["", "bool", "arm_pad_reg_upward", "(", "enum", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "tree", "type", ",", "int", "first", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "TARGET_AAPCS_BASED", "&&", "BYTES_BIG_ENDIAN", "&&", "(", "AGGREGATE_TYPE_P", "(", "type", ")", "||", "TREE_CODE", "(", "type", ")", "==", "COMPLEX_TYPE", ")", "&&", "int_size_in_bytes", "(", "type", ")", "<=", "4", ")", "return", "true", ";", "return", "!", "BYTES_BIG_ENDIAN", ";", "}", ""], "natrual_language": ["Similarly", ",", "for", "use", "by", "BLOCK_REG_PADDING", "(", "MODE", ",", "TYPE", ",", "FIRST", ")", ".", "For", "non-AAPCS", ",", "return", "!", "BYTES_BIG_ENDIAN", "if", "the", "least", "significant", "byte", "of", "the", "register", "has", "useful", "data", ",", "and", "return", "the", "opposite", "if", "the", "most", "significant", "byte", "does", ".", "For", "AAPCS", ",", "small", "aggregates", "and", "small", "complex", "types", "are", "always", "padded", "upwards", "."], "TS_V_token": ["arm", "4"], "File": "arm3", "Func": "arm_pad_reg_upward", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44529, "Length": 51}
{"ground_truth": ["", "static", "void", "arm_print_value", "(", "FILE", "*", "f", ",", "rtx", "x", ")", "{", "switch", "(", "GET_CODE", "(", "x", ")", ")", "{", "case", "CONST_INT", ":", "fprintf", "(", "f", ",", "HOST_WIDE_INT_PRINT_HEX", ",", "INTVAL", "(", "x", ")", ")", ";", "return", ";", "case", "CONST_DOUBLE", ":", "fprintf", "(", "f", ",", "\"<0x%lx,0x%lx>\"", ",", "(", "long", ")", "XWINT", "(", "x", ",", "2", ")", ",", "(", "long", ")", "XWINT", "(", "x", ",", "3", ")", ")", ";", "return", ";", "case", "CONST_VECTOR", ":", "{", "int", "i", ";", "fprintf", "(", "f", ",", "\"<\"", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "i", "++", ")", "{", "fprintf", "(", "f", ",", "HOST_WIDE_INT_PRINT_HEX", ",", "INTVAL", "(", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ")", ")", ";", "if", "(", "i", "<", "(", "CONST_VECTOR_NUNITS", "(", "x", ")", "-", "1", ")", ")", "fputc", "(", "','", ",", "f", ")", ";", "}", "fprintf", "(", "f", ",", "\">\"", ")", ";", "}", "return", ";", "case", "CONST_STRING", ":", "fprintf", "(", "f", ",", "\"\\\"%s\\\"\"", ",", "XSTR", "(", "x", ",", "0", ")", ")", ";", "return", ";", "case", "SYMBOL_REF", ":", "fprintf", "(", "f", ",", "\"`%s'\"", ",", "XSTR", "(", "x", ",", "0", ")", ")", ";", "return", ";", "case", "LABEL_REF", ":", "fprintf", "(", "f", ",", "\"L%d\"", ",", "INSN_UID", "(", "XEXP", "(", "x", ",", "0", ")", ")", ")", ";", "return", ";", "case", "CONST", ":", "arm_print_value", "(", "f", ",", "XEXP", "(", "x", ",", "0", ")", ")", ";", "return", ";", "case", "PLUS", ":", "arm_print_value", "(", "f", ",", "XEXP", "(", "x", ",", "0", ")", ")", ";", "fprintf", "(", "f", ",", "\"+\"", ")", ";", "arm_print_value", "(", "f", ",", "XEXP", "(", "x", ",", "1", ")", ")", ";", "return", ";", "case", "PC", ":", "fprintf", "(", "f", ",", "\"pc\"", ")", ";", "return", ";", "default", ":", "fprintf", "(", "f", ",", "\"????\"", ")", ";", "return", ";", "}", "}", ""], "natrual_language": ["Print", "a", "symbolic", "form", "of", "X", "to", "the", "debug", "file", ",", "F", "."], "TS_V_token": ["arm", "\"<0x%lx,0x%lx>\"", "2", "3", "\"<\"", "0", "1", "\">\"", "\"\\\"%s\\\"\"", "0", "\"`%s'\"", "0", "\"L%d\"", "0", "0", "0", "\"+\"", "1", "\"pc\"", "\"????\""], "File": "arm3", "Func": "arm_print_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44530, "Length": 286}
{"ground_truth": ["", "static", "bool", "arm_promote_prototypes", "(", "tree", "t", "ATTRIBUTE_UNUSED", ")", "{", "return", "!", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["We", "ca", "n't", "rely", "on", "the", "caller", "doing", "the", "proper", "promotion", "when", "using", "APCS", "or", "ATPCS", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_promote_prototypes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44531, "Length": 14}
{"ground_truth": ["", "int", "arm_regno_class", "(", "int", "regno", ")", "{", "if", "(", "TARGET_THUMB", ")", "{", "if", "(", "regno", "==", "STACK_POINTER_REGNUM", ")", "return", "STACK_REG", ";", "if", "(", "regno", "==", "CC_REGNUM", ")", "return", "CC_REG", ";", "if", "(", "regno", "<", "8", ")", "return", "LO_REGS", ";", "return", "HI_REGS", ";", "}", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "GENERAL_REGS", ";", "if", "(", "regno", "==", "CC_REGNUM", "||", "regno", "==", "VFPCC_REGNUM", ")", "return", "NO_REGS", ";", "if", "(", "IS_CIRRUS_REGNUM", "(", "regno", ")", ")", "return", "CIRRUS_REGS", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "return", "VFP_REGS", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_REGS", ";", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_GR_REGS", ";", "return", "FPA_REGS", ";", "}", ""], "natrual_language": ["For", "efficiency", "and", "historical", "reasons", "LO_REGS", ",", "HI_REGS", "and", "CC_REGS", "are", "not", "used", "in", "arm", "mode", "."], "TS_V_token": ["arm", "8"], "File": "arm3", "Func": "arm_regno_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44532, "Length": 117}
{"ground_truth": ["", "static", "void", "arm_reorg", "(", "void", ")", "{", "rtx", "insn", ";", "HOST_WIDE_INT", "address", "=", "0", ";", "Mfix", "*", "fix", ";", "minipool_fix_head", "=", "minipool_fix_tail", "=", "NULL", ";", "insn", "=", "get_insns", "(", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "insn", ")", "==", "NOTE", ")", ";", "for", "(", "insn", "=", "next_nonnote_insn", "(", "insn", ")", ";", "insn", ";", "insn", "=", "next_nonnote_insn", "(", "insn", ")", ")", "{", "if", "(", "TARGET_CIRRUS_FIX_INVALID_INSNS", "&&", "(", "arm_cirrus_insn_p", "(", "insn", ")", "||", "GET_CODE", "(", "insn", ")", "==", "JUMP_INSN", "||", "arm_memory_load_p", "(", "insn", ")", ")", ")", "cirrus_reorg", "(", "insn", ")", ";", "if", "(", "GET_CODE", "(", "insn", ")", "==", "BARRIER", ")", "push_minipool_barrier", "(", "insn", ",", "address", ")", ";", "else", "if", "(", "INSN_P", "(", "insn", ")", ")", "{", "rtx", "table", ";", "note_invalid_constants", "(", "insn", ",", "address", ",", "true", ")", ";", "address", "+=", "get_attr_length", "(", "insn", ")", ";", "if", "(", "(", "table", "=", "is_jump_table", "(", "insn", ")", ")", "!=", "NULL", ")", "{", "address", "+=", "get_jump_table_size", "(", "table", ")", ";", "insn", "=", "table", ";", "}", "}", "}", "fix", "=", "minipool_fix_head", ";", "while", "(", "fix", ")", "{", "Mfix", "*", "ftmp", ";", "Mfix", "*", "fdel", ";", "Mfix", "*", "last_added_fix", ";", "Mfix", "*", "last_barrier", "=", "NULL", ";", "Mfix", "*", "this_fix", ";", "while", "(", "fix", "&&", "GET_CODE", "(", "fix", "->", "insn", ")", "==", "BARRIER", ")", "fix", "=", "fix", "->", "next", ";", "if", "(", "fix", "==", "NULL", ")", "break", ";", "last_added_fix", "=", "NULL", ";", "for", "(", "ftmp", "=", "fix", ";", "ftmp", ";", "ftmp", "=", "ftmp", "->", "next", ")", "{", "if", "(", "GET_CODE", "(", "ftmp", "->", "insn", ")", "==", "BARRIER", ")", "{", "if", "(", "ftmp", "->", "address", ">=", "minipool_vector_head", "->", "max_address", ")", "break", ";", "last_barrier", "=", "ftmp", ";", "}", "else", "if", "(", "(", "ftmp", "->", "minipool", "=", "add_minipool_forward_ref", "(", "ftmp", ")", ")", "==", "NULL", ")", "break", ";", "last_added_fix", "=", "ftmp", ";", "}", "if", "(", "last_barrier", "!=", "NULL", ")", "{", "for", "(", "fdel", "=", "last_barrier", "->", "next", ";", "fdel", "&&", "fdel", "!=", "ftmp", ";", "fdel", "=", "fdel", "->", "next", ")", "{", "fdel", "->", "minipool", "->", "refcount", "--", ";", "fdel", "->", "minipool", "=", "NULL", ";", "}", "ftmp", "=", "last_barrier", ";", "}", "else", "{", "HOST_WIDE_INT", "max_address", ";", "gcc_assert", "(", "ftmp", ")", ";", "max_address", "=", "minipool_vector_head", "->", "max_address", ";", "if", "(", "ftmp", "->", "address", "<", "max_address", ")", "max_address", "=", "ftmp", "->", "address", ";", "last_barrier", "=", "create_fix_barrier", "(", "last_added_fix", ",", "max_address", ")", ";", "}", "assign_minipool_offsets", "(", "last_barrier", ")", ";", "while", "(", "ftmp", ")", "{", "if", "(", "GET_CODE", "(", "ftmp", "->", "insn", ")", "!=", "BARRIER", "&&", "(", "(", "ftmp", "->", "minipool", "=", "add_minipool_backward_ref", "(", "ftmp", ")", ")", "==", "NULL", ")", ")", "break", ";", "ftmp", "=", "ftmp", "->", "next", ";", "}", "for", "(", "this_fix", "=", "fix", ";", "this_fix", "&&", "ftmp", "!=", "this_fix", ";", "this_fix", "=", "this_fix", "->", "next", ")", "if", "(", "GET_CODE", "(", "this_fix", "->", "insn", ")", "!=", "BARRIER", ")", "{", "rtx", "addr", "=", "plus_constant", "(", "gen_rtx_LABEL_REF", "(", "VOIDmode", ",", "minipool_vector_label", ")", ",", "this_fix", "->", "minipool", "->", "offset", ")", ";", "*", "this_fix", "->", "loc", "=", "gen_rtx_MEM", "(", "this_fix", "->", "mode", ",", "addr", ")", ";", "}", "dump_minipool", "(", "last_barrier", "->", "insn", ")", ";", "fix", "=", "ftmp", ";", "}", "after_arm_reorg", "=", "1", ";", "obstack_free", "(", "&", "minipool_obstack", ",", "minipool_startobj", ")", ";", "}", ""], "natrual_language": ["Gcc", "puts", "the", "pool", "in", "the", "wrong", "place", "for", "ARM", ",", "since", "we", "can", "only", "load", "addresses", "a", "limited", "distance", "around", "the", "pc", ".", "We", "do", "some", "special", "munging", "to", "move", "the", "constant", "pool", "values", "to", "the", "correct", "point", "in", "the", "code", "."], "TS_V_token": ["arm", "0", "1"], "File": "arm3", "Func": "arm_reorg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44533, "Length": 510}
{"ground_truth": ["", "int", "arm_return_in_memory", "(", "tree", "type", ")", "{", "HOST_WIDE_INT", "size", ";", "if", "(", "!", "AGGREGATE_TYPE_P", "(", "type", ")", "&&", "(", "TREE_CODE", "(", "type", ")", "!=", "VECTOR_TYPE", ")", "&&", "!", "(", "TARGET_AAPCS_BASED", "&&", "TREE_CODE", "(", "type", ")", "==", "COMPLEX_TYPE", ")", ")", "return", "0", ";", "size", "=", "int_size_in_bytes", "(", "type", ")", ";", "if", "(", "arm_abi", "!=", "ARM_ABI_APCS", ")", "{", "return", "(", "size", "<", "0", "||", "size", ">", "UNITS_PER_WORD", ")", ";", "}", "if", "(", "TREE_CODE", "(", "type", ")", "==", "VECTOR_TYPE", ")", "return", "(", "size", "<", "0", "||", "size", ">", "(", "4", "*", "UNITS_PER_WORD", ")", ")", ";", "if", "(", "size", "<", "0", "||", "size", ">", "UNITS_PER_WORD", ")", "return", "1", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "RECORD_TYPE", ")", "{", "tree", "field", ";", "for", "(", "field", "=", "TYPE_FIELDS", "(", "type", ")", ";", "field", "&&", "TREE_CODE", "(", "field", ")", "!=", "FIELD_DECL", ";", "field", "=", "TREE_CHAIN", "(", "field", ")", ")", "continue", ";", "if", "(", "field", "==", "NULL", ")", "return", "0", ";", "if", "(", "FLOAT_TYPE_P", "(", "TREE_TYPE", "(", "field", ")", ")", ")", "return", "1", ";", "if", "(", "RETURN_IN_MEMORY", "(", "TREE_TYPE", "(", "field", ")", ")", ")", "return", "1", ";", "for", "(", "field", "=", "TREE_CHAIN", "(", "field", ")", ";", "field", ";", "field", "=", "TREE_CHAIN", "(", "field", ")", ")", "{", "if", "(", "TREE_CODE", "(", "field", ")", "!=", "FIELD_DECL", ")", "continue", ";", "if", "(", "!", "DECL_BIT_FIELD_TYPE", "(", "field", ")", ")", "return", "1", ";", "}", "return", "0", ";", "}", "if", "(", "TREE_CODE", "(", "type", ")", "==", "UNION_TYPE", ")", "{", "tree", "field", ";", "for", "(", "field", "=", "TYPE_FIELDS", "(", "type", ")", ";", "field", ";", "field", "=", "TREE_CHAIN", "(", "field", ")", ")", "{", "if", "(", "TREE_CODE", "(", "field", ")", "!=", "FIELD_DECL", ")", "continue", ";", "if", "(", "FLOAT_TYPE_P", "(", "TREE_TYPE", "(", "field", ")", ")", ")", "return", "1", ";", "if", "(", "RETURN_IN_MEMORY", "(", "TREE_TYPE", "(", "field", ")", ")", ")", "return", "1", ";", "}", "return", "0", ";", "}", "return", "1", ";", "}", ""], "natrual_language": ["Decide", "whether", "a", "type", "should", "be", "returned", "in", "memory", "(", "true", ")", "or", "in", "a", "register", "(", "false", ")", ".", "This", "is", "called", "by", "the", "macro", "RETURN_IN_MEMORY", "."], "TS_V_token": ["arm", "0", "0", "0", "4", "0", "1", "0", "1", "1", "1", "0", "1", "1", "0", "1"], "File": "arm3", "Func": "arm_return_in_memory", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44534, "Length": 304}
{"ground_truth": ["", "static", "bool", "arm_return_in_msb", "(", "tree", "valtype", ")", "{", "return", "(", "TARGET_AAPCS_BASED", "&&", "BYTES_BIG_ENDIAN", "&&", "(", "AGGREGATE_TYPE_P", "(", "valtype", ")", "||", "TREE_CODE", "(", "valtype", ")", "==", "COMPLEX_TYPE", ")", ")", ";", "}", ""], "natrual_language": ["Values", "which", "must", "be", "returned", "in", "the", "most-significant", "end", "of", "the", "return", "register", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_return_in_msb", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44535, "Length": 30}
{"ground_truth": ["", "enum", "machine_mode", "arm_select_dominance_cc_mode", "(", "rtx", "x", ",", "rtx", "y", ",", "HOST_WIDE_INT", "cond_or", ")", "{", "enum", "rtx_code", "cond1", ",", "cond2", ";", "int", "swapped", "=", "0", ";", "if", "(", "(", "arm_select_cc_mode", "(", "cond1", "=", "GET_CODE", "(", "x", ")", ",", "XEXP", "(", "x", ",", "0", ")", ",", "XEXP", "(", "x", ",", "1", ")", ")", "!=", "CCmode", ")", "||", "(", "arm_select_cc_mode", "(", "cond2", "=", "GET_CODE", "(", "y", ")", ",", "XEXP", "(", "y", ",", "0", ")", ",", "XEXP", "(", "y", ",", "1", ")", ")", "!=", "CCmode", ")", ")", "return", "CCmode", ";", "if", "(", "cond_or", "==", "DOM_CC_NX_OR_Y", ")", "cond1", "=", "reverse_condition", "(", "cond1", ")", ";", "if", "(", "cond1", "!=", "cond2", "&&", "!", "comparison_dominates_p", "(", "cond1", ",", "cond2", ")", "&&", "(", "swapped", "=", "1", ",", "!", "comparison_dominates_p", "(", "cond2", ",", "cond1", ")", ")", ")", "return", "CCmode", ";", "if", "(", "swapped", ")", "{", "enum", "rtx_code", "temp", "=", "cond1", ";", "cond1", "=", "cond2", ";", "cond2", "=", "temp", ";", "}", "switch", "(", "cond1", ")", "{", "case", "EQ", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DEQmode", ";", "switch", "(", "cond2", ")", "{", "case", "EQ", ":", "return", "CC_DEQmode", ";", "case", "LE", ":", "return", "CC_DLEmode", ";", "case", "LEU", ":", "return", "CC_DLEUmode", ";", "case", "GE", ":", "return", "CC_DGEmode", ";", "case", "GEU", ":", "return", "CC_DGEUmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "LT", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DLTmode", ";", "switch", "(", "cond2", ")", "{", "case", "LT", ":", "return", "CC_DLTmode", ";", "case", "LE", ":", "return", "CC_DLEmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "GT", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DGTmode", ";", "switch", "(", "cond2", ")", "{", "case", "GT", ":", "return", "CC_DGTmode", ";", "case", "GE", ":", "return", "CC_DGEmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "LTU", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DLTUmode", ";", "switch", "(", "cond2", ")", "{", "case", "LTU", ":", "return", "CC_DLTUmode", ";", "case", "LEU", ":", "return", "CC_DLEUmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "GTU", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DGTUmode", ";", "switch", "(", "cond2", ")", "{", "case", "GTU", ":", "return", "CC_DGTUmode", ";", "case", "GEU", ":", "return", "CC_DGEUmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "NE", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DNEmode", ";", "case", "LE", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DLEmode", ";", "case", "GE", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DGEmode", ";", "case", "LEU", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DLEUmode", ";", "case", "GEU", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DGEUmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Select", "a", "dominance", "comparison", "mode", "if", "possible", "for", "a", "test", "of", "the", "general", "form", "(", "OP", "(", "COND_OR", "(", "X", ")", "(", "Y", ")", ")", "(", "const_int", "0", ")", ")", ".", "We", "support", "three", "forms", ".", "COND_OR", "==", "DOM_CC_X_AND_Y", "=", ">", "(", "X", "&", "&", "Y", ")", "COND_OR", "==", "DOM_CC_NX_OR_Y", "=", ">", "(", "(", "!", "X", ")", "||", "Y", ")", "COND_OR", "==", "DOM_CC_X_OR_Y", "=", ">", "(", "X", "||", "Y", ")", "In", "all", "cases", "OP", "will", "be", "either", "EQ", "or", "NE", ",", "but", "we", "do", "n't", "need", "to", "know", "which", "here", ".", "If", "we", "are", "unable", "to", "support", "a", "dominance", "comparison", "we", "return", "CC", "mode", ".", "This", "will", "then", "fail", "to", "match", "for", "the", "RTL", "expressions", "that", "generate", "this", "call", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "1"], "File": "arm3", "Func": "arm_select_dominance_cc_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44536, "Length": 450}
{"ground_truth": ["", "static", "void", "arm_setup_incoming_varargs", "(", "CUMULATIVE_ARGS", "*", "cum", ",", "enum", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "tree", "type", "ATTRIBUTE_UNUSED", ",", "int", "*", "pretend_size", ",", "int", "second_time", "ATTRIBUTE_UNUSED", ")", "{", "cfun", "->", "machine", "->", "uses_anonymous_args", "=", "1", ";", "if", "(", "cum", "->", "nregs", "<", "NUM_ARG_REGS", ")", "*", "pretend_size", "=", "(", "NUM_ARG_REGS", "-", "cum", "->", "nregs", ")", "*", "UNITS_PER_WORD", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_SETUP_INCOMING_VARARGS", ".", "On", "the", "ARM", ",", "PRETEND_SIZE", "is", "set", "in", "order", "to", "have", "the", "prologue", "push", "the", "last", "named", "arg", "and", "all", "anonymous", "args", "onto", "the", "stack", ".", "XXX", "I", "know", "the", "prologue", "should", "n't", "be", "pushing", "registers", ",", "but", "it", "is", "faster", "that", "way", "."], "TS_V_token": ["arm", "1"], "File": "arm3", "Func": "arm_setup_incoming_varargs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44537, "Length": 56}
{"ground_truth": ["", "static", "unsigned", "HOST_WIDE_INT", "arm_shift_truncation_mask", "(", "enum", "machine_mode", "mode", ")", "{", "return", "mode", "==", "SImode", "?", "255", ":", "0", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SHIFT_TRUNCATION_MASK", ".", "SImode", "shifts", "use", "normal", "ARM", "insns", "and", "therefore", "guarantee", "that", "the", "shift", "count", "is", "modulo", "256", ".", "DImode", "shifts", "(", "those", "implemented", "by", "lib1funcs.asm", "or", "by", "optabs.c", ")", "guarantee", "no", "particular", "behavior", "for", "out-of-range", "counts", "."], "TS_V_token": ["arm", "255", "0"], "File": "arm3", "Func": "arm_shift_truncation_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44538, "Length": 20}
{"ground_truth": ["", "static", "int", "arm_size_return_regs", "(", "void", ")", "{", "enum", "machine_mode", "mode", ";", "if", "(", "current_function_return_rtx", "!=", "0", ")", "mode", "=", "GET_MODE", "(", "current_function_return_rtx", ")", ";", "else", "mode", "=", "DECL_MODE", "(", "DECL_RESULT", "(", "current_function_decl", ")", ")", ";", "return", "GET_MODE_SIZE", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Calculate", "the", "size", "of", "the", "return", "value", "that", "is", "passed", "in", "registers", "."], "TS_V_token": ["arm", "0"], "File": "arm3", "Func": "arm_size_return_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44539, "Length": 42}
{"ground_truth": ["", "static", "bool", "arm_slowmul_rtx_costs", "(", "rtx", "x", ",", "int", "code", ",", "int", "outer_code", ",", "int", "*", "total", ")", "{", "enum", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "*", "total", "=", "thumb_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "mode", "==", "DImode", ")", "{", "*", "total", "=", "30", ";", "return", "true", ";", "}", "if", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "CONST_INT", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ";", "int", "cost", ",", "const_ok", "=", "const_ok_for_arm", "(", "i", ")", ";", "int", "j", ",", "booth_unit_size", ";", "cost", "=", "const_ok", "?", "4", ":", "8", ";", "booth_unit_size", "=", "2", ";", "for", "(", "j", "=", "0", ";", "i", "&&", "j", "<", "32", ";", "j", "+=", "booth_unit_size", ")", "{", "i", ">>=", "booth_unit_size", ";", "cost", "+=", "2", ";", "}", "*", "total", "=", "cost", ";", "return", "true", ";", "}", "*", "total", "=", "30", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "0", ")", ")", "?", "0", ":", "4", ")", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "1", ")", ")", "?", "0", ":", "4", ")", ";", "return", "true", ";", "default", ":", "*", "total", "=", "arm_rtx_costs_1", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "}", ""], "natrual_language": ["RTX", "costs", "for", "cores", "with", "a", "slow", "MUL", "implementation", ".", "Thumb-2", "is", "not", "supported", "on", "any", "``", "slowmul", "''", "cores", ",", "so", "it", "can", "be", "ignored", "."], "TS_V_token": ["arm", "30", "1", "1", "0xffffffff", "4", "8", "2", "0", "32", "2", "30", "0", "0", "4", "1", "0", "4"], "File": "arm3", "Func": "arm_slowmul_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44540, "Length": 237}
{"ground_truth": ["", "int", "arm_split_constant", "(", "enum", "rtx_code", "code", ",", "enum", "machine_mode", "mode", ",", "rtx", "insn", ",", "HOST_WIDE_INT", "val", ",", "rtx", "target", ",", "rtx", "source", ",", "int", "subtargets", ")", "{", "rtx", "cond", ";", "if", "(", "insn", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "COND_EXEC", ")", "cond", "=", "COND_EXEC_TEST", "(", "PATTERN", "(", "insn", ")", ")", ";", "else", "cond", "=", "NULL_RTX", ";", "if", "(", "subtargets", "||", "code", "==", "SET", "||", "(", "GET_CODE", "(", "target", ")", "==", "REG", "&&", "GET_CODE", "(", "source", ")", "==", "REG", "&&", "REGNO", "(", "target", ")", "!=", "REGNO", "(", "source", ")", ")", ")", "{", "if", "(", "!", "after_arm_reorg", "&&", "!", "cond", "&&", "(", "arm_gen_constant", "(", "code", ",", "mode", ",", "NULL_RTX", ",", "val", ",", "target", ",", "source", ",", "1", ",", "0", ")", ">", "arm_constant_limit", "+", "(", "code", "!=", "SET", ")", ")", ")", "{", "if", "(", "code", "==", "SET", ")", "{", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "target", ",", "GEN_INT", "(", "val", ")", ")", ")", ";", "return", "1", ";", "}", "else", "{", "rtx", "temp", "=", "subtargets", "?", "gen_reg_rtx", "(", "mode", ")", ":", "target", ";", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "temp", ",", "GEN_INT", "(", "val", ")", ")", ")", ";", "if", "(", "code", "==", "MINUS", ")", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "target", ",", "gen_rtx_MINUS", "(", "mode", ",", "temp", ",", "source", ")", ")", ")", ";", "else", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "target", ",", "gen_rtx_fmt_ee", "(", "code", ",", "mode", ",", "source", ",", "temp", ")", ")", ")", ";", "return", "2", ";", "}", "}", "}", "return", "arm_gen_constant", "(", "code", ",", "mode", ",", "cond", ",", "val", ",", "target", ",", "source", ",", "subtargets", ",", "1", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "sequence", "of", "insns", "to", "handle", "a", "large", "constant", ".", "CODE", "is", "the", "code", "of", "the", "operation", "required", ",", "it", "can", "be", "any", "of", "SET", ",", "PLUS", ",", "IOR", ",", "AND", ",", "XOR", ",", "MINUS", ";", "MODE", "is", "the", "mode", "in", "which", "the", "operation", "is", "being", "performed", ";", "VAL", "is", "the", "integer", "to", "operate", "on", ";", "SOURCE", "is", "the", "other", "operand", "(", "a", "register", ",", "or", "a", "null-pointer", "for", "SET", ")", ";", "SUBTARGETS", "means", "it", "is", "safe", "to", "create", "scratch", "registers", "if", "that", "will", "either", "produce", "a", "simpler", "sequence", ",", "or", "we", "will", "want", "to", "cse", "the", "values", ".", "Return", "value", "is", "the", "number", "of", "insns", "emitted", "."], "TS_V_token": ["arm", "1", "0", "1", "2", "1"], "File": "arm3", "Func": "arm_split_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44541, "Length": 261}
{"ground_truth": ["", "static", "int", "arm_tls_operand_p_1", "(", "rtx", "*", "x", ",", "void", "*", "data", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "GET_CODE", "(", "*", "x", ")", "==", "SYMBOL_REF", ")", "return", "SYMBOL_REF_TLS_MODEL", "(", "*", "x", ")", "!=", "0", ";", "if", "(", "GET_CODE", "(", "*", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "*", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "return", "-", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Helper", "for", "arm_tls_referenced_p", "."], "TS_V_token": ["arm", "0", "1", "1", "0"], "File": "arm3", "Func": "arm_tls_operand_p_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44542, "Length": 61}
{"ground_truth": ["", "bool", "arm_tls_referenced_p", "(", "rtx", "x", ")", "{", "if", "(", "!", "TARGET_HAVE_TLS", ")", "return", "false", ";", "return", "for_each_rtx", "(", "&", "x", ",", "arm_tls_operand_p_1", ",", "NULL", ")", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "contains", "any", "TLS", "symbol", "references", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_tls_referenced_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44543, "Length": 27}
{"ground_truth": ["", "static", "bool", "arm_tls_symbol_p", "(", "rtx", "x", ")", "{", "if", "(", "!", "TARGET_HAVE_TLS", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "x", ")", "!=", "SYMBOL_REF", ")", "return", "false", ";", "return", "SYMBOL_REF_TLS_MODEL", "(", "x", ")", "!=", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "is", "a", "thread-local", "symbol", "."], "TS_V_token": ["arm", "0"], "File": "arm3", "Func": "arm_tls_symbol_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44544, "Length": 37}
{"ground_truth": ["", "static", "void", "arm_unwind_emit", "(", "FILE", "*", "asm_out_file", ",", "rtx", "insn", ")", "{", "rtx", "pat", ";", "if", "(", "!", "ARM_EABI_UNWIND_TABLES", ")", "return", ";", "if", "(", "GET_CODE", "(", "insn", ")", "==", "NOTE", "||", "!", "RTX_FRAME_RELATED_P", "(", "insn", ")", ")", "return", ";", "pat", "=", "find_reg_note", "(", "insn", ",", "REG_FRAME_RELATED_EXPR", ",", "NULL_RTX", ")", ";", "if", "(", "pat", ")", "pat", "=", "XEXP", "(", "pat", ",", "0", ")", ";", "else", "pat", "=", "PATTERN", "(", "insn", ")", ";", "switch", "(", "GET_CODE", "(", "pat", ")", ")", "{", "case", "SET", ":", "arm_unwind_emit_set", "(", "asm_out_file", ",", "pat", ")", ";", "break", ";", "case", "SEQUENCE", ":", "arm_unwind_emit_stm", "(", "asm_out_file", ",", "pat", ")", ";", "break", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "unwind", "directives", "for", "the", "given", "insn", "."], "TS_V_token": ["arm", "0"], "File": "arm3", "Func": "arm_unwind_emit", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44545, "Length": 111}
{"ground_truth": ["", "static", "void", "arm_unwind_emit_set", "(", "FILE", "*", "asm_out_file", ",", "rtx", "p", ")", "{", "rtx", "e0", ";", "rtx", "e1", ";", "e0", "=", "XEXP", "(", "p", ",", "0", ")", ";", "e1", "=", "XEXP", "(", "p", ",", "1", ")", ";", "switch", "(", "GET_CODE", "(", "e0", ")", ")", "{", "case", "MEM", ":", "if", "(", "GET_CODE", "(", "XEXP", "(", "e0", ",", "0", ")", ")", "!=", "PRE_DEC", "||", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "e0", ",", "0", ")", ",", "0", ")", ")", "!=", "REG", "||", "REGNO", "(", "XEXP", "(", "XEXP", "(", "e0", ",", "0", ")", ",", "0", ")", ")", "!=", "SP_REGNUM", ")", "abort", "(", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.save \"", ")", ";", "if", "(", "IS_VFP_REGNUM", "(", "REGNO", "(", "e1", ")", ")", ")", "asm_fprintf", "(", "asm_out_file", ",", "\"{d%d}\\n\"", ",", "(", "REGNO", "(", "e1", ")", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ")", ";", "else", "asm_fprintf", "(", "asm_out_file", ",", "\"{%r}\\n\"", ",", "REGNO", "(", "e1", ")", ")", ";", "break", ";", "case", "REG", ":", "if", "(", "REGNO", "(", "e0", ")", "==", "SP_REGNUM", ")", "{", "if", "(", "GET_CODE", "(", "e1", ")", "!=", "PLUS", "||", "GET_CODE", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "!=", "REG", "||", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "!=", "SP_REGNUM", "||", "GET_CODE", "(", "XEXP", "(", "e1", ",", "1", ")", ")", "!=", "CONST_INT", ")", "abort", "(", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.pad #%wd\\n\"", ",", "-", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", ";", "}", "else", "if", "(", "REGNO", "(", "e0", ")", "==", "HARD_FRAME_POINTER_REGNUM", ")", "{", "HOST_WIDE_INT", "offset", ";", "unsigned", "reg", ";", "if", "(", "GET_CODE", "(", "e1", ")", "==", "PLUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "!=", "REG", "||", "GET_CODE", "(", "XEXP", "(", "e1", ",", "1", ")", ")", "!=", "CONST_INT", ")", "abort", "(", ")", ";", "reg", "=", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", ";", "offset", "=", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.setfp %r, %r, #%wd\\n\"", ",", "HARD_FRAME_POINTER_REGNUM", ",", "reg", ",", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "e1", ")", "==", "REG", ")", "{", "reg", "=", "REGNO", "(", "e1", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.setfp %r, %r\\n\"", ",", "HARD_FRAME_POINTER_REGNUM", ",", "reg", ")", ";", "}", "else", "abort", "(", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "e1", ")", "==", "REG", "&&", "REGNO", "(", "e1", ")", "==", "SP_REGNUM", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.movsp %r\\n\"", ",", "REGNO", "(", "e0", ")", ")", ";", "}", "else", "abort", "(", ")", ";", "break", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "unwind", "directives", "for", "a", "SET", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "0", "0", "0", "\"\\t.save \"", "\"{d%d}\\n\"", "2", "\"{%r}\\n\"", "0", "0", "1", "\"\\t.pad #%wd\\n\"", "1", "0", "1", "0", "1", "\"\\t.setfp %r, %r, #%wd\\n\"", "1", "\"\\t.setfp %r, %r\\n\"", "\"\\t.movsp %r\\n\""], "File": "arm3", "Func": "arm_unwind_emit_set", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44546, "Length": 415}
{"ground_truth": ["", "static", "void", "arm_unwind_emit_stm", "(", "FILE", "*", "asm_out_file", ",", "rtx", "p", ")", "{", "int", "i", ";", "HOST_WIDE_INT", "offset", ";", "HOST_WIDE_INT", "nregs", ";", "int", "reg_size", ";", "unsigned", "reg", ";", "unsigned", "lastreg", ";", "rtx", "e", ";", "e", "=", "XVECEXP", "(", "p", ",", "0", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "e", ")", "!=", "SET", "||", "GET_CODE", "(", "XEXP", "(", "e", ",", "0", ")", ")", "!=", "REG", "||", "REGNO", "(", "XEXP", "(", "e", ",", "0", ")", ")", "!=", "SP_REGNUM", "||", "GET_CODE", "(", "XEXP", "(", "e", ",", "1", ")", ")", "!=", "PLUS", ")", "abort", "(", ")", ";", "offset", "=", "-", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "e", ",", "1", ")", ",", "1", ")", ")", ";", "nregs", "=", "XVECLEN", "(", "p", ",", "0", ")", "-", "1", ";", "reg", "=", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "p", ",", "0", ",", "1", ")", ",", "1", ")", ")", ";", "if", "(", "reg", "<", "16", ")", "{", "if", "(", "nregs", "*", "4", "==", "offset", "-", "4", ")", "{", "fprintf", "(", "asm_out_file", ",", "\"\\t.pad #4\\n\"", ")", ";", "offset", "-=", "4", ";", "}", "reg_size", "=", "4", ";", "}", "else", "if", "(", "IS_VFP_REGNUM", "(", "reg", ")", ")", "{", "offset", "-=", "4", ";", "reg_size", "=", "8", ";", "}", "else", "if", "(", "reg", ">=", "FIRST_FPA_REGNUM", "&&", "reg", "<=", "LAST_FPA_REGNUM", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.save %r, %wd\\n\"", ",", "reg", ",", "nregs", ")", ";", "return", ";", "}", "else", "abort", "(", ")", ";", "if", "(", "offset", "!=", "nregs", "*", "reg_size", ")", "abort", "(", ")", ";", "fprintf", "(", "asm_out_file", ",", "\"\\t.save {\"", ")", ";", "offset", "=", "0", ";", "lastreg", "=", "0", ";", "for", "(", "i", "=", "1", ";", "i", "<=", "nregs", ";", "i", "++", ")", "{", "e", "=", "XVECEXP", "(", "p", ",", "0", ",", "i", ")", ";", "if", "(", "GET_CODE", "(", "e", ")", "!=", "SET", "||", "GET_CODE", "(", "XEXP", "(", "e", ",", "0", ")", ")", "!=", "MEM", "||", "GET_CODE", "(", "XEXP", "(", "e", ",", "1", ")", ")", "!=", "REG", ")", "abort", "(", ")", ";", "reg", "=", "REGNO", "(", "XEXP", "(", "e", ",", "1", ")", ")", ";", "if", "(", "reg", "<", "lastreg", ")", "abort", "(", ")", ";", "if", "(", "i", "!=", "1", ")", "fprintf", "(", "asm_out_file", ",", "\", \"", ")", ";", "if", "(", "IS_VFP_REGNUM", "(", "reg", ")", ")", "asm_fprintf", "(", "asm_out_file", ",", "\"d%d\"", ",", "(", "reg", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ")", ";", "else", "asm_fprintf", "(", "asm_out_file", ",", "\"%r\"", ",", "reg", ")", ";", "e", "=", "XEXP", "(", "XEXP", "(", "e", ",", "0", ")", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "e", ")", "==", "PLUS", ")", "{", "offset", "+=", "reg_size", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "e", ",", "0", ")", ")", "!=", "REG", "||", "REGNO", "(", "XEXP", "(", "e", ",", "0", ")", ")", "!=", "SP_REGNUM", "||", "GET_CODE", "(", "XEXP", "(", "e", ",", "1", ")", ")", "!=", "CONST_INT", "||", "offset", "!=", "INTVAL", "(", "XEXP", "(", "e", ",", "1", ")", ")", ")", "abort", "(", ")", ";", "}", "else", "if", "(", "i", "!=", "1", "||", "GET_CODE", "(", "e", ")", "!=", "REG", "||", "REGNO", "(", "e", ")", "!=", "SP_REGNUM", ")", "abort", "(", ")", ";", "}", "fprintf", "(", "asm_out_file", ",", "\"}\\n\"", ")", ";", "}", ""], "natrual_language": ["Emit", "unwind", "directives", "for", "a", "store-multiple", "instruction", ".", "This", "should", "only", "ever", "be", "generated", "by", "the", "function", "prologue", "code", ",", "so", "we", "expect", "it", "to", "have", "a", "particular", "form", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1", "1", "1", "0", "1", "0", "1", "1", "16", "4", "4", "\"\\t.pad #4\\n\"", "4", "4", "4", "8", "\"\\t.save %r, %wd\\n\"", "\"\\t.save {\"", "0", "0", "1", "0", "0", "1", "1", "1", "\", \"", "\"d%d\"", "2", "\"%r\"", "0", "0", "0", "0", "1", "1", "1", "\"}\\n\""], "File": "arm3", "Func": "arm_unwind_emit_stm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44547, "Length": 498}
{"ground_truth": ["", "bool", "arm_vector_mode_supported_p", "(", "enum", "machine_mode", "mode", ")", "{", "if", "(", "(", "mode", "==", "V2SImode", ")", "||", "(", "mode", "==", "V4HImode", ")", "||", "(", "mode", "==", "V8QImode", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "vector_mode_supported_p", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "arm_vector_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44548, "Length": 35}
{"ground_truth": ["", "static", "bool", "arm_xscale_rtx_costs", "(", "rtx", "x", ",", "int", "code", ",", "int", "outer_code", ",", "int", "*", "total", ")", "{", "enum", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "*", "total", "=", "thumb_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "mode", "==", "DImode", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "ZERO_EXTEND", "||", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "SIGN_EXTEND", ")", ")", "{", "*", "total", "=", "8", ";", "return", "true", ";", "}", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "mode", "==", "DImode", ")", "{", "*", "total", "=", "30", ";", "return", "true", ";", "}", "if", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "CONST_INT", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ";", "int", "cost", ",", "const_ok", "=", "const_ok_for_arm", "(", "i", ")", ";", "unsigned", "HOST_WIDE_INT", "masked_const", ";", "cost", "=", "2", ";", "if", "(", "!", "const_ok", ")", "cost", "+=", "1", ";", "masked_const", "=", "i", "&", "0xffff8000", ";", "if", "(", "masked_const", "!=", "0", "&&", "masked_const", "!=", "0xffff8000", ")", "{", "masked_const", "=", "i", "&", "0xf8000000", ";", "if", "(", "masked_const", "==", "0", "||", "masked_const", "==", "0xf8000000", ")", "cost", "+=", "1", ";", "else", "cost", "+=", "2", ";", "}", "*", "total", "=", "cost", ";", "return", "true", ";", "}", "*", "total", "=", "8", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "0", ")", ")", "?", "0", ":", "4", ")", "+", "(", "REG_OR_SUBREG_REG", "(", "XEXP", "(", "x", ",", "1", ")", ")", "?", "0", ":", "4", ")", ";", "return", "true", ";", "case", "COMPARE", ":", "if", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "MULT", ")", "*", "total", "=", "4", "+", "rtx_cost", "(", "XEXP", "(", "x", ",", "0", ")", ",", "code", ")", ";", "else", "*", "total", "=", "arm_rtx_costs_1", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "default", ":", "*", "total", "=", "arm_rtx_costs_1", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "}", ""], "natrual_language": ["RTX", "cost", "for", "XScale", "CPUs", ".", "Thumb-2", "is", "not", "supported", "on", "any", "xscale", "cores", ",", "so", "it", "can", "be", "ignored", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "8", "30", "1", "1", "0xffffffff", "2", "1", "0xffff8000", "0", "0xffff8000", "0xf8000000", "0", "0xf8000000", "1", "2", "8", "0", "0", "4", "1", "0", "4", "0", "4", "0"], "File": "arm3", "Func": "arm_xscale_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44549, "Length": 368}
{"ground_truth": ["", "int", "cirrus_memory_offset", "(", "rtx", "op", ")", "{", "if", "(", "!", "(", "reload_in_progress", "||", "reload_completed", ")", "&&", "(", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "arg_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_incoming_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_outgoing_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_dynamic_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_vars_rtx", ",", "op", ")", ")", ")", "return", "0", ";", "if", "(", "GET_CODE", "(", "op", ")", "==", "MEM", ")", "{", "rtx", "ind", ";", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "ind", ")", "==", "REG", ")", "return", "1", ";", "if", "(", "GET_CODE", "(", "ind", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "REG", "&&", "REG_MODE_OK_FOR_BASE_P", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "VOIDmode", ")", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "==", "CONST_INT", ")", "return", "1", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "OP", "is", "a", "valid", "Cirrus", "memory", "address", "pattern", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "0", "1", "1", "0"], "File": "arm3", "Func": "cirrus_memory_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44550, "Length": 150}
{"ground_truth": ["", "static", "void", "cirrus_reorg", "(", "rtx", "first", ")", "{", "enum", "attr_cirrus", "attr", ";", "rtx", "body", "=", "PATTERN", "(", "first", ")", ";", "rtx", "t", ";", "int", "nops", ";", "if", "(", "GET_CODE", "(", "first", ")", "==", "JUMP_INSN", "&&", "GET_CODE", "(", "body", ")", "!=", "RETURN", ")", "{", "nops", "=", "0", ";", "t", "=", "next_nonnote_insn", "(", "first", ")", ";", "if", "(", "arm_cirrus_insn_p", "(", "t", ")", ")", "++", "nops", ";", "if", "(", "arm_cirrus_insn_p", "(", "next_nonnote_insn", "(", "t", ")", ")", ")", "++", "nops", ";", "while", "(", "nops", "--", ")", "emit_insn_after", "(", "gen_nop", "(", ")", ",", "first", ")", ";", "return", ";", "}", "if", "(", "GET_CODE", "(", "body", ")", "==", "PARALLEL", "&&", "XVECLEN", "(", "body", ",", "0", ")", ">", "0", ")", "body", "=", "XVECEXP", "(", "body", ",", "0", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "body", ")", "==", "SET", ")", "{", "rtx", "lhs", "=", "XEXP", "(", "body", ",", "0", ")", ",", "rhs", "=", "XEXP", "(", "body", ",", "1", ")", ";", "if", "(", "get_attr_cirrus", "(", "first", ")", "==", "CIRRUS_DOUBLE", ")", "{", "if", "(", "arm_cirrus_insn_p", "(", "next_nonnote_insn", "(", "first", ")", ")", ")", "emit_insn_after", "(", "gen_nop", "(", ")", ",", "first", ")", ";", "return", ";", "}", "else", "if", "(", "arm_memory_load_p", "(", "first", ")", ")", "{", "unsigned", "int", "arm_regno", ";", "if", "(", "GET_CODE", "(", "lhs", ")", "==", "REG", ")", "arm_regno", "=", "REGNO", "(", "lhs", ")", ";", "else", "{", "gcc_assert", "(", "GET_CODE", "(", "rhs", ")", "==", "REG", ")", ";", "arm_regno", "=", "REGNO", "(", "rhs", ")", ";", "}", "first", "=", "next_nonnote_insn", "(", "first", ")", ";", "if", "(", "!", "arm_cirrus_insn_p", "(", "first", ")", ")", "return", ";", "body", "=", "PATTERN", "(", "first", ")", ";", "if", "(", "GET_CODE", "(", "body", ")", "==", "PARALLEL", "&&", "XVECLEN", "(", "body", ",", "0", ")", ")", "body", "=", "XVECEXP", "(", "body", ",", "0", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "body", ")", "==", "FLOAT", ")", "body", "=", "XEXP", "(", "body", ",", "0", ")", ";", "if", "(", "get_attr_cirrus", "(", "first", ")", "==", "CIRRUS_MOVE", "&&", "GET_CODE", "(", "XEXP", "(", "body", ",", "1", ")", ")", "==", "REG", "&&", "arm_regno", "==", "REGNO", "(", "XEXP", "(", "body", ",", "1", ")", ")", ")", "emit_insn_after", "(", "gen_nop", "(", ")", ",", "first", ")", ";", "return", ";", "}", "}", "if", "(", "!", "first", "||", "GET_CODE", "(", "first", ")", "!=", "INSN", "||", "GET_CODE", "(", "PATTERN", "(", "first", ")", ")", "==", "USE", "||", "GET_CODE", "(", "PATTERN", "(", "first", ")", ")", "==", "CLOBBER", ")", "return", ";", "attr", "=", "get_attr_cirrus", "(", "first", ")", ";", "if", "(", "attr", "==", "CIRRUS_COMPARE", ")", "{", "nops", "=", "0", ";", "t", "=", "next_nonnote_insn", "(", "first", ")", ";", "if", "(", "arm_cirrus_insn_p", "(", "t", ")", ")", "++", "nops", ";", "if", "(", "arm_cirrus_insn_p", "(", "next_nonnote_insn", "(", "t", ")", ")", ")", "++", "nops", ";", "while", "(", "nops", "--", ")", "emit_insn_after", "(", "gen_nop", "(", ")", ",", "first", ")", ";", "return", ";", "}", "}", ""], "natrual_language": ["Cirrus", "reorg", "for", "invalid", "instruction", "combinations", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "1", "1", "0"], "File": "arm3", "Func": "cirrus_reorg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44551, "Length": 448}
{"ground_truth": ["", "int", "const_ok_for_arm", "(", "HOST_WIDE_INT", "i", ")", "{", "int", "lowbit", ";", "if", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", "!=", "0", "&&", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", "!=", "(", "(", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0", ")", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ")", ")", "return", "FALSE", ";", "i", "&=", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ";", "if", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xff", ")", "==", "0", ")", "return", "TRUE", ";", "lowbit", "=", "(", "ffs", "(", "(", "int", ")", "i", ")", "-", "1", ")", "&", "~", "1", ";", "if", "(", "(", "i", "&", "~", "(", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "0xff", ")", "<<", "lowbit", ")", ")", "==", "0", ")", "return", "TRUE", ";", "else", "if", "(", "lowbit", "<=", "4", "&&", "(", "(", "i", "&", "~", "0xc000003f", ")", "==", "0", "||", "(", "i", "&", "~", "0xf000000f", ")", "==", "0", "||", "(", "i", "&", "~", "0xfc000003", ")", "==", "0", ")", ")", "return", "TRUE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "int", "I", "is", "a", "valid", "immediate", "ARM", "constant", "."], "TS_V_token": ["arm", "0xffffffff", "0", "0xffffffff", "0", "0xffffffff", "0xffffffff", "0xff", "0", "1", "1", "0xff", "0", "4", "0xc000003f", "0", "0xf000000f", "0", "0xfc000003", "0"], "File": "arm3", "Func": "const_ok_for_arm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44552, "Length": 169}
{"ground_truth": ["", "static", "int", "const_ok_for_op", "(", "HOST_WIDE_INT", "i", ",", "enum", "rtx_code", "code", ")", "{", "if", "(", "const_ok_for_arm", "(", "i", ")", ")", "return", "1", ";", "switch", "(", "code", ")", "{", "case", "PLUS", ":", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "-", "i", ")", ")", ";", "case", "MINUS", ":", "case", "XOR", ":", "case", "IOR", ":", "return", "0", ";", "case", "AND", ":", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "~", "i", ")", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "I", "is", "a", "valid", "constant", "for", "the", "operation", "CODE", "."], "TS_V_token": ["arm", "1", "0"], "File": "arm3", "Func": "const_ok_for_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44553, "Length": 73}
{"ground_truth": ["", "static", "Mfix", "*", "create_fix_barrier", "(", "Mfix", "*", "fix", ",", "HOST_WIDE_INT", "max_address", ")", "{", "HOST_WIDE_INT", "count", "=", "0", ";", "rtx", "barrier", ";", "rtx", "from", "=", "fix", "->", "insn", ";", "rtx", "selected", "=", "from", ";", "int", "selected_cost", ";", "HOST_WIDE_INT", "selected_address", ";", "Mfix", "*", "new_fix", ";", "HOST_WIDE_INT", "max_count", "=", "max_address", "-", "fix", "->", "address", ";", "rtx", "label", "=", "gen_label_rtx", "(", ")", ";", "selected_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "selected_address", "=", "fix", "->", "address", ";", "while", "(", "from", "&&", "count", "<", "max_count", ")", "{", "rtx", "tmp", ";", "int", "new_cost", ";", "gcc_assert", "(", "GET_CODE", "(", "from", ")", "!=", "BARRIER", ")", ";", "count", "+=", "get_attr_length", "(", "from", ")", ";", "tmp", "=", "is_jump_table", "(", "from", ")", ";", "if", "(", "tmp", "!=", "NULL", ")", "{", "count", "+=", "get_jump_table_size", "(", "tmp", ")", ";", "new_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "if", "(", "count", "<", "max_count", "&&", "new_cost", "<=", "selected_cost", ")", "{", "selected", "=", "tmp", ";", "selected_cost", "=", "new_cost", ";", "selected_address", "=", "fix", "->", "address", "+", "count", ";", "}", "from", "=", "NEXT_INSN", "(", "tmp", ")", ";", "continue", ";", "}", "new_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "if", "(", "count", "<", "max_count", "&&", "new_cost", "<=", "selected_cost", ")", "{", "selected", "=", "from", ";", "selected_cost", "=", "new_cost", ";", "selected_address", "=", "fix", "->", "address", "+", "count", ";", "}", "from", "=", "NEXT_INSN", "(", "from", ")", ";", "}", "from", "=", "emit_jump_insn_after", "(", "gen_jump", "(", "label", ")", ",", "selected", ")", ";", "JUMP_LABEL", "(", "from", ")", "=", "label", ";", "barrier", "=", "emit_barrier_after", "(", "from", ")", ";", "emit_label_after", "(", "label", ",", "barrier", ")", ";", "new_fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "new_fix", ")", ")", ";", "new_fix", "->", "insn", "=", "barrier", ";", "new_fix", "->", "address", "=", "selected_address", ";", "new_fix", "->", "next", "=", "fix", "->", "next", ";", "fix", "->", "next", "=", "new_fix", ";", "return", "new_fix", ";", "}", ""], "natrual_language": ["Find", "the", "best", "place", "in", "the", "insn", "stream", "in", "the", "range", "(", "FIX-", ">", "address", ",", "MAX_ADDRESS", ")", "to", "forcibly", "insert", "a", "minipool", "barrier", ".", "Create", "the", "barrier", "by", "inserting", "a", "jump", "and", "add", "a", "new", "fix", "entry", "for", "it", "."], "TS_V_token": ["arm", "0"], "File": "arm3", "Func": "create_fix_barrier", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44554, "Length": 294}
{"ground_truth": ["", "static", "int", "current_file_function_operand", "(", "rtx", "sym_ref", ")", "{", "if", "(", "ENCODED_SHORT_CALL_ATTR_P", "(", "XSTR", "(", "sym_ref", ",", "0", ")", ")", ")", "return", "1", ";", "if", "(", "sym_ref", "==", "XEXP", "(", "DECL_RTL", "(", "current_function_decl", ")", ",", "0", ")", "&&", "!", "DECL_WEAK", "(", "current_function_decl", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "1", "if", "the", "operand", "is", "a", "SYMBOL_REF", "for", "a", "function", "known", "to", "be", "in", "this", "file", "and", "the", "function", "is", "not", "weakly", "defined", "."], "TS_V_token": ["arm", "0", "1", "0", "1", "0"], "File": "arm3", "Func": "current_file_function_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44555, "Length": 50}
{"ground_truth": ["", "static", "void", "dump_minipool", "(", "rtx", "scan", ")", "{", "Mnode", "*", "mp", ";", "Mnode", "*", "nmp", ";", "int", "align64", "=", "0", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", ")", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "mp", "->", "next", ")", "if", "(", "mp", "->", "refcount", ">", "0", "&&", "mp", "->", "fix_size", "==", "8", ")", "{", "align64", "=", "1", ";", "break", ";", "}", "if", "(", "dump_file", ")", "fprintf", "(", "dump_file", ",", "\";; Emitting minipool after insn %u; address %ld; align %d (bytes)\\n\"", ",", "INSN_UID", "(", "scan", ")", ",", "(", "unsigned", "long", ")", "minipool_barrier", "->", "address", ",", "align64", "?", "8", ":", "4", ")", ";", "scan", "=", "emit_label_after", "(", "gen_label_rtx", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_insn_after", "(", "align64", "?", "gen_align_8", "(", ")", ":", "gen_align_4", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_label_after", "(", "minipool_vector_label", ",", "scan", ")", ";", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "nmp", ")", "{", "if", "(", "mp", "->", "refcount", ">", "0", ")", "{", "if", "(", "dump_file", ")", "{", "fprintf", "(", "dump_file", ",", "\";; Offset %u, min %ld, max %ld \"", ",", "(", "unsigned", ")", "mp", "->", "offset", ",", "(", "unsigned", "long", ")", "mp", "->", "min_address", ",", "(", "unsigned", "long", ")", "mp", "->", "max_address", ")", ";", "arm_print_value", "(", "dump_file", ",", "mp", "->", "value", ")", ";", "fputc", "(", "'\\n'", ",", "dump_file", ")", ";", "}", "switch", "(", "mp", "->", "fix_size", ")", "{", "case", "1", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_1", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "case", "2", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_2", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "case", "4", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_4", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "case", "8", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_8", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "nmp", "=", "mp", "->", "next", ";", "free", "(", "mp", ")", ";", "}", "minipool_vector_head", "=", "minipool_vector_tail", "=", "NULL", ";", "scan", "=", "emit_insn_after", "(", "gen_consttable_end", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_barrier_after", "(", "scan", ")", ";", "}", ""], "natrual_language": ["Output", "the", "literal", "table"], "TS_V_token": ["arm", "0", "0", "8", "1", "\";; Emitting minipool after insn %u; address %ld; align %d (bytes)\\n\"", "8", "4", "0", "\";; Offset %u, min %ld, max %ld \"", "1", "2", "4", "8"], "File": "arm3", "Func": "dump_minipool", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44556, "Length": 334}
{"ground_truth": ["", "static", "rtx", "emit_multi_reg_push", "(", "unsigned", "long", "mask", ")", "{", "int", "num_regs", "=", "0", ";", "int", "num_dwarf_regs", ";", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", ";", "int", "dwarf_par_index", ";", "rtx", "tmp", ",", "reg", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "16", ")", ";", "num_dwarf_regs", "=", "num_regs", ";", "if", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", "num_dwarf_regs", "--", ";", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", ")", ")", ";", "dwarf", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_dwarf_regs", "+", "1", ")", ")", ";", "dwarf_par_index", "=", "1", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "BLKmode", ",", "gen_rtx_PRE_DEC", "(", "BLKmode", ",", "stack_pointer_rtx", ")", ")", ",", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ")", ";", "if", "(", "i", "!=", "PC_REGNUM", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "SImode", ",", "stack_pointer_rtx", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", ")", "=", "tmp", ";", "dwarf_par_index", "++", ";", "}", "break", ";", "}", "}", "for", "(", "j", "=", "1", ",", "i", "++", ";", "j", "<", "num_regs", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", ")", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "if", "(", "i", "!=", "PC_REGNUM", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "stack_pointer_rtx", ",", "4", "*", "j", ")", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", "++", ")", "=", "tmp", ";", "}", "j", "++", ";", "}", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "SImode", ",", "stack_pointer_rtx", ",", "gen_rtx_PLUS", "(", "SImode", ",", "stack_pointer_rtx", ",", "GEN_INT", "(", "-", "4", "*", "num_regs", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "0", ")", "=", "tmp", ";", "REG_NOTES", "(", "par", ")", "=", "gen_rtx_EXPR_LIST", "(", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ",", "REG_NOTES", "(", "par", ")", ")", ";", "return", "par", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "that", "we", "will", "recognize", "as", "a", "push_multi", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "0", "0", "1", "16", "1", "1", "1", "0", "1", "0", "0", "1", "1", "0", "1", "1", "0", "4", "1", "0", "4", "1", "0", "0"], "File": "arm3", "Func": "emit_multi_reg_push", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44557, "Length": 419}
{"ground_truth": ["", "static", "const", "char", "*", "fp_const_from_val", "(", "REAL_VALUE_TYPE", "*", "r", ")", "{", "int", "i", ";", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "8", ";", "i", "++", ")", "if", "(", "REAL_VALUES_EQUAL", "(", "*", "r", ",", "values_fp", "[", "i", "]", ")", ")", "return", "strings_fp", "[", "i", "]", ";", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["As", "for", "fp_immediate_constant", ",", "but", "value", "is", "passed", "directly", ",", "not", "in", "rtx", "."], "TS_V_token": ["arm", "0", "8"], "File": "arm3", "Func": "fp_const_from_val", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44558, "Length": 60}
{"ground_truth": ["", "const", "char", "*", "fp_immediate_constant", "(", "rtx", "x", ")", "{", "REAL_VALUE_TYPE", "r", ";", "int", "i", ";", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "r", ",", "x", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "8", ";", "i", "++", ")", "if", "(", "REAL_VALUES_EQUAL", "(", "r", ",", "values_fp", "[", "i", "]", ")", ")", "return", "strings_fp", "[", "i", "]", ";", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["If", "the", "rtx", "is", "the", "correct", "value", "then", "return", "the", "string", "of", "the", "number", ".", "In", "this", "way", "we", "can", "ensure", "that", "valid", "double", "constants", "are", "generated", "even", "when", "cross", "compiling", "."], "TS_V_token": ["arm", "0", "8"], "File": "arm3", "Func": "fp_immediate_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44559, "Length": 67}
{"ground_truth": ["", "static", "HOST_WIDE_INT", "int_log2", "(", "HOST_WIDE_INT", "power", ")", "{", "HOST_WIDE_INT", "shift", "=", "0", ";", "while", "(", "(", "(", "(", "HOST_WIDE_INT", ")", "1", "<<", "shift", ")", "&", "power", ")", "==", "0", ")", "{", "gcc_assert", "(", "shift", "<=", "31", ")", ";", "shift", "++", ";", "}", "return", "shift", ";", "}", ""], "natrual_language": ["Obtain", "the", "shift", "from", "the", "POWER", "of", "two", "."], "TS_V_token": ["arm", "0", "1", "0", "31"], "File": "arm3", "Func": "int_log2", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44560, "Length": 46}
{"ground_truth": ["", "int", "is_called_in_ARM_mode", "(", "tree", "func", ")", "{", "gcc_assert", "(", "TREE_CODE", "(", "func", ")", "==", "FUNCTION_DECL", ")", ";", "if", "(", "TARGET_CALLEE_INTERWORKING", "&&", "TREE_PUBLIC", "(", "func", ")", ")", "return", "TRUE", ";", "return", "lookup_attribute", "(", "\"interfacearm\"", ",", "DECL_ATTRIBUTES", "(", "func", ")", ")", "!=", "NULL_TREE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "FUNC", "must", "be", "entered", "in", "ARM", "mode", "."], "TS_V_token": ["arm", "\"interfacearm\""], "File": "arm3", "Func": "is_called_in_ARM_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44561, "Length": 46}
{"ground_truth": ["", "static", "rtx", "is_jump_table", "(", "rtx", "insn", ")", "{", "rtx", "table", ";", "if", "(", "GET_CODE", "(", "insn", ")", "==", "JUMP_INSN", "&&", "JUMP_LABEL", "(", "insn", ")", "!=", "NULL", "&&", "(", "(", "table", "=", "next_real_insn", "(", "JUMP_LABEL", "(", "insn", ")", ")", ")", "==", "next_real_insn", "(", "insn", ")", ")", "&&", "table", "!=", "NULL", "&&", "GET_CODE", "(", "table", ")", "==", "JUMP_INSN", "&&", "(", "GET_CODE", "(", "PATTERN", "(", "table", ")", ")", "==", "ADDR_VEC", "||", "GET_CODE", "(", "PATTERN", "(", "table", ")", ")", "==", "ADDR_DIFF_VEC", ")", ")", "return", "table", ";", "return", "NULL_RTX", ";", "}", ""], "natrual_language": ["Determines", "if", "INSN", "is", "the", "start", "of", "a", "jump", "table", ".", "Returns", "the", "end", "of", "the", "TABLE", "or", "NULL_RTX", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "is_jump_table", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44562, "Length": 86}
{"ground_truth": ["", "int", "legitimate_pic_operand_p", "(", "rtx", "x", ")", "{", "if", "(", "CONSTANT_P", "(", "x", ")", "&&", "flag_pic", "&&", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "||", "(", "GET_CODE", "(", "x", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "SYMBOL_REF", ")", ")", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "OP", "is", "a", "legitimate", "general", "operand", "when", "generating", "PIC", "code", ".", "It", "is", "given", "that", "flag_pic", "is", "on", "and", "that", "OP", "satisfies", "CONSTANT_P", "or", "is", "a", "CONST_DOUBLE", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1"], "File": "arm3", "Func": "legitimate_pic_operand_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44563, "Length": 70}
{"ground_truth": ["", "rtx", "legitimize_pic_address", "(", "rtx", "orig", ",", "enum", "machine_mode", "mode", ",", "rtx", "reg", ")", "{", "if", "(", "GET_CODE", "(", "orig", ")", "==", "SYMBOL_REF", "||", "GET_CODE", "(", "orig", ")", "==", "LABEL_REF", ")", "{", "rtx", "pic_ref", ",", "address", ";", "rtx", "insn", ";", "int", "subregs", "=", "0", ";", "if", "(", "reg", "==", "0", ")", "{", "gcc_assert", "(", "!", "no_new_pseudos", ")", ";", "reg", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "subregs", "=", "1", ";", "}", "insn", "=", "emit_insn", "(", "gen_pic_load_addr_based", "(", "reg", ",", "orig", ")", ")", ";", "if", "(", "subregs", ")", "address", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "else", "address", "=", "reg", ";", "if", "(", "TARGET_ARM", ")", "emit_insn", "(", "gen_pic_load_addr_arm", "(", "address", ",", "orig", ")", ")", ";", "else", "emit_insn", "(", "gen_pic_load_addr_thumb", "(", "address", ",", "orig", ")", ")", ";", "if", "(", "(", "GET_CODE", "(", "orig", ")", "==", "LABEL_REF", "||", "(", "GET_CODE", "(", "orig", ")", "==", "SYMBOL_REF", "&&", "SYMBOL_REF_LOCAL_P", "(", "orig", ")", ")", ")", "&&", "NEED_GOT_RELOC", ")", "pic_ref", "=", "gen_rtx_PLUS", "(", "Pmode", ",", "pic_offset_table_rtx", ",", "address", ")", ";", "else", "{", "pic_ref", "=", "gen_const_mem", "(", "Pmode", ",", "gen_rtx_PLUS", "(", "Pmode", ",", "pic_offset_table_rtx", ",", "address", ")", ")", ";", "}", "insn", "=", "emit_move_insn", "(", "reg", ",", "pic_ref", ")", ";", "current_function_uses_pic_offset_table", "=", "1", ";", "REG_NOTES", "(", "insn", ")", "=", "gen_rtx_EXPR_LIST", "(", "REG_EQUAL", ",", "orig", ",", "REG_NOTES", "(", "insn", ")", ")", ";", "return", "reg", ";", "}", "else", "if", "(", "GET_CODE", "(", "orig", ")", "==", "CONST", ")", "{", "rtx", "base", ",", "offset", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "orig", ",", "0", ")", ")", "==", "PLUS", "&&", "XEXP", "(", "XEXP", "(", "orig", ",", "0", ")", ",", "0", ")", "==", "pic_offset_table_rtx", ")", "return", "orig", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "orig", ",", "0", ")", ")", "==", "UNSPEC", "&&", "XINT", "(", "XEXP", "(", "orig", ",", "0", ")", ",", "1", ")", "==", "UNSPEC_TLS", ")", "return", "orig", ";", "if", "(", "reg", "==", "0", ")", "{", "gcc_assert", "(", "!", "no_new_pseudos", ")", ";", "reg", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "}", "gcc_assert", "(", "GET_CODE", "(", "XEXP", "(", "orig", ",", "0", ")", ")", "==", "PLUS", ")", ";", "base", "=", "legitimize_pic_address", "(", "XEXP", "(", "XEXP", "(", "orig", ",", "0", ")", ",", "0", ")", ",", "Pmode", ",", "reg", ")", ";", "offset", "=", "legitimize_pic_address", "(", "XEXP", "(", "XEXP", "(", "orig", ",", "0", ")", ",", "1", ")", ",", "Pmode", ",", "base", "==", "reg", "?", "0", ":", "reg", ")", ";", "if", "(", "GET_CODE", "(", "offset", ")", "==", "CONST_INT", ")", "{", "if", "(", "!", "arm_legitimate_index_p", "(", "mode", ",", "offset", ",", "SET", ",", "0", ")", ")", "{", "gcc_assert", "(", "!", "no_new_pseudos", ")", ";", "offset", "=", "force_reg", "(", "Pmode", ",", "offset", ")", ";", "}", "if", "(", "GET_CODE", "(", "offset", ")", "==", "CONST_INT", ")", "return", "plus_constant", "(", "base", ",", "INTVAL", "(", "offset", ")", ")", ";", "}", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", ">", "4", "&&", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", "||", "TARGET_SOFT_FLOAT", ")", ")", "{", "emit_insn", "(", "gen_addsi3", "(", "reg", ",", "base", ",", "offset", ")", ")", ";", "return", "reg", ";", "}", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "base", ",", "offset", ")", ";", "}", "return", "orig", ";", "}", ""], "natrual_language": ["Legitimize", "PIC", "addresses", ".", "If", "the", "address", "is", "already", "position-independent", ",", "we", "return", "ORIG", ".", "Newly", "generated", "position-independent", "addresses", "go", "into", "a", "reg", ".", "This", "is", "REG", "if", "nonzero", ",", "otherwise", "we", "allocate", "register", "(", "s", ")", "as", "necessary", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "1", "0", "0", "4"], "File": "arm3", "Func": "legitimize_pic_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44564, "Length": 489}
{"ground_truth": ["", "rtx", "legitimize_tls_address", "(", "rtx", "x", ",", "rtx", "reg", ")", "{", "rtx", "dest", ",", "tp", ",", "label", ",", "labelno", ",", "sum", ",", "insns", ",", "ret", ",", "eqv", ",", "addend", ";", "unsigned", "int", "model", "=", "SYMBOL_REF_TLS_MODEL", "(", "x", ")", ";", "switch", "(", "model", ")", "{", "case", "TLS_MODEL_GLOBAL_DYNAMIC", ":", "insns", "=", "arm_call_tls_get_addr", "(", "x", ",", "reg", ",", "&", "ret", ",", "TLS_GD32", ")", ";", "dest", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "emit_libcall_block", "(", "insns", ",", "dest", ",", "ret", ",", "x", ")", ";", "return", "dest", ";", "case", "TLS_MODEL_LOCAL_DYNAMIC", ":", "insns", "=", "arm_call_tls_get_addr", "(", "x", ",", "reg", ",", "&", "ret", ",", "TLS_LDM32", ")", ";", "eqv", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "const1_rtx", ")", ",", "UNSPEC_TLS", ")", ";", "dest", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "emit_libcall_block", "(", "insns", ",", "dest", ",", "ret", ",", "eqv", ")", ";", "addend", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "GEN_INT", "(", "TLS_LDO32", ")", ")", ",", "UNSPEC_TLS", ")", ";", "addend", "=", "force_reg", "(", "SImode", ",", "gen_rtx_CONST", "(", "SImode", ",", "addend", ")", ")", ";", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "dest", ",", "addend", ")", ";", "case", "TLS_MODEL_INITIAL_EXEC", ":", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "label", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "label", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "label", ")", ";", "sum", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "4", ",", "x", ",", "GEN_INT", "(", "TLS_IE32", ")", ",", "label", ",", "GEN_INT", "(", "TARGET_ARM", "?", "8", ":", "4", ")", ")", ",", "UNSPEC_TLS", ")", ";", "reg", "=", "load_tls_operand", "(", "sum", ",", "reg", ")", ";", "if", "(", "TARGET_ARM", ")", "emit_insn", "(", "gen_tls_load_dot_plus_eight", "(", "reg", ",", "reg", ",", "labelno", ")", ")", ";", "else", "{", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "reg", ",", "reg", ",", "labelno", ")", ")", ";", "emit_move_insn", "(", "reg", ",", "gen_const_mem", "(", "SImode", ",", "reg", ")", ")", ";", "}", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "case", "TLS_MODEL_LOCAL_EXEC", ":", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "reg", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "GEN_INT", "(", "TLS_LE32", ")", ")", ",", "UNSPEC_TLS", ")", ";", "reg", "=", "force_reg", "(", "SImode", ",", "gen_rtx_CONST", "(", "SImode", ",", "reg", ")", ")", ";", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["ADDR", "contains", "a", "thread-local", "SYMBOL_REF", ".", "Generate", "code", "to", "compute", "this", "(", "thread-local", ")", "address", "."], "TS_V_token": ["arm", "1", "2", "1", "4", "8", "4", "2"], "File": "arm3", "Func": "legitimize_tls_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44565, "Length": 377}
{"ground_truth": ["", "int", "neg_const_double_rtx_ok_for_fpa", "(", "rtx", "x", ")", "{", "REAL_VALUE_TYPE", "r", ";", "int", "i", ";", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "r", ",", "x", ")", ";", "r", "=", "REAL_VALUE_NEGATE", "(", "r", ")", ";", "if", "(", "REAL_VALUE_MINUS_ZERO", "(", "r", ")", ")", "return", "0", ";", "for", "(", "i", "=", "0", ";", "i", "<", "8", ";", "i", "++", ")", "if", "(", "REAL_VALUES_EQUAL", "(", "r", ",", "values_fp", "[", "i", "]", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "a", "valid", "immediate", "FPA", "constant", "."], "TS_V_token": ["arm", "0", "0", "8", "1", "0"], "File": "arm3", "Func": "neg_const_double_rtx_ok_for_fpa", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44566, "Length": 78}
{"ground_truth": ["", "static", "bool", "note_invalid_constants", "(", "rtx", "insn", ",", "HOST_WIDE_INT", "address", ",", "int", "do_pushes", ")", "{", "bool", "result", "=", "false", ";", "int", "opno", ";", "extract_insn", "(", "insn", ")", ";", "if", "(", "!", "constrain_operands", "(", "1", ")", ")", "fatal_insn_not_found", "(", "insn", ")", ";", "if", "(", "recog_data", ".", "n_alternatives", "==", "0", ")", "return", "false", ";", "preprocess_constraints", "(", ")", ";", "for", "(", "opno", "=", "0", ";", "opno", "<", "recog_data", ".", "n_operands", ";", "opno", "++", ")", "{", "if", "(", "recog_data", ".", "operand_type", "[", "opno", "]", "!=", "OP_IN", ")", "continue", ";", "if", "(", "recog_op_alt", "[", "opno", "]", "[", "which_alternative", "]", ".", "memory_ok", ")", "{", "rtx", "op", "=", "recog_data", ".", "operand", "[", "opno", "]", ";", "if", "(", "CONSTANT_P", "(", "op", ")", ")", "{", "if", "(", "do_pushes", ")", "push_minipool_fix", "(", "insn", ",", "address", ",", "recog_data", ".", "operand_loc", "[", "opno", "]", ",", "recog_data", ".", "operand_mode", "[", "opno", "]", ",", "op", ")", ";", "result", "=", "true", ";", "}", "else", "if", "(", "GET_CODE", "(", "op", ")", "==", "MEM", "&&", "GET_CODE", "(", "XEXP", "(", "op", ",", "0", ")", ")", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", ")", "{", "if", "(", "do_pushes", ")", "{", "rtx", "cop", "=", "avoid_constant_pool_reference", "(", "op", ")", ";", "if", "(", "op", "==", "cop", ")", "cop", "=", "get_pool_constant", "(", "XEXP", "(", "op", ",", "0", ")", ")", ";", "push_minipool_fix", "(", "insn", ",", "address", ",", "recog_data", ".", "operand_loc", "[", "opno", "]", ",", "recog_data", ".", "operand_mode", "[", "opno", "]", ",", "cop", ")", ";", "}", "result", "=", "true", ";", "}", "}", "}", "return", "result", ";", "}", ""], "natrual_language": ["Scan", "INSN", "and", "note", "any", "of", "its", "operands", "that", "need", "fixing", ".", "If", "DO_PUSHES", "is", "false", "we", "do", "not", "actually", "push", "any", "of", "the", "fixups", "needed", ".", "The", "function", "returns", "TRUE", "if", "any", "fixups", "were", "needed/pushed", ".", "This", "is", "used", "by", "arm_memory_load_p", "(", ")", "which", "needs", "to", "know", "about", "loads", "of", "constants", "that", "will", "be", "converted", "into", "minipool", "loads", "."], "TS_V_token": ["arm", "1", "0", "0", "0", "0", "0"], "File": "arm3", "Func": "note_invalid_constants", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44567, "Length": 246}
{"ground_truth": ["", "inline", "static", "int", "number_of_first_bit_set", "(", "unsigned", "mask", ")", "{", "int", "bit", ";", "for", "(", "bit", "=", "0", ";", "(", "mask", "&", "(", "1", "<<", "bit", ")", ")", "==", "0", ";", "++", "bit", ")", "continue", ";", "return", "bit", ";", "}", ""], "natrual_language": ["Return", "the", "number", "(", "counting", "from", "0", ")", "of", "the", "least", "significant", "set", "bit", "in", "MASK", "."], "TS_V_token": ["arm", "0", "1", "0"], "File": "arm3", "Func": "number_of_first_bit_set", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44568, "Length": 39}
{"ground_truth": ["", "const", "char", "*", "output_call", "(", "rtx", "*", "operands", ")", "{", "gcc_assert", "(", "!", "arm_arch5", ")", ";", "if", "(", "REGNO", "(", "operands", "[", "0", "]", ")", "==", "LR_REGNUM", ")", "{", "operands", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "IP_REGNUM", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %|lr\"", ",", "operands", ")", ";", "}", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "if", "(", "TARGET_INTERWORK", "||", "arm_arch4t", ")", "output_asm_insn", "(", "\"bx%?\\t%0\"", ",", "operands", ")", ";", "else", "output_asm_insn", "(", "\"mov%?\\t%|pc, %0\"", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["INSN", "is", "either", "a", "function", "call", "or", "a", "millicode", "call", ".", "It", "may", "have", "an", "unconditional", "jump", "in", "its", "delay", "slot", ".", "CALL_DEST", "is", "the", "routine", "we", "are", "calling", "."], "TS_V_token": ["arm", "0", "0", "\"mov%?\\t%0, %|lr\"", "\"mov%?\\t%|lr, %|pc\"", "\"bx%?\\t%0\"", "\"mov%?\\t%|pc, %0\"", "\"\""], "File": "arm3", "Func": "output_call", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44569, "Length": 81}
{"ground_truth": ["", "const", "char", "*", "output_call_mem", "(", "rtx", "*", "operands", ")", "{", "if", "(", "TARGET_INTERWORK", "&&", "!", "arm_arch5", ")", "{", "output_asm_insn", "(", "\"ldr%?\\t%|ip, %0\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"bx%?\\t%|ip\"", ",", "operands", ")", ";", "}", "else", "if", "(", "regno_use_in", "(", "LR_REGNUM", ",", "operands", "[", "0", "]", ")", ")", "{", "output_asm_insn", "(", "\"ldr%?\\t%|ip, %0\"", ",", "operands", ")", ";", "if", "(", "arm_arch5", ")", "output_asm_insn", "(", "\"blx%?\\t%|ip\"", ",", "operands", ")", ";", "else", "{", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "if", "(", "arm_arch4t", ")", "output_asm_insn", "(", "\"bx%?\\t%|ip\"", ",", "operands", ")", ";", "else", "output_asm_insn", "(", "\"mov%?\\t%|pc, %|ip\"", ",", "operands", ")", ";", "}", "}", "else", "{", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr%?\\t%|pc, %0\"", ",", "operands", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "'call", "'", "insn", "that", "is", "a", "reference", "in", "memory", ".", "This", "is", "disabled", "for", "ARMv5", "and", "we", "prefer", "a", "blx", "instead", "because", "otherwise", "there", "'s", "a", "significant", "performance", "overhead", "."], "TS_V_token": ["arm", "\"ldr%?\\t%|ip, %0\"", "\"mov%?\\t%|lr, %|pc\"", "\"bx%?\\t%|ip\"", "0", "\"ldr%?\\t%|ip, %0\"", "\"blx%?\\t%|ip\"", "\"mov%?\\t%|lr, %|pc\"", "\"bx%?\\t%|ip\"", "\"mov%?\\t%|pc, %|ip\"", "\"mov%?\\t%|lr, %|pc\"", "\"ldr%?\\t%|pc, %0\"", "\"\""], "File": "arm3", "Func": "output_call_mem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44570, "Length": 123}
{"ground_truth": ["", "const", "char", "*", "output_mov_double_arm_from_fpa", "(", "rtx", "*", "operands", ")", "{", "int", "arm_reg0", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "rtx", "ops", "[", "2", "]", ";", "gcc_assert", "(", "arm_reg0", "!=", "IP_REGNUM", ")", ";", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "arm_reg0", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "1", "+", "arm_reg0", ")", ";", "output_asm_insn", "(", "\"stf%?d\\t%1, [%|sp, #-8]!\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldm%?fd\\t%|sp!, {%0, %1}\"", ",", "ops", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "move", "from", "an", "fpa", "register", "to", "arm", "registers", ".", "OPERANDS", "[", "0", "]", "is", "the", "first", "registers", "of", "an", "arm", "register", "pair", ".", "OPERANDS", "[", "1", "]", "is", "an", "fpa", "register", "."], "TS_V_token": ["arm", "0", "2", "0", "1", "1", "\"stf%?d\\t%1, [%|sp, #-8]!\"", "\"ldm%?fd\\t%|sp!, {%0, %1}\"", "\"\""], "File": "arm3", "Func": "output_mov_double_arm_from_fpa", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44571, "Length": 78}
{"ground_truth": ["", "const", "char", "*", "output_mov_double_fpa_from_arm", "(", "rtx", "*", "operands", ")", "{", "int", "arm_reg0", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "rtx", "ops", "[", "2", "]", ";", "gcc_assert", "(", "arm_reg0", "!=", "IP_REGNUM", ")", ";", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "arm_reg0", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "1", "+", "arm_reg0", ")", ";", "output_asm_insn", "(", "\"stm%?fd\\t%|sp!, {%0, %1}\"", ",", "ops", ")", ";", "output_asm_insn", "(", "\"ldf%?d\\t%0, [%|sp], #8\"", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "move", "from", "arm", "registers", "to", "an", "fpa", "registers", ".", "OPERANDS", "[", "0", "]", "is", "an", "fpa", "register", ".", "OPERANDS", "[", "1", "]", "is", "the", "first", "registers", "of", "an", "arm", "register", "pair", "."], "TS_V_token": ["arm", "1", "2", "0", "1", "1", "\"stm%?fd\\t%|sp!, {%0, %1}\"", "\"ldf%?d\\t%0, [%|sp], #8\"", "\"\""], "File": "arm3", "Func": "output_mov_double_fpa_from_arm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44572, "Length": 78}
{"ground_truth": ["", "const", "char", "*", "output_mov_long_double_arm_from_fpa", "(", "rtx", "*", "operands", ")", "{", "int", "arm_reg0", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "rtx", "ops", "[", "3", "]", ";", "gcc_assert", "(", "arm_reg0", "!=", "IP_REGNUM", ")", ";", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "arm_reg0", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "1", "+", "arm_reg0", ")", ";", "ops", "[", "2", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "2", "+", "arm_reg0", ")", ";", "output_asm_insn", "(", "\"stf%?e\\t%1, [%|sp, #-12]!\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldm%?fd\\t%|sp!, {%0, %1, %2}\"", ",", "ops", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "move", "from", "an", "fpa", "register", "to", "arm", "registers", ".", "OPERANDS", "[", "0", "]", "is", "the", "first", "registers", "of", "an", "arm", "register", "pair", ".", "OPERANDS", "[", "1", "]", "is", "an", "fpa", "register", "."], "TS_V_token": ["arm", "0", "3", "0", "1", "1", "2", "2", "\"stf%?e\\t%1, [%|sp, #-12]!\"", "\"ldm%?fd\\t%|sp!, {%0, %1, %2}\"", "\"\""], "File": "arm3", "Func": "output_mov_long_double_arm_from_fpa", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44573, "Length": 92}
{"ground_truth": ["", "const", "char", "*", "output_mov_long_double_fpa_from_arm", "(", "rtx", "*", "operands", ")", "{", "int", "arm_reg0", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "rtx", "ops", "[", "3", "]", ";", "gcc_assert", "(", "arm_reg0", "!=", "IP_REGNUM", ")", ";", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "arm_reg0", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "1", "+", "arm_reg0", ")", ";", "ops", "[", "2", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "2", "+", "arm_reg0", ")", ";", "output_asm_insn", "(", "\"stm%?fd\\t%|sp!, {%0, %1, %2}\"", ",", "ops", ")", ";", "output_asm_insn", "(", "\"ldf%?e\\t%0, [%|sp], #12\"", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "move", "from", "arm", "registers", "to", "an", "fpa", "registers", ".", "OPERANDS", "[", "0", "]", "is", "an", "fpa", "register", ".", "OPERANDS", "[", "1", "]", "is", "the", "first", "registers", "of", "an", "arm", "register", "pair", "."], "TS_V_token": ["arm", "1", "3", "0", "1", "1", "2", "2", "\"stm%?fd\\t%|sp!, {%0, %1, %2}\"", "\"ldf%?e\\t%0, [%|sp], #12\"", "\"\""], "File": "arm3", "Func": "output_mov_long_double_fpa_from_arm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44574, "Length": 92}
{"ground_truth": ["", "static", "void", "print_multi_reg", "(", "FILE", "*", "stream", ",", "const", "char", "*", "instr", ",", "unsigned", "reg", ",", "unsigned", "long", "mask", ")", "{", "unsigned", "i", ";", "bool", "not_first", "=", "FALSE", ";", "fputc", "(", "'\\t'", ",", "stream", ")", ";", "asm_fprintf", "(", "stream", ",", "instr", ",", "reg", ")", ";", "fputs", "(", "\", {\"", ",", "stream", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "if", "(", "not_first", ")", "fprintf", "(", "stream", ",", "\", \"", ")", ";", "asm_fprintf", "(", "stream", ",", "\"%r\"", ",", "i", ")", ";", "not_first", "=", "TRUE", ";", "}", "fprintf", "(", "stream", ",", "\"}\\n\"", ")", ";", "}", ""], "natrual_language": ["Output", "the", "operands", "of", "a", "LDM/STM", "instruction", "to", "STREAM", ".", "MASK", "is", "the", "ARM", "register", "set", "mask", "of", "which", "only", "bits", "0-15", "are", "important", ".", "REG", "is", "the", "base", "register", ",", "either", "the", "frame", "pointer", "or", "the", "stack", "pointer", ",", "INSTR", "is", "the", "possibly", "suffixed", "load", "or", "store", "instruction", "."], "TS_V_token": ["arm", "\", {\"", "0", "1", "\", \"", "\"%r\"", "\"}\\n\""], "File": "arm3", "Func": "print_multi_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44575, "Length": 109}
{"ground_truth": ["", "static", "void", "push_minipool_barrier", "(", "rtx", "insn", ",", "HOST_WIDE_INT", "address", ")", "{", "Mfix", "*", "fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "fix", ")", ")", ";", "fix", "->", "insn", "=", "insn", ";", "fix", "->", "address", "=", "address", ";", "fix", "->", "next", "=", "NULL", ";", "if", "(", "minipool_fix_head", "!=", "NULL", ")", "minipool_fix_tail", "->", "next", "=", "fix", ";", "else", "minipool_fix_head", "=", "fix", ";", "minipool_fix_tail", "=", "fix", ";", "}", ""], "natrual_language": ["Record", "that", "there", "is", "a", "natural", "barrier", "in", "the", "insn", "stream", "at", "ADDRESS", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "push_minipool_barrier", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44576, "Length": 71}
{"ground_truth": ["", "static", "void", "push_minipool_fix", "(", "rtx", "insn", ",", "HOST_WIDE_INT", "address", ",", "rtx", "*", "loc", ",", "enum", "machine_mode", "mode", ",", "rtx", "value", ")", "{", "Mfix", "*", "fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "fix", ")", ")", ";", "if", "(", "flag_pic", "&&", "GET_CODE", "(", "value", ")", "==", "SYMBOL_REF", ")", "value", "=", "aof_pic_entry", "(", "value", ")", ";", "fix", "->", "insn", "=", "insn", ";", "fix", "->", "address", "=", "address", ";", "fix", "->", "loc", "=", "loc", ";", "fix", "->", "mode", "=", "mode", ";", "fix", "->", "fix_size", "=", "MINIPOOL_FIX_SIZE", "(", "mode", ")", ";", "fix", "->", "value", "=", "value", ";", "fix", "->", "forwards", "=", "get_attr_pool_range", "(", "insn", ")", ";", "fix", "->", "backwards", "=", "get_attr_neg_pool_range", "(", "insn", ")", ";", "fix", "->", "minipool", "=", "NULL", ";", "gcc_assert", "(", "fix", "->", "forwards", "||", "fix", "->", "backwards", ")", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", "&&", "fix", "->", "fix_size", "==", "8", ")", "fix", "->", "forwards", "-=", "4", ";", "if", "(", "dump_file", ")", "{", "fprintf", "(", "dump_file", ",", "\";; %smode fixup for i%d; addr %lu, range (%ld,%ld): \"", ",", "GET_MODE_NAME", "(", "mode", ")", ",", "INSN_UID", "(", "insn", ")", ",", "(", "unsigned", "long", ")", "address", ",", "-", "1", "*", "(", "long", ")", "fix", "->", "backwards", ",", "(", "long", ")", "fix", "->", "forwards", ")", ";", "arm_print_value", "(", "dump_file", ",", "fix", "->", "value", ")", ";", "fprintf", "(", "dump_file", ",", "\"\\n\"", ")", ";", "}", "fix", "->", "next", "=", "NULL", ";", "if", "(", "minipool_fix_head", "!=", "NULL", ")", "minipool_fix_tail", "->", "next", "=", "fix", ";", "else", "minipool_fix_head", "=", "fix", ";", "minipool_fix_tail", "=", "fix", ";", "}", ""], "natrual_language": ["Record", "INSN", ",", "which", "will", "need", "fixing", "up", "to", "load", "a", "value", "from", "the", "minipool", ".", "ADDRESS", "is", "the", "offset", "of", "the", "insn", "since", "the", "start", "of", "the", "function", ";", "LOC", "is", "a", "pointer", "to", "the", "part", "of", "the", "insn", "which", "requires", "fixing", ";", "VALUE", "is", "the", "constant", "that", "must", "be", "loaded", ",", "which", "is", "of", "type", "MODE", "."], "TS_V_token": ["arm", "8", "4", "\";; %smode fixup for i%d; addr %lu, range (%ld,%ld): \"", "1", "\"\\n\""], "File": "arm3", "Func": "push_minipool_fix", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44577, "Length": 240}
{"ground_truth": ["", "static", "rtx", "safe_vector_operand", "(", "rtx", "x", ",", "enum", "machine_mode", "mode", ")", "{", "if", "(", "x", "!=", "const0_rtx", ")", "return", "x", ";", "x", "=", "gen_reg_rtx", "(", "mode", ")", ";", "emit_insn", "(", "gen_iwmmxt_clrdi", "(", "mode", "==", "DImode", "?", "x", ":", "gen_rtx_SUBREG", "(", "DImode", ",", "x", ",", "0", ")", ")", ")", ";", "return", "x", ";", "}", ""], "natrual_language": ["Errors", "in", "the", "source", "file", "can", "cause", "expand_expr", "to", "return", "const0_rtx", "where", "we", "expect", "a", "vector", ".", "To", "avoid", "crashing", ",", "use", "one", "of", "the", "vector", "clear", "instructions", "."], "TS_V_token": ["arm", "0"], "File": "arm3", "Func": "safe_vector_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44578, "Length": 53}
{"ground_truth": ["", "static", "const", "char", "*", "shift_op", "(", "rtx", "op", ",", "HOST_WIDE_INT", "*", "amountp", ")", "{", "const", "char", "*", "mnem", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "op", ")", ";", "switch", "(", "GET_CODE", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "case", "REG", ":", "case", "SUBREG", ":", "*", "amountp", "=", "-", "1", ";", "break", ";", "case", "CONST_INT", ":", "*", "amountp", "=", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "switch", "(", "code", ")", "{", "case", "ASHIFT", ":", "mnem", "=", "\"asl\"", ";", "break", ";", "case", "ASHIFTRT", ":", "mnem", "=", "\"asr\"", ";", "break", ";", "case", "LSHIFTRT", ":", "mnem", "=", "\"lsr\"", ";", "break", ";", "case", "ROTATE", ":", "gcc_assert", "(", "*", "amountp", "!=", "-", "1", ")", ";", "*", "amountp", "=", "32", "-", "*", "amountp", ";", "case", "ROTATERT", ":", "mnem", "=", "\"ror\"", ";", "break", ";", "case", "MULT", ":", "gcc_assert", "(", "*", "amountp", "!=", "-", "1", ")", ";", "*", "amountp", "=", "int_log2", "(", "*", "amountp", ")", ";", "return", "\"asl\"", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "if", "(", "*", "amountp", "!=", "-", "1", ")", "{", "if", "(", "code", "==", "ROTATERT", ")", "*", "amountp", "&=", "31", ";", "else", "if", "(", "*", "amountp", "!=", "(", "*", "amountp", "&", "31", ")", ")", "{", "if", "(", "code", "==", "ASHIFT", ")", "mnem", "=", "\"lsr\"", ";", "*", "amountp", "=", "32", ";", "}", "if", "(", "*", "amountp", "==", "0", ")", "return", "NULL", ";", "}", "return", "mnem", ";", "}", ""], "natrual_language": ["Ensure", "valid", "constant", "shifts", "and", "return", "the", "appropriate", "shift", "mnemonic", "for", "the", "operation", "code", ".", "The", "returned", "result", "should", "not", "be", "overwritten", ".", "OP", "is", "the", "rtx", "code", "of", "the", "shift", ".", "On", "exit", ",", "*", "AMOUNTP", "will", "be", "-1", "if", "the", "shift", "is", "by", "a", "register", ",", "or", "a", "constant", "shift", "."], "TS_V_token": ["arm", "1", "1", "1", "\"asl\"", "\"asr\"", "\"lsr\"", "1", "32", "\"ror\"", "1", "\"asl\"", "1", "31", "31", "\"lsr\"", "32", "0"], "File": "arm3", "Func": "shift_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44579, "Length": 237}
{"ground_truth": ["", "static", "int", "thumb_base_register_rtx_p", "(", "rtx", "x", ",", "enum", "machine_mode", "mode", ",", "int", "strict_p", ")", "{", "int", "regno", ";", "if", "(", "GET_CODE", "(", "x", ")", "!=", "REG", ")", "return", "0", ";", "regno", "=", "REGNO", "(", "x", ")", ";", "if", "(", "strict_p", ")", "return", "THUMB_REGNO_MODE_OK_FOR_BASE_P", "(", "regno", ",", "mode", ")", ";", "return", "(", "regno", "<=", "LAST_LO_REGNUM", "||", "regno", ">", "LAST_VIRTUAL_REGISTER", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "(", "GET_MODE_SIZE", "(", "mode", ")", ">=", "4", "&&", "(", "regno", "==", "STACK_POINTER_REGNUM", "||", "regno", ">=", "FIRST_PSEUDO_REGISTER", "||", "x", "==", "hard_frame_pointer_rtx", "||", "x", "==", "arg_pointer_rtx", ")", ")", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "valid", "as", "a", "Thumb", "state", "base", "register", "."], "TS_V_token": ["arm", "0", "4"], "File": "arm3", "Func": "thumb_base_register_rtx_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44580, "Length": 92}
{"ground_truth": ["", "const", "char", "*", "thumb_call_via_reg", "(", "rtx", "reg", ")", "{", "int", "regno", "=", "REGNO", "(", "reg", ")", ";", "rtx", "*", "labelp", ";", "gcc_assert", "(", "regno", "<", "LR_REGNUM", ")", ";", "if", "(", "in_text_section", "(", ")", ")", "{", "thumb_call_reg_needed", "=", "1", ";", "if", "(", "thumb_call_via_label", "[", "regno", "]", "==", "NULL", ")", "thumb_call_via_label", "[", "regno", "]", "=", "gen_label_rtx", "(", ")", ";", "labelp", "=", "thumb_call_via_label", "+", "regno", ";", "}", "else", "{", "if", "(", "cfun", "->", "machine", "->", "call_via", "[", "regno", "]", "==", "NULL", ")", "cfun", "->", "machine", "->", "call_via", "[", "regno", "]", "=", "gen_label_rtx", "(", ")", ";", "labelp", "=", "cfun", "->", "machine", "->", "call_via", "+", "regno", ";", "}", "output_asm_insn", "(", "\"bl\\t%a0\"", ",", "labelp", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "call-via", "instruction", "for", "thumb", "state", "."], "TS_V_token": ["arm", "1", "\"bl\\t%a0\"", "\"\""], "File": "arm3", "Func": "thumb_call_via_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44581, "Length": 114}
{"ground_truth": ["", "static", "unsigned", "long", "thumb_compute_save_reg_mask", "(", "void", ")", "{", "unsigned", "long", "mask", ";", "unsigned", "reg", ";", "mask", "=", "0", ";", "for", "(", "reg", "=", "0", ";", "reg", "<", "12", ";", "reg", "++", ")", "if", "(", "regs_ever_live", "[", "reg", "]", "&&", "!", "call_used_regs", "[", "reg", "]", ")", "mask", "|=", "1", "<<", "reg", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "current_function_uses_pic_offset_table", ")", "mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "if", "(", "!", "frame_pointer_needed", "&&", "CALLER_INTERWORKING_SLOT_SIZE", ">", "0", ")", "mask", "|=", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "mask", "&", "0xff", "||", "thumb_force_lr_save", "(", ")", ")", "mask", "|=", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "(", "mask", "&", "0xff", ")", "==", "0", "&&", "(", "(", "mask", "&", "0x0f00", ")", "||", "TARGET_BACKTRACE", ")", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "LAST_LO_REGNUM", ")", ";", "if", "(", "!", "call_used_regs", "[", "reg", "]", ")", "mask", "|=", "1", "<<", "reg", ";", "}", "return", "mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "0", "12", "1", "1", "0", "1", "0xff", "1", "0xff", "0", "0x0f00", "1", "1"], "File": "arm3", "Func": "thumb_compute_save_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44582, "Length": 148}
{"ground_truth": ["", "void", "thumb_expand_movmemqi", "(", "rtx", "*", "operands", ")", "{", "rtx", "out", "=", "copy_to_mode_reg", "(", "SImode", ",", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ")", ";", "rtx", "in", "=", "copy_to_mode_reg", "(", "SImode", ",", "XEXP", "(", "operands", "[", "1", "]", ",", "0", ")", ")", ";", "HOST_WIDE_INT", "len", "=", "INTVAL", "(", "operands", "[", "2", "]", ")", ";", "HOST_WIDE_INT", "offset", "=", "0", ";", "while", "(", "len", ">=", "12", ")", "{", "emit_insn", "(", "gen_movmem12b", "(", "out", ",", "in", ",", "out", ",", "in", ")", ")", ";", "len", "-=", "12", ";", "}", "if", "(", "len", ">=", "8", ")", "{", "emit_insn", "(", "gen_movmem8b", "(", "out", ",", "in", ",", "out", ",", "in", ")", ")", ";", "len", "-=", "8", ";", "}", "if", "(", "len", ">=", "4", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "emit_insn", "(", "gen_movsi", "(", "reg", ",", "gen_rtx_MEM", "(", "SImode", ",", "in", ")", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "gen_rtx_MEM", "(", "SImode", ",", "out", ")", ",", "reg", ")", ")", ";", "len", "-=", "4", ";", "offset", "+=", "4", ";", "}", "if", "(", "len", ">=", "2", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "HImode", ")", ";", "emit_insn", "(", "gen_movhi", "(", "reg", ",", "gen_rtx_MEM", "(", "HImode", ",", "plus_constant", "(", "in", ",", "offset", ")", ")", ")", ")", ";", "emit_insn", "(", "gen_movhi", "(", "gen_rtx_MEM", "(", "HImode", ",", "plus_constant", "(", "out", ",", "offset", ")", ")", ",", "reg", ")", ")", ";", "len", "-=", "2", ";", "offset", "+=", "2", ";", "}", "if", "(", "len", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "QImode", ")", ";", "emit_insn", "(", "gen_movqi", "(", "reg", ",", "gen_rtx_MEM", "(", "QImode", ",", "plus_constant", "(", "in", ",", "offset", ")", ")", ")", ")", ";", "emit_insn", "(", "gen_movqi", "(", "gen_rtx_MEM", "(", "QImode", ",", "plus_constant", "(", "out", ",", "offset", ")", ")", ",", "reg", ")", ")", ";", "}", "}", ""], "natrual_language": ["Routines", "for", "generating", "rtl", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "2", "0", "12", "12", "8", "8", "4", "4", "4", "2", "2", "2"], "File": "arm3", "Func": "thumb_expand_movmemqi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44583, "Length": 285}
{"ground_truth": ["", "static", "int", "thumb_far_jump_used_p", "(", "void", ")", "{", "rtx", "insn", ";", "if", "(", "cfun", "->", "machine", "->", "far_jump_used", ")", "return", "1", ";", "if", "(", "!", "(", "ARM_DOUBLEWORD_ALIGN", "||", "reload_completed", ")", ")", "{", "if", "(", "regs_ever_live", "[", "ARG_POINTER_REGNUM", "]", ")", "cfun", "->", "machine", "->", "arg_pointer_live", "=", "1", ";", "else", "if", "(", "!", "cfun", "->", "machine", "->", "arg_pointer_live", ")", "return", "0", ";", "}", "for", "(", "insn", "=", "get_insns", "(", ")", ";", "insn", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "{", "if", "(", "GET_CODE", "(", "insn", ")", "==", "JUMP_INSN", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "!=", "ADDR_VEC", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "!=", "ADDR_DIFF_VEC", "&&", "get_attr_far_jump", "(", "insn", ")", "==", "FAR_JUMP_YES", ")", "{", "cfun", "->", "machine", "->", "far_jump_used", "=", "1", ";", "return", "1", ";", "}", "}", "return", "0", ";", "}", ""], "natrual_language": ["Returns", "non-zero", "if", "the", "current", "function", "contains", ",", "or", "might", "contain", "a", "far", "jump", "."], "TS_V_token": ["arm", "1", "1", "0", "1", "1", "0"], "File": "arm3", "Func": "thumb_far_jump_used_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44584, "Length": 132}
{"ground_truth": ["", "static", "int", "thumb_find_work_register", "(", "unsigned", "long", "pushed_regs_mask", ")", "{", "int", "reg", ";", "for", "(", "reg", "=", "LAST_ARG_REGNUM", ";", "reg", ">=", "0", ";", "reg", "--", ")", "if", "(", "!", "regs_ever_live", "[", "reg", "]", ")", "return", "reg", ";", "if", "(", "cfun", "->", "machine", "->", "uses_anonymous_args", "&&", "current_function_pretend_args_size", ">", "0", ")", "return", "LAST_ARG_REGNUM", ";", "if", "(", "!", "cfun", "->", "machine", "->", "uses_anonymous_args", "&&", "current_function_args_size", ">=", "0", "&&", "current_function_args_size", "<=", "(", "LAST_ARG_REGNUM", "*", "UNITS_PER_WORD", ")", "&&", "cfun", "->", "args_info", ".", "nregs", "<", "4", ")", "return", "LAST_ARG_REGNUM", ";", "for", "(", "reg", "=", "LAST_LO_REGNUM", ";", "reg", ">", "LAST_ARG_REGNUM", ";", "reg", "--", ")", "if", "(", "pushed_regs_mask", "&", "(", "1", "<<", "reg", ")", ")", "return", "reg", ";", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Find", "a", "spare", "low", "register", "to", "use", "during", "the", "prolog", "of", "a", "function", "."], "TS_V_token": ["arm", "0", "0", "0", "4", "1"], "File": "arm3", "Func": "thumb_find_work_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44585, "Length": 114}
{"ground_truth": ["", "static", "bool", "thumb_force_lr_save", "(", "void", ")", "{", "return", "!", "cfun", "->", "machine", "->", "lr_save_eliminated", "&&", "(", "!", "leaf_function_p", "(", ")", "||", "thumb_far_jump_used_p", "(", ")", "||", "regs_ever_live", "[", "LR_REGNUM", "]", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "the", "current", "function", "needs", "to", "save/restore", "LR", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "thumb_force_lr_save", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44586, "Length": 32}
{"ground_truth": ["", "inline", "static", "int", "thumb_index_register_rtx_p", "(", "rtx", "x", ",", "int", "strict_p", ")", "{", "return", "thumb_base_register_rtx_p", "(", "x", ",", "QImode", ",", "strict_p", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "x", "is", "a", "legitimate", "index", "register", ".", "This", "is", "the", "case", "for", "any", "base", "register", "that", "can", "access", "a", "QImode", "object", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "thumb_index_register_rtx_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44587, "Length": 23}
{"ground_truth": ["", "int", "thumb_legitimate_offset_p", "(", "enum", "machine_mode", "mode", ",", "HOST_WIDE_INT", "val", ")", "{", "switch", "(", "GET_MODE_SIZE", "(", "mode", ")", ")", "{", "case", "1", ":", "return", "val", ">=", "0", "&&", "val", "<", "32", ";", "case", "2", ":", "return", "val", ">=", "0", "&&", "val", "<", "64", "&&", "(", "val", "&", "1", ")", "==", "0", ";", "default", ":", "return", "(", "val", ">=", "0", "&&", "(", "val", "+", "GET_MODE_SIZE", "(", "mode", ")", ")", "<=", "128", "&&", "(", "val", "&", "3", ")", "==", "0", ")", ";", "}", "}", ""], "natrual_language": ["Return", "nonzero", "if", "VAL", "can", "be", "used", "as", "an", "offset", "in", "a", "Thumb-state", "address", "instruction", "of", "mode", "MODE", "."], "TS_V_token": ["arm", "1", "0", "32", "2", "0", "64", "1", "0", "0", "128", "3", "0"], "File": "arm3", "Func": "thumb_legitimate_offset_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44588, "Length": 81}
{"ground_truth": ["", "rtx", "thumb_legitimize_address", "(", "rtx", "x", ",", "rtx", "orig_x", ",", "enum", "machine_mode", "mode", ")", "{", "if", "(", "arm_tls_symbol_p", "(", "x", ")", ")", "return", "legitimize_tls_address", "(", "x", ",", "NULL_RTX", ")", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "CONST_INT", "&&", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", ">=", "32", "*", "GET_MODE_SIZE", "(", "mode", ")", "||", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "<", "0", ")", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", "=", "INTVAL", "(", "xop1", ")", ";", "if", "(", "optimize_size", "&&", "offset", ">=", "0", "&&", "offset", "<", "256", "+", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ")", "{", "HOST_WIDE_INT", "delta", ";", "if", "(", "offset", ">=", "256", ")", "delta", "=", "offset", "-", "(", "256", "-", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "else", "if", "(", "offset", "<", "32", "*", "GET_MODE_SIZE", "(", "mode", ")", "+", "8", ")", "delta", "=", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ";", "else", "delta", "=", "offset", "&", "(", "~", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "xop0", "=", "force_operand", "(", "plus_constant", "(", "xop0", ",", "offset", "-", "delta", ")", ",", "NULL_RTX", ")", ";", "x", "=", "plus_constant", "(", "xop0", ",", "delta", ")", ";", "}", "else", "if", "(", "offset", "<", "0", "&&", "offset", ">", "-", "256", ")", "x", "=", "force_operand", "(", "x", ",", "NULL_RTX", ")", ";", "else", "{", "xop1", "=", "force_reg", "(", "SImode", ",", "xop1", ")", ";", "x", "=", "gen_rtx_PLUS", "(", "SImode", ",", "xop0", ",", "xop1", ")", ";", "}", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "PLUS", "&&", "s_register_operand", "(", "XEXP", "(", "x", ",", "1", ")", ",", "SImode", ")", "&&", "!", "s_register_operand", "(", "XEXP", "(", "x", ",", "0", ")", ",", "SImode", ")", ")", "{", "rtx", "xop0", "=", "force_operand", "(", "XEXP", "(", "x", ",", "0", ")", ",", "NULL_RTX", ")", ";", "x", "=", "gen_rtx_PLUS", "(", "SImode", ",", "xop0", ",", "XEXP", "(", "x", ",", "1", ")", ")", ";", "}", "if", "(", "flag_pic", ")", "{", "rtx", "new_x", "=", "legitimize_pic_address", "(", "orig_x", ",", "mode", ",", "NULL_RTX", ")", ";", "if", "(", "new_x", "!=", "orig_x", ")", "x", "=", "new_x", ";", "}", "return", "x", ";", "}", ""], "natrual_language": ["Try", "machine-dependent", "ways", "of", "modifying", "an", "illegitimate", "Thumb", "address", "to", "be", "legitimate", ".", "If", "we", "find", "one", ",", "return", "the", "new", ",", "valid", "address", "."], "TS_V_token": ["arm", "1", "1", "32", "1", "0", "0", "1", "0", "256", "31", "256", "256", "32", "8", "31", "31", "0", "256", "1", "0", "0", "1"], "File": "arm3", "Func": "thumb_legitimize_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44589, "Length": 361}
{"ground_truth": ["", "const", "char", "*", "thumb_load_double_from_address", "(", "rtx", "*", "operands", ")", "{", "rtx", "addr", ";", "rtx", "base", ";", "rtx", "offset", ";", "rtx", "arg1", ";", "rtx", "arg2", ";", "gcc_assert", "(", "GET_CODE", "(", "operands", "[", "0", "]", ")", "==", "REG", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "operands", "[", "1", "]", ")", "==", "MEM", ")", ";", "addr", "=", "XEXP", "(", "operands", "[", "1", "]", ",", "0", ")", ";", "switch", "(", "GET_CODE", "(", "addr", ")", ")", "{", "case", "REG", ":", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "if", "(", "REGNO", "(", "operands", "[", "0", "]", ")", "==", "REGNO", "(", "addr", ")", ")", "{", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "}", "else", "{", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "}", "break", ";", "case", "CONST", ":", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "break", ";", "case", "PLUS", ":", "arg1", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "arg2", "=", "XEXP", "(", "addr", ",", "1", ")", ";", "if", "(", "CONSTANT_P", "(", "arg1", ")", ")", "base", "=", "arg2", ",", "offset", "=", "arg1", ";", "else", "base", "=", "arg1", ",", "offset", "=", "arg2", ";", "gcc_assert", "(", "GET_CODE", "(", "base", ")", "==", "REG", ")", ";", "if", "(", "GET_CODE", "(", "offset", ")", "==", "REG", ")", "{", "int", "reg_offset", "=", "REGNO", "(", "offset", ")", ";", "int", "reg_base", "=", "REGNO", "(", "base", ")", ";", "int", "reg_dest", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tadd\\t%r, %r, %r\"", ",", "reg_dest", "+", "1", ",", "reg_base", ",", "reg_offset", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tldr\\t%r, [%r, #0]\"", ",", "reg_dest", ",", "reg_dest", "+", "1", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tldr\\t%r, [%r, #4]\"", ",", "reg_dest", "+", "1", ",", "reg_dest", "+", "1", ")", ";", "}", "else", "{", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "if", "(", "REGNO", "(", "operands", "[", "0", "]", ")", "==", "REGNO", "(", "base", ")", ")", "{", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "}", "else", "{", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "}", "}", "break", ";", "case", "LABEL_REF", ":", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Handle", "the", "case", "of", "a", "double", "word", "load", "into", "a", "low", "register", "from", "a", "computed", "memory", "address", ".", "The", "computed", "address", "may", "involve", "a", "register", "which", "is", "overwritten", "by", "the", "load", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "2", "1", "4", "0", "\"ldr\\t%H0, %2\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%H0, %2\"", "2", "1", "4", "\"ldr\\t%0, %1\"", "\"ldr\\t%H0, %2\"", "0", "1", "0", "\"\\tadd\\t%r, %r, %r\"", "1", "\"\\tldr\\t%r, [%r, #0]\"", "1", "\"\\tldr\\t%r, [%r, #4]\"", "1", "1", "2", "1", "4", "0", "\"ldr\\t%H0, %2\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%H0, %2\"", "2", "1", "4", "\"ldr\\t%H0, %2\"", "\"ldr\\t%0, %1\"", "\"\""], "File": "arm3", "Func": "thumb_load_double_from_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44590, "Length": 430}
{"ground_truth": ["", "static", "void", "thumb_pushpop", "(", "FILE", "*", "f", ",", "unsigned", "long", "mask", ",", "int", "push", ",", "int", "*", "cfa_offset", ",", "unsigned", "long", "real_regs", ")", "{", "int", "regno", ";", "int", "lo_mask", "=", "mask", "&", "0xFF", ";", "int", "pushed_words", "=", "0", ";", "gcc_assert", "(", "mask", ")", ";", "if", "(", "lo_mask", "==", "0", "&&", "!", "push", "&&", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", ")", "{", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "if", "(", "ARM_EABI_UNWIND_TABLES", "&&", "push", ")", "{", "fprintf", "(", "f", ",", "\"\\t.save\\t{\"", ")", ";", "for", "(", "regno", "=", "0", ";", "regno", "<", "15", ";", "regno", "++", ")", "{", "if", "(", "real_regs", "&", "(", "1", "<<", "regno", ")", ")", "{", "if", "(", "real_regs", "&", "(", "(", "1", "<<", "regno", ")", "-", "1", ")", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "regno", ")", ";", "}", "}", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "}", "fprintf", "(", "f", ",", "\"\\t%s\\t{\"", ",", "push", "?", "\"push\"", ":", "\"pop\"", ")", ";", "for", "(", "regno", "=", "0", ";", "regno", "<=", "LAST_LO_REGNUM", ";", "regno", "++", ",", "lo_mask", ">>=", "1", ")", "{", "if", "(", "lo_mask", "&", "1", ")", "{", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "regno", ")", ";", "if", "(", "(", "lo_mask", "&", "~", "1", ")", "!=", "0", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "pushed_words", "++", ";", "}", "}", "if", "(", "push", "&&", "(", "mask", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "{", "if", "(", "mask", "&", "0xFF", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "LR_REGNUM", ")", ";", "pushed_words", "++", ";", "}", "else", "if", "(", "!", "push", "&&", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", ")", "{", "if", "(", "TARGET_INTERWORK", "||", "TARGET_BACKTRACE", "||", "current_function_calls_eh_return", ")", "{", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "else", "{", "if", "(", "mask", "&", "0xFF", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "PC_REGNUM", ")", ";", "}", "}", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "if", "(", "push", "&&", "pushed_words", "&&", "dwarf2out_do_frame", "(", ")", ")", "{", "char", "*", "l", "=", "dwarf2out_cfi_label", "(", ")", ";", "int", "pushed_mask", "=", "real_regs", ";", "*", "cfa_offset", "+=", "pushed_words", "*", "4", ";", "dwarf2out_def_cfa", "(", "l", ",", "SP_REGNUM", ",", "*", "cfa_offset", ")", ";", "pushed_words", "=", "0", ";", "pushed_mask", "=", "real_regs", ";", "for", "(", "regno", "=", "0", ";", "regno", "<=", "14", ";", "regno", "++", ",", "pushed_mask", ">>=", "1", ")", "{", "if", "(", "pushed_mask", "&", "1", ")", "dwarf2out_reg_save", "(", "l", ",", "regno", ",", "4", "*", "pushed_words", "++", "-", "*", "cfa_offset", ")", ";", "}", "}", "}", ""], "natrual_language": ["Emit", "code", "to", "push", "or", "pop", "registers", "to", "or", "from", "the", "stack", ".", "F", "is", "the", "assembly", "file", ".", "MASK", "is", "the", "registers", "to", "push", "or", "pop", ".", "PUSH", "is", "nonzero", "if", "we", "should", "push", ",", "and", "zero", "if", "we", "should", "pop", ".", "For", "debugging", "output", ",", "if", "pushing", ",", "adjust", "CFA_OFFSET", "by", "the", "amount", "of", "space", "added", "to", "the", "stack", ".", "REAL_REGS", "should", "have", "the", "same", "number", "of", "bits", "set", "as", "MASK", ",", "and", "will", "be", "used", "instead", "(", "in", "the", "same", "order", ")", "to", "describe", "which", "registers", "were", "saved", "-", "this", "is", "used", "to", "mark", "the", "save", "slots", "when", "we", "push", "high", "registers", "after", "moving", "them", "to", "low", "registers", "."], "TS_V_token": ["arm", "0xFF", "0", "0", "1", "1", "\"\\t.save\\t{\"", "0", "15", "1", "1", "1", "\", \"", "\"%r\"", "\"}\\n\"", "\"\\t%s\\t{\"", "\"push\"", "\"pop\"", "0", "1", "1", "\"%r\"", "1", "0", "\", \"", "1", "0xFF", "\", \"", "\"%r\"", "1", "\"}\\n\"", "1", "0xFF", "\", \"", "\"%r\"", "\"}\\n\"", "4", "0", "0", "14", "1", "1", "4"], "File": "arm3", "Func": "thumb_pushpop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44591, "Length": 433}
{"ground_truth": ["", "const", "char", "*", "thumb_unexpanded_epilogue", "(", "void", ")", "{", "int", "regno", ";", "unsigned", "long", "live_regs_mask", "=", "0", ";", "int", "high_regs_pushed", "=", "0", ";", "int", "had_to_push_lr", ";", "int", "size", ";", "if", "(", "return_used_this_function", ")", "return", "\"\"", ";", "if", "(", "IS_NAKED", "(", "arm_current_func_type", "(", ")", ")", ")", "return", "\"\"", ";", "live_regs_mask", "=", "thumb_compute_save_reg_mask", "(", ")", ";", "high_regs_pushed", "=", "bit_count", "(", "live_regs_mask", "&", "0x0f00", ")", ";", "size", "=", "arm_size_return_regs", "(", ")", ";", "if", "(", "high_regs_pushed", ")", "{", "unsigned", "long", "mask", "=", "live_regs_mask", "&", "0xff", ";", "int", "next_hi_reg", ";", "if", "(", "size", "<=", "12", ")", "mask", "|=", "1", "<<", "3", ";", "if", "(", "size", "<=", "8", ")", "mask", "|=", "1", "<<", "2", ";", "if", "(", "mask", "==", "0", ")", "internal_error", "(", "\"no low registers available for popping high registers\"", ")", ";", "for", "(", "next_hi_reg", "=", "8", ";", "next_hi_reg", "<", "13", ";", "next_hi_reg", "++", ")", "if", "(", "live_regs_mask", "&", "(", "1", "<<", "next_hi_reg", ")", ")", "break", ";", "while", "(", "high_regs_pushed", ")", "{", "for", "(", "regno", "=", "0", ";", "regno", "<=", "LAST_LO_REGNUM", ";", "regno", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "regno", ")", ")", "high_regs_pushed", "--", ";", "if", "(", "high_regs_pushed", "==", "0", ")", "break", ";", "}", "mask", "&=", "(", "2", "<<", "regno", ")", "-", "1", ";", "thumb_pushpop", "(", "asm_out_file", ",", "mask", ",", "0", ",", "NULL", ",", "mask", ")", ";", "for", "(", "regno", "=", "0", ";", "regno", "<=", "LAST_LO_REGNUM", ";", "regno", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "regno", ")", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "next_hi_reg", ",", "regno", ")", ";", "for", "(", "next_hi_reg", "++", ";", "next_hi_reg", "<", "13", ";", "next_hi_reg", "++", ")", "if", "(", "live_regs_mask", "&", "(", "1", "<<", "next_hi_reg", ")", ")", "break", ";", "}", "}", "}", "live_regs_mask", "&=", "~", "0x0f00", ";", "}", "had_to_push_lr", "=", "(", "live_regs_mask", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", "!=", "0", ";", "live_regs_mask", "&=", "0xff", ";", "if", "(", "current_function_pretend_args_size", "==", "0", "||", "TARGET_BACKTRACE", ")", "{", "if", "(", "had_to_push_lr", ")", "live_regs_mask", "|=", "1", "<<", "PC_REGNUM", ";", "if", "(", "live_regs_mask", ")", "thumb_pushpop", "(", "asm_out_file", ",", "live_regs_mask", ",", "FALSE", ",", "NULL", ",", "live_regs_mask", ")", ";", "if", "(", "!", "had_to_push_lr", ")", "thumb_exit", "(", "asm_out_file", ",", "LR_REGNUM", ")", ";", "}", "else", "{", "if", "(", "live_regs_mask", ")", "thumb_pushpop", "(", "asm_out_file", ",", "live_regs_mask", ",", "FALSE", ",", "NULL", ",", "live_regs_mask", ")", ";", "if", "(", "had_to_push_lr", ")", "{", "if", "(", "size", ">", "12", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "IP_REGNUM", ",", "LAST_ARG_REGNUM", ")", ";", "}", "thumb_pushpop", "(", "asm_out_file", ",", "1", "<<", "LAST_ARG_REGNUM", ",", "0", ",", "NULL", ",", "1", "<<", "LAST_ARG_REGNUM", ")", ";", "if", "(", "size", ">", "12", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "LR_REGNUM", ",", "LAST_ARG_REGNUM", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "LAST_ARG_REGNUM", ",", "IP_REGNUM", ")", ";", "regno", "=", "LR_REGNUM", ";", "}", "else", "regno", "=", "LAST_ARG_REGNUM", ";", "}", "else", "regno", "=", "LR_REGNUM", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tadd\\t%r, %r, #%d\\n\"", ",", "SP_REGNUM", ",", "SP_REGNUM", ",", "current_function_pretend_args_size", ")", ";", "thumb_exit", "(", "asm_out_file", ",", "regno", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["The", "bits", "which", "are", "n't", "usefully", "expanded", "as", "rtl", "."], "TS_V_token": ["arm", "0", "0", "\"\"", "\"\"", "0x0f00", "0xff", "12", "1", "3", "8", "1", "2", "0", "\"no low registers available for popping high registers\"", "8", "13", "1", "0", "1", "0", "2", "1", "0", "0", "1", "\"\\tmov\\t%r, %r\\n\"", "13", "1", "0x0f00", "1", "0", "0xff", "0", "1", "12", "\"\\tmov\\t%r, %r\\n\"", "1", "0", "1", "12", "\"\\tmov\\t%r, %r\\n\"", "\"\\tmov\\t%r, %r\\n\"", "\"\\tadd\\t%r, %r, #%d\\n\"", "\"\""], "File": "arm3", "Func": "thumb_unexpanded_epilogue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44592, "Length": 474}
{"ground_truth": ["", "int", "use_return_insn", "(", "int", "iscond", ",", "rtx", "sibling", ")", "{", "int", "regno", ";", "unsigned", "int", "func_type", ";", "unsigned", "long", "saved_int_regs", ";", "unsigned", "HOST_WIDE_INT", "stack_adjust", ";", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "func_type", "&", "(", "ARM_FT_VOLATILE", "|", "ARM_FT_NAKED", ")", ")", "return", "0", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", "&&", "frame_pointer_needed", ")", "return", "0", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "stack_adjust", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "current_function_pretend_args_size", "||", "cfun", "->", "machine", "->", "uses_anonymous_args", "||", "current_function_calls_eh_return", "||", "current_function_calls_alloca", "||", "!", "(", "stack_adjust", "==", "0", "||", "(", "frame_pointer_needed", "&&", "stack_adjust", "==", "4", ")", ")", ")", "return", "0", ";", "saved_int_regs", "=", "arm_compute_save_reg_mask", "(", ")", ";", "if", "(", "stack_adjust", "==", "4", "&&", "!", "arm_arch5", ")", "{", "if", "(", "!", "call_used_regs", "[", "3", "]", ")", "return", "0", ";", "if", "(", "arm_size_return_regs", "(", ")", ">=", "(", "4", "*", "UNITS_PER_WORD", ")", ")", "return", "0", ";", "if", "(", "sibling", ")", "{", "gcc_assert", "(", "GET_CODE", "(", "sibling", ")", "==", "CALL_INSN", ")", ";", "if", "(", "find_regno_fusage", "(", "sibling", ",", "USE", ",", "3", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&", "0x7", ")", "return", "0", ";", "}", "if", "(", "TARGET_INTERWORK", "&&", "saved_int_regs", "!=", "0", ")", "return", "0", ";", "if", "(", "iscond", "&&", "arm_tune_strongarm", ")", "{", "if", "(", "saved_int_regs", "!=", "0", "&&", "saved_int_regs", "!=", "(", "1", "<<", "LR_REGNUM", ")", ")", "return", "0", ";", "if", "(", "flag_pic", "&&", "regs_ever_live", "[", "PIC_OFFSET_TABLE_REGNUM", "]", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&&", "!", "(", "saved_int_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "return", "0", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_FPA", ")", "for", "(", "regno", "=", "FIRST_FPA_REGNUM", ";", "regno", "<=", "LAST_FPA_REGNUM", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", ")", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<=", "LAST_VFP_REGNUM", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "regs_ever_live", "[", "regno", "]", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "'s", "epilogue", "can", "be", "output", "as", "RTL", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "4", "0", "4", "3", "0", "4", "0", "3", "0", "0x7", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "0", "0", "1"], "File": "arm3", "Func": "use_return_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44593, "Length": 371}
{"ground_truth": ["", "static", "int", "vfp_emit_fstmx", "(", "int", "base_reg", ",", "int", "count", ")", "{", "rtx", "par", ";", "rtx", "dwarf", ";", "rtx", "tmp", ",", "reg", ";", "int", "i", ";", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "{", "if", "(", "base_reg", "==", "LAST_VFP_REGNUM", "-", "3", ")", "base_reg", "-=", "2", ";", "count", "++", ";", "}", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", ")", ")", ";", "dwarf", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "1", ")", ")", ";", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "base_reg", ")", ";", "base_reg", "+=", "2", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "BLKmode", ",", "gen_rtx_PRE_DEC", "(", "BLKmode", ",", "stack_pointer_rtx", ")", ")", ",", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "stack_pointer_rtx", ",", "gen_rtx_PLUS", "(", "SImode", ",", "stack_pointer_rtx", ",", "GEN_INT", "(", "-", "(", "count", "*", "8", "+", "4", ")", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "0", ")", "=", "tmp", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "DFmode", ",", "stack_pointer_rtx", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "1", ")", "=", "tmp", ";", "for", "(", "i", "=", "1", ";", "i", "<", "count", ";", "i", "++", ")", "{", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "base_reg", ")", ";", "base_reg", "+=", "2", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "DFmode", ",", "gen_rtx_PLUS", "(", "SImode", ",", "stack_pointer_rtx", ",", "GEN_INT", "(", "i", "*", "8", ")", ")", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "i", "+", "1", ")", "=", "tmp", ";", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "REG_NOTES", "(", "par", ")", "=", "gen_rtx_EXPR_LIST", "(", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ",", "REG_NOTES", "(", "par", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "par", ")", "=", "1", ";", "return", "count", "*", "8", "+", "4", ";", "}", ""], "natrual_language": ["Emit", "RTL", "to", "save", "block", "of", "VFP", "register", "pairs", "to", "the", "stack", ".", "Returns", "the", "number", "of", "bytes", "pushed", "."], "TS_V_token": ["arm", "2", "3", "2", "1", "2", "0", "0", "1", "8", "4", "1", "0", "0", "1", "0", "1", "1", "2", "0", "8", "1", "0", "1", "1", "8", "4"], "File": "arm3", "Func": "vfp_emit_fstmx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44594, "Length": 341}
{"ground_truth": ["", "const", "char", "*", "vfp_output_fstmx", "(", "rtx", "*", "operands", ")", "{", "char", "pattern", "[", "100", "]", ";", "int", "p", ";", "int", "base", ";", "int", "i", ";", "strcpy", "(", "pattern", ",", "\"fstmfdx\\t%m0!, {%P1\"", ")", ";", "p", "=", "strlen", "(", "pattern", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "operands", "[", "1", "]", ")", "==", "REG", ")", ";", "base", "=", "(", "REGNO", "(", "operands", "[", "1", "]", ")", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ";", "for", "(", "i", "=", "1", ";", "i", "<", "XVECLEN", "(", "operands", "[", "2", "]", ",", "0", ")", ";", "i", "++", ")", "{", "p", "+=", "sprintf", "(", "&", "pattern", "[", "p", "]", ",", "\", d%d\"", ",", "base", "+", "i", ")", ";", "}", "strcpy", "(", "&", "pattern", "[", "p", "]", ",", "\"}\"", ")", ";", "output_asm_insn", "(", "pattern", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "the", "assembly", "for", "a", "store", "multiple", "."], "TS_V_token": ["arm", "100", "\"fstmfdx\\t%m0!, {%P1\"", "1", "1", "2", "1", "2", "0", "\", d%d\"", "\"}\"", "\"\""], "File": "arm3", "Func": "vfp_output_fstmx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44595, "Length": 130}
{"ground_truth": ["", "enum", "reg_class", "vfp_secondary_reload_class", "(", "enum", "machine_mode", "mode", ",", "rtx", "x", ")", "{", "if", "(", "arm_coproc_mem_operand", "(", "x", ",", "FALSE", ")", "||", "s_register_operand", "(", "x", ",", "mode", ")", ")", "return", "NO_REGS", ";", "return", "GENERAL_REGS", ";", "}", ""], "natrual_language": ["Return", "GENERAL_REGS", "if", "a", "scratch", "register", "required", "to", "reload", "x", "to/from", "VFP", "registers", ".", "Otherwise", "return", "NO_REGS", "."], "TS_V_token": ["arm"], "File": "arm3", "Func": "vfp_secondary_reload_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44596, "Length": 35}
{"ground_truth": ["", "static", "void", "aapcs_layout_arg", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "bool", "named", ")", "{", "int", "nregs", ",", "nregs2", ";", "int", "ncrn", ";", "if", "(", "pcum", "->", "aapcs_arg_processed", ")", "return", ";", "pcum", "->", "aapcs_arg_processed", "=", "true", ";", "if", "(", "!", "named", ")", "return", ";", "if", "(", "pcum", "->", "pcs_variant", "!=", "ARM_PCS_AAPCS", ")", "{", "int", "slot", "=", "aapcs_select_call_coproc", "(", "pcum", ",", "mode", ",", "type", ")", ";", "pcum", "->", "aapcs_cprc_slot", "=", "slot", ";", "if", "(", "slot", ">=", "0", ")", "{", "if", "(", "!", "pcum", "->", "aapcs_cprc_failed", "[", "slot", "]", ")", "{", "if", "(", "aapcs_cp_arg_layout", "[", "slot", "]", ".", "allocate", "(", "pcum", ",", "mode", ",", "type", ")", ")", "return", ";", "pcum", "->", "aapcs_cprc_failed", "[", "slot", "]", "=", "true", ";", "pcum", "->", "can_split", "=", "false", ";", "}", "gcc_assert", "(", "pcum", "->", "can_split", "==", "false", ")", ";", "return", ";", "}", "}", "ncrn", "=", "pcum", "->", "aapcs_ncrn", ";", "if", "(", "(", "ncrn", "&", "1", ")", "&&", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ")", "ncrn", "++", ";", "nregs", "=", "ARM_NUM_REGS2", "(", "mode", ",", "type", ")", ";", "gcc_assert", "(", "nregs", ">=", "0", ")", ";", "nregs2", "=", "nregs", "?", "nregs", ":", "1", ";", "if", "(", "ncrn", "+", "nregs2", "<=", "NUM_ARG_REGS", ")", "{", "pcum", "->", "aapcs_reg", "=", "gen_rtx_REG", "(", "mode", ",", "ncrn", ")", ";", "pcum", "->", "aapcs_next_ncrn", "=", "ncrn", "+", "nregs", ";", "return", ";", "}", "if", "(", "ncrn", "<", "NUM_ARG_REGS", "&&", "pcum", "->", "can_split", ")", "{", "pcum", "->", "aapcs_reg", "=", "gen_rtx_REG", "(", "mode", ",", "ncrn", ")", ";", "pcum", "->", "aapcs_next_ncrn", "=", "NUM_ARG_REGS", ";", "pcum", "->", "aapcs_partial", "=", "(", "NUM_ARG_REGS", "-", "ncrn", ")", "*", "UNITS_PER_WORD", ";", "return", ";", "}", "pcum", "->", "aapcs_next_ncrn", "=", "NUM_ARG_REGS", ";", "return", ";", "}", ""], "natrual_language": ["Lay", "out", "a", "function", "argument", "using", "the", "AAPCS", "rules", ".", "The", "rule", "numbers", "referred", "to", "here", "are", "those", "in", "the", "AAPCS", "."], "TS_V_token": ["arm", "0", "1", "0", "1"], "File": "arm4", "Func": "aapcs_layout_arg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44597, "Length": 270}
{"ground_truth": ["", "static", "bool", "aapcs_vfp_allocate", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "machine_mode", "mode", ",", "const_tree", "type", "ATTRIBUTE_UNUSED", ")", "{", "int", "shift", "=", "GET_MODE_SIZE", "(", "pcum", "->", "aapcs_vfp_rmode", ")", "/", "GET_MODE_SIZE", "(", "SFmode", ")", ";", "unsigned", "mask", "=", "(", "1", "<<", "(", "shift", "*", "pcum", "->", "aapcs_vfp_rcount", ")", ")", "-", "1", ";", "int", "regno", ";", "for", "(", "regno", "=", "0", ";", "regno", "<", "NUM_VFP_ARG_REGS", ";", "regno", "+=", "shift", ")", "if", "(", "(", "(", "pcum", "->", "aapcs_vfp_regs_free", ">>", "regno", ")", "&", "mask", ")", "==", "mask", ")", "{", "pcum", "->", "aapcs_vfp_reg_alloc", "=", "mask", "<<", "regno", ";", "if", "(", "mode", "==", "BLKmode", "||", "(", "mode", "==", "TImode", "&&", "!", "TARGET_NEON", ")", "||", "!", "arm_hard_regno_mode_ok", "(", "FIRST_VFP_REGNUM", "+", "regno", ",", "mode", ")", ")", "{", "int", "i", ";", "int", "rcount", "=", "pcum", "->", "aapcs_vfp_rcount", ";", "int", "rshift", "=", "shift", ";", "machine_mode", "rmode", "=", "pcum", "->", "aapcs_vfp_rmode", ";", "rtx", "par", ";", "if", "(", "!", "TARGET_NEON", ")", "{", "if", "(", "rmode", "==", "V2SImode", ")", "rmode", "=", "DImode", ";", "else", "if", "(", "rmode", "==", "V4SImode", ")", "{", "rmode", "=", "DImode", ";", "rcount", "*=", "2", ";", "rshift", "/=", "2", ";", "}", "}", "par", "=", "gen_rtx_PARALLEL", "(", "mode", ",", "rtvec_alloc", "(", "rcount", ")", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "rcount", ";", "i", "++", ")", "{", "rtx", "tmp", "=", "gen_rtx_REG", "(", "rmode", ",", "FIRST_VFP_REGNUM", "+", "regno", "+", "i", "*", "rshift", ")", ";", "tmp", "=", "gen_rtx_EXPR_LIST", "(", "VOIDmode", ",", "tmp", ",", "GEN_INT", "(", "i", "*", "GET_MODE_SIZE", "(", "rmode", ")", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "tmp", ";", "}", "pcum", "->", "aapcs_reg", "=", "par", ";", "}", "else", "pcum", "->", "aapcs_reg", "=", "gen_rtx_REG", "(", "mode", ",", "FIRST_VFP_REGNUM", "+", "regno", ")", ";", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "the", "allocate", "field", "in", "aapcs_cp_arg_layout", ".", "See", "the", "comment", "there", "for", "the", "behaviour", "of", "this", "function", "."], "TS_V_token": ["arm", "1", "1", "0", "2", "2", "0", "0"], "File": "arm4", "Func": "aapcs_vfp_allocate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44598, "Length": 281}
{"ground_truth": ["", "static", "rtx", "aapcs_vfp_allocate_return_reg", "(", "enum", "arm_pcs", "pcs_variant", "ATTRIBUTE_UNUSED", ",", "machine_mode", "mode", ",", "const_tree", "type", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "!", "use_vfp_abi", "(", "pcs_variant", ",", "false", ")", ")", "return", "NULL", ";", "if", "(", "mode", "==", "BLKmode", "||", "(", "mode", "==", "TImode", "&&", "!", "TARGET_NEON", ")", ")", "{", "int", "count", ";", "machine_mode", "ag_mode", ";", "int", "i", ";", "rtx", "par", ";", "int", "shift", ";", "aapcs_vfp_is_call_or_return_candidate", "(", "pcs_variant", ",", "mode", ",", "type", ",", "&", "ag_mode", ",", "&", "count", ")", ";", "if", "(", "!", "TARGET_NEON", ")", "{", "if", "(", "ag_mode", "==", "V2SImode", ")", "ag_mode", "=", "DImode", ";", "else", "if", "(", "ag_mode", "==", "V4SImode", ")", "{", "ag_mode", "=", "DImode", ";", "count", "*=", "2", ";", "}", "}", "shift", "=", "GET_MODE_SIZE", "(", "ag_mode", ")", "/", "GET_MODE_SIZE", "(", "SFmode", ")", ";", "par", "=", "gen_rtx_PARALLEL", "(", "mode", ",", "rtvec_alloc", "(", "count", ")", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "{", "rtx", "tmp", "=", "gen_rtx_REG", "(", "ag_mode", ",", "FIRST_VFP_REGNUM", "+", "i", "*", "shift", ")", ";", "tmp", "=", "gen_rtx_EXPR_LIST", "(", "VOIDmode", ",", "tmp", ",", "GEN_INT", "(", "i", "*", "GET_MODE_SIZE", "(", "ag_mode", ")", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "tmp", ";", "}", "return", "par", ";", "}", "return", "gen_rtx_REG", "(", "mode", ",", "FIRST_VFP_REGNUM", ")", ";", "}", ""], "natrual_language": ["Implement", "the", "allocate_return_reg", "field", "in", "aapcs_cp_arg_layout", ".", "See", "the", "comment", "there", "for", "the", "behaviour", "of", "this", "function", "."], "TS_V_token": ["arm", "2", "0", "0"], "File": "arm4", "Func": "aapcs_vfp_allocate_return_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44599, "Length": 206}
{"ground_truth": ["", "static", "bool", "aapcs_vfp_is_call_or_return_candidate", "(", "enum", "arm_pcs", "pcs_variant", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "machine_mode", "*", "base_mode", ",", "int", "*", "count", ")", "{", "machine_mode", "new_mode", "=", "VOIDmode", ";", "if", "(", "type", ")", "{", "int", "ag_count", "=", "aapcs_vfp_sub_candidate", "(", "type", ",", "&", "new_mode", ")", ";", "if", "(", "ag_count", ">", "0", "&&", "ag_count", "<=", "4", ")", "*", "count", "=", "ag_count", ";", "else", "return", "false", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_FLOAT", ")", "{", "*", "count", "=", "1", ";", "new_mode", "=", "mode", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_COMPLEX_FLOAT", ")", "{", "*", "count", "=", "2", ";", "new_mode", "=", "(", "mode", "==", "DCmode", "?", "DFmode", ":", "SFmode", ")", ";", "}", "else", "return", "false", ";", "if", "(", "!", "use_vfp_abi", "(", "pcs_variant", ",", "ARM_NUM_REGS", "(", "new_mode", ")", ">", "1", ")", ")", "return", "false", ";", "*", "base_mode", "=", "new_mode", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "true", "if", "an", "argument", "whose", "type", "is", "TYPE", ",", "or", "mode", "is", "MODE", ",", "is", "suitable", "for", "passing", "or", "returning", "in", "VFP", "registers", "for", "the", "PCS", "variant", "selected", ".", "If", "it", "is", ",", "then", "*", "BASE_MODE", "is", "updated", "to", "contain", "a", "machine", "mode", "describing", "each", "element", "of", "the", "argument", "'s", "type", "and", "*", "COUNT", "to", "hold", "the", "number", "of", "such", "elements", "."], "TS_V_token": ["arm", "0", "4", "1", "2", "1"], "File": "arm4", "Func": "aapcs_vfp_is_call_or_return_candidate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44600, "Length": 159}
{"ground_truth": ["", "static", "bool", "aarch_macro_fusion_pair_p", "(", "rtx_insn", "*", "prev", ",", "rtx_insn", "*", "curr", ")", "{", "rtx", "set_dest", ";", "rtx", "prev_set", "=", "single_set", "(", "prev", ")", ";", "rtx", "curr_set", "=", "single_set", "(", "curr", ")", ";", "if", "(", "!", "prev_set", "||", "!", "curr_set", ")", "return", "false", ";", "if", "(", "any_condjump_p", "(", "curr", ")", ")", "return", "false", ";", "if", "(", "!", "arm_macro_fusion_p", "(", ")", ")", "return", "false", ";", "if", "(", "current_tune", "->", "fuseable_ops", "&", "ARM_FUSE_MOVW_MOVT", ")", "{", "set_dest", "=", "SET_DEST", "(", "curr_set", ")", ";", "if", "(", "GET_MODE", "(", "set_dest", ")", "!=", "SImode", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "set_dest", ")", "==", "ZERO_EXTRACT", ")", "{", "if", "(", "CONST_INT_P", "(", "SET_SRC", "(", "curr_set", ")", ")", "&&", "CONST_INT_P", "(", "SET_SRC", "(", "prev_set", ")", ")", "&&", "REG_P", "(", "XEXP", "(", "set_dest", ",", "0", ")", ")", "&&", "REG_P", "(", "SET_DEST", "(", "prev_set", ")", ")", "&&", "REGNO", "(", "XEXP", "(", "set_dest", ",", "0", ")", ")", "==", "REGNO", "(", "SET_DEST", "(", "prev_set", ")", ")", ")", "return", "true", ";", "}", "else", "if", "(", "GET_CODE", "(", "SET_SRC", "(", "curr_set", ")", ")", "==", "LO_SUM", "&&", "REG_P", "(", "SET_DEST", "(", "curr_set", ")", ")", "&&", "REG_P", "(", "SET_DEST", "(", "prev_set", ")", ")", "&&", "GET_CODE", "(", "SET_SRC", "(", "prev_set", ")", ")", "==", "HIGH", "&&", "REGNO", "(", "SET_DEST", "(", "curr_set", ")", ")", "==", "REGNO", "(", "SET_DEST", "(", "prev_set", ")", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_MACRO_FUSION_PAIR_P", ".", "Return", "true", "if", "PREV", "and", "CURR", "should", "be", "kept", "together", "during", "scheduling", "."], "TS_V_token": ["arm", "0", "0"], "File": "arm4", "Func": "aarch_macro_fusion_pair_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44601, "Length": 222}
{"ground_truth": ["", "static", "bool", "any_sibcall_could_use_r3", "(", "void", ")", "{", "edge_iterator", "ei", ";", "edge", "e", ";", "if", "(", "!", "crtl", "->", "tail_call_emit", ")", "return", "false", ";", "FOR_EACH_EDGE", "(", "e", ",", "ei", ",", "EXIT_BLOCK_PTR_FOR_FN", "(", "cfun", ")", "->", "preds", ")", "if", "(", "e", "->", "flags", "&", "EDGE_SIBCALL", ")", "{", "rtx", "call", "=", "BB_END", "(", "e", "->", "src", ")", ";", "if", "(", "!", "CALL_P", "(", "call", ")", ")", "call", "=", "prev_nonnote_nondebug_insn", "(", "call", ")", ";", "gcc_assert", "(", "CALL_P", "(", "call", ")", "&&", "SIBLING_CALL_P", "(", "call", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "call", ",", "USE", ",", "3", ")", "||", "is_indirect_tailcall_p", "(", "call", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Return", "true", "if", "r3", "is", "used", "by", "any", "of", "the", "tail", "call", "insns", "in", "the", "current", "function", "."], "TS_V_token": ["arm", "3"], "File": "arm4", "Func": "any_sibcall_could_use_r3", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44602, "Length": 107}
{"ground_truth": ["", "static", "bool", "arm_9e_rtx_costs", "(", "rtx", "x", ",", "enum", "rtx_code", "code", ",", "enum", "rtx_code", "outer_code", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB1", ")", "{", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "arm_arch6m", "&&", "arm_m_profile_small_mul", ")", "*", "total", "=", "COSTS_N_INSNS", "(", "32", ")", ";", "else", "*", "total", "=", "COSTS_N_INSNS", "(", "3", ")", ";", "return", "true", ";", "default", ":", "*", "total", "=", "thumb1_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "mode", "==", "DImode", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "ZERO_EXTEND", "||", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "SIGN_EXTEND", ")", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "2", ")", ";", "return", "false", ";", "}", "if", "(", "mode", "==", "DImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "5", ")", ";", "return", "false", ";", "}", "if", "(", "mode", "==", "SImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "2", ")", ";", "return", "false", ";", "}", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", ")", "{", "if", "(", "TARGET_HARD_FLOAT", "&&", "(", "mode", "==", "SFmode", "||", "(", "mode", "==", "DFmode", "&&", "!", "TARGET_VFP_SINGLE", ")", ")", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "1", ")", ";", "return", "false", ";", "}", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "20", ")", ";", "return", "false", ";", "default", ":", "return", "arm_rtx_costs_1", "(", "x", ",", "outer_code", ",", "total", ",", "speed", ")", ";", "}", "}", ""], "natrual_language": ["RTX", "costs", "for", "9e", "(", "and", "later", ")", "cores", "."], "TS_V_token": ["arm", "32", "3", "0", "1", "0", "0", "2", "5", "2", "1", "20"], "File": "arm4", "Func": "arm_9e_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44603, "Length": 272}
{"ground_truth": ["", "static", "void", "arm_add_cfa_adjust_cfa_note", "(", "rtx", "insn", ",", "int", "size", ",", "rtx", "dest", ",", "rtx", "src", ")", "{", "rtx", "dwarf", ";", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "dwarf", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "dest", ",", "plus_constant", "(", "Pmode", ",", "src", ",", "size", ")", ")", ";", "add_reg_note", "(", "insn", ",", "REG_CFA_ADJUST_CFA", ",", "dwarf", ")", ";", "}", ""], "natrual_language": ["Add", "a", "REG_CFA_ADJUST_CFA", "REG", "note", "to", "INSN", ".", "SIZE", "is", "the", "offset", "to", "be", "adjusted", ".", "DEST", "and", "SRC", "might", "be", "stack_pointer_rtx", "or", "hard_frame_pointer_rtx", "."], "TS_V_token": ["arm", "1"], "File": "arm4", "Func": "arm_add_cfa_adjust_cfa_note", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44604, "Length": 55}
{"ground_truth": ["", "static", "int", "arm_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "rtx", "link", ",", "rtx_insn", "*", "dep", ",", "int", "cost", ")", "{", "rtx", "i_pat", ",", "d_pat", ";", "if", "(", "TARGET_THUMB1", "&&", "REG_NOTE_KIND", "(", "link", ")", "==", "0", "&&", "recog_memoized", "(", "insn", ")", "==", "CODE_FOR_cbranchsi4_insn", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", "&&", "get_attr_conds", "(", "dep", ")", "==", "CONDS_SET", ")", "return", "0", ";", "if", "(", "current_tune", "->", "sched_adjust_cost", "!=", "NULL", ")", "{", "if", "(", "!", "current_tune", "->", "sched_adjust_cost", "(", "insn", ",", "link", ",", "dep", ",", "&", "cost", ")", ")", "return", "cost", ";", "}", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_ANTI", "||", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_OUTPUT", ")", "return", "0", ";", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "0", "&&", "CALL_P", "(", "insn", ")", ")", "return", "1", ";", "if", "(", "(", "i_pat", "=", "single_set", "(", "insn", ")", ")", "!=", "NULL", "&&", "MEM_P", "(", "SET_SRC", "(", "i_pat", ")", ")", "&&", "(", "d_pat", "=", "single_set", "(", "dep", ")", ")", "!=", "NULL", "&&", "MEM_P", "(", "SET_DEST", "(", "d_pat", ")", ")", ")", "{", "rtx", "src_mem", "=", "XEXP", "(", "SET_SRC", "(", "i_pat", ")", ",", "0", ")", ";", "if", "(", "(", "GET_CODE", "(", "src_mem", ")", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "src_mem", ")", ")", "||", "reg_mentioned_p", "(", "stack_pointer_rtx", ",", "src_mem", ")", "||", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "src_mem", ")", "||", "reg_mentioned_p", "(", "hard_frame_pointer_rtx", ",", "src_mem", ")", ")", "return", "1", ";", "}", "return", "cost", ";", "}", ""], "natrual_language": ["This", "function", "implements", "the", "target", "macro", "TARGET_SCHED_ADJUST_COST", ".", "It", "corrects", "the", "value", "of", "COST", "based", "on", "the", "relationship", "between", "INSN", "and", "DEP", "through", "the", "dependence", "LINK", ".", "It", "returns", "the", "new", "value", ".", "There", "is", "a", "per-core", "adjust_cost", "hook", "to", "adjust", "scheduler", "costs", "and", "the", "per-core", "hook", "can", "choose", "to", "completely", "override", "the", "generic", "adjust_cost", "function", ".", "Only", "put", "bits", "of", "code", "into", "arm_adjust_cost", "that", "are", "common", "across", "all", "cores", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "1"], "File": "arm4", "Func": "arm_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44605, "Length": 224}
{"ground_truth": ["", "int", "arm_apply_result_size", "(", "void", ")", "{", "int", "size", "=", "16", ";", "if", "(", "TARGET_32BIT", ")", "{", "if", "(", "TARGET_HARD_FLOAT_ABI", "&&", "TARGET_VFP", ")", "size", "+=", "32", ";", "if", "(", "TARGET_IWMMXT_ABI", ")", "size", "+=", "8", ";", "}", "return", "size", ";", "}", ""], "natrual_language": ["Determine", "the", "amount", "of", "memory", "needed", "to", "store", "the", "possible", "return", "registers", "of", "an", "untyped", "call", "."], "TS_V_token": ["arm", "16", "32", "8"], "File": "arm4", "Func": "arm_apply_result_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44606, "Length": 39}
{"ground_truth": ["", "static", "bool", "arm_array_mode_supported_p", "(", "machine_mode", "mode", ",", "unsigned", "HOST_WIDE_INT", "nelems", ")", "{", "if", "(", "TARGET_NEON", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode", ")", ")", "&&", "(", "nelems", ">=", "2", "&&", "nelems", "<=", "4", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "array_mode_supported_p", "."], "TS_V_token": ["arm", "2", "4"], "File": "arm4", "Func": "arm_array_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44607, "Length": 45}
{"ground_truth": ["", "static", "unsigned", "HOST_WIDE_INT", "arm_asan_shadow_offset", "(", "void", ")", "{", "return", "(", "unsigned", "HOST_WIDE_INT", ")", "1", "<<", "29", ";", "}", ""], "natrual_language": ["Implement", "the", "TARGET_ASAN_SHADOW_OFFSET", "hook", "."], "TS_V_token": ["arm", "1", "29"], "File": "arm4", "Func": "arm_asan_shadow_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44608, "Length": 18}
{"ground_truth": ["", "static", "void", "arm_asm_init_sections", "(", "void", ")", "{", "exception_section", "=", "get_unnamed_section", "(", "0", ",", "output_section_asm_op", ",", "\"\\t.handlerdata\"", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_ASM_INITIALIZE_SECTIONS", "."], "TS_V_token": ["arm", "0", "\"\\t.handlerdata\""], "File": "arm4", "Func": "arm_asm_init_sections", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44609, "Length": 19}
{"ground_truth": ["", "static", "void", "arm_asm_trampoline_template", "(", "FILE", "*", "f", ")", "{", "if", "(", "TARGET_ARM", ")", "{", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #0]\\n\"", ",", "STATIC_CHAIN_REGNUM", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #0]\\n\"", ",", "PC_REGNUM", ",", "PC_REGNUM", ")", ";", "}", "else", "if", "(", "TARGET_THUMB2", ")", "{", "asm_fprintf", "(", "f", ",", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", ",", "STATIC_CHAIN_REGNUM", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", ",", "PC_REGNUM", ",", "PC_REGNUM", ")", ";", "}", "else", "{", "ASM_OUTPUT_ALIGN", "(", "f", ",", "2", ")", ";", "fprintf", "(", "f", ",", "\"\\t.code\\t16\\n\"", ")", ";", "fprintf", "(", "f", ",", "\".Ltrampoline_start:\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tpush\\t{r0, r1}\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\tr0, [%r, #8]\\n\"", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tmov\\t%r, r0\\n\"", ",", "STATIC_CHAIN_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\tr0, [%r, #8]\\n\"", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tstr\\tr0, [%r, #4]\\n\"", ",", "SP_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tpop\\t{r0, %r}\\n\"", ",", "PC_REGNUM", ")", ";", "}", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "}", ""], "natrual_language": ["Output", "assembler", "code", "for", "a", "block", "containing", "the", "constant", "parts", "of", "a", "trampoline", ",", "leaving", "space", "for", "the", "variable", "parts", ".", "On", "the", "ARM", ",", "(", "if", "r8", "is", "the", "static", "chain", "regnum", ",", "and", "remembering", "that", "referencing", "pc", "adds", "an", "offset", "of", "8", ")", "the", "trampoline", "looks", "like", ":", "ldr", "r8", ",", "[", "pc", ",", "#", "0", "]", "ldr", "pc", ",", "[", "pc", "]", ".word", "static", "chain", "value", ".word", "function", "'s", "address", "XXX", "FIXME", ":", "When", "the", "trampoline", "returns", ",", "r8", "will", "be", "clobbered", "."], "TS_V_token": ["arm", "\"\\tldr\\t%r, [%r, #0]\\n\"", "\"\\tldr\\t%r, [%r, #0]\\n\"", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", "2", "\"\\t.code\\t16\\n\"", "\".Ltrampoline_start:\\n\"", "\"\\tpush\\t{r0, r1}\\n\"", "\"\\tldr\\tr0, [%r, #8]\\n\"", "\"\\tmov\\t%r, r0\\n\"", "\"\\tldr\\tr0, [%r, #8]\\n\"", "\"\\tstr\\tr0, [%r, #4]\\n\"", "\"\\tpop\\t{r0, %r}\\n\""], "File": "arm4", "Func": "arm_asm_trampoline_template", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44610, "Length": 157}
{"ground_truth": ["", "static", "bool", "arm_assemble_integer", "(", "rtx", "x", ",", "unsigned", "int", "size", ",", "int", "aligned_p", ")", "{", "machine_mode", "mode", ";", "if", "(", "size", "==", "UNITS_PER_WORD", "&&", "aligned_p", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "NEED_GOT_RELOC", "&&", "flag_pic", "&&", "making_const_table", "&&", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "||", "GET_CODE", "(", "x", ")", "==", "LABEL_REF", ")", ")", "{", "if", "(", "!", "arm_pic_data_is_text_relative", "||", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "&&", "!", "SYMBOL_REF_LOCAL_P", "(", "x", ")", ")", ")", "fputs", "(", "\"(GOT)\"", ",", "asm_out_file", ")", ";", "else", "fputs", "(", "\"(GOTOFF)\"", ",", "asm_out_file", ")", ";", "}", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "true", ";", "}", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "arm_vector_mode_supported_p", "(", "mode", ")", ")", "{", "int", "i", ",", "units", ";", "gcc_assert", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", ";", "units", "=", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "size", "=", "GET_MODE_SIZE", "(", "GET_MODE_INNER", "(", "mode", ")", ")", ";", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", ")", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_integer", "(", "elt", ",", "size", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ",", "1", ")", ";", "}", "else", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "REAL_VALUE_TYPE", "rval", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "rval", ",", "elt", ")", ";", "assemble_real", "(", "rval", ",", "GET_MODE_INNER", "(", "mode", ")", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ")", ";", "}", "return", "true", ";", "}", "return", "default_assemble_integer", "(", "x", ",", "size", ",", "aligned_p", ")", ";", "}", ""], "natrual_language": ["Target", "hook", "for", "assembling", "integer", "objects", ".", "The", "ARM", "version", "needs", "to", "handle", "word-sized", "values", "specially", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "\"(GOT)\"", "\"(GOTOFF)\"", "0", "0", "1", "0", "0"], "File": "arm4", "Func": "arm_assemble_integer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44611, "Length": 284}
{"ground_truth": ["", "int", "arm_attr_length_move_neon", "(", "rtx_insn", "*", "insn", ")", "{", "rtx", "reg", ",", "mem", ",", "addr", ";", "int", "load", ";", "machine_mode", "mode", ";", "extract_insn_cached", "(", "insn", ")", ";", "if", "(", "REG_P", "(", "recog_data", ".", "operand", "[", "0", "]", ")", "&&", "REG_P", "(", "recog_data", ".", "operand", "[", "1", "]", ")", ")", "{", "mode", "=", "GET_MODE", "(", "recog_data", ".", "operand", "[", "0", "]", ")", ";", "switch", "(", "mode", ")", "{", "case", "EImode", ":", "case", "OImode", ":", "return", "8", ";", "case", "CImode", ":", "return", "12", ";", "case", "XImode", ":", "return", "16", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "load", "=", "REG_P", "(", "recog_data", ".", "operand", "[", "0", "]", ")", ";", "reg", "=", "recog_data", ".", "operand", "[", "!", "load", "]", ";", "mem", "=", "recog_data", ".", "operand", "[", "load", "]", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "mode", "=", "GET_MODE", "(", "reg", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "addr", ",", "0", ")", ")", "==", "PLUS", ")", "addr", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "LABEL_REF", "||", "GET_CODE", "(", "addr", ")", "==", "PLUS", ")", "{", "int", "insns", "=", "HARD_REGNO_NREGS", "(", "REGNO", "(", "reg", ")", ",", "mode", ")", "/", "2", ";", "return", "insns", "*", "4", ";", "}", "else", "return", "4", ";", "}", ""], "natrual_language": ["Compute", "and", "return", "the", "length", "of", "neon_mov", "<", "mode", ">", ",", "where", "<", "mode", ">", "is", "one", "of", "VSTRUCT", "modes", ":", "EI", ",", "OI", ",", "CI", "or", "XI", "."], "TS_V_token": ["arm", "0", "1", "0", "8", "12", "16", "0", "0", "0", "0", "2", "4", "4"], "File": "arm4", "Func": "arm_attr_length_move_neon", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44612, "Length": 223}
{"ground_truth": ["", "static", "int", "arm_barrier_cost", "(", "rtx", "insn", ")", "{", "int", "base_cost", "=", "50", ";", "rtx", "next", "=", "next_nonnote_insn", "(", "insn", ")", ";", "if", "(", "next", "!=", "NULL", "&&", "LABEL_P", "(", "next", ")", ")", "base_cost", "-=", "20", ";", "switch", "(", "GET_CODE", "(", "insn", ")", ")", "{", "case", "CODE_LABEL", ":", "return", "50", ";", "case", "INSN", ":", "case", "CALL_INSN", ":", "return", "base_cost", ";", "case", "JUMP_INSN", ":", "return", "base_cost", "-", "10", ";", "default", ":", "return", "base_cost", "+", "10", ";", "}", "}", ""], "natrual_language": ["Return", "the", "cost", "of", "forcibly", "inserting", "a", "barrier", "after", "INSN", "."], "TS_V_token": ["arm", "50", "20", "50", "10", "10"], "File": "arm4", "Func": "arm_barrier_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44613, "Length": 76}
{"ground_truth": ["", "static", "bool", "arm_block_set_unaligned_vect", "(", "rtx", "dstbase", ",", "unsigned", "HOST_WIDE_INT", "length", ",", "unsigned", "HOST_WIDE_INT", "value", ",", "unsigned", "HOST_WIDE_INT", "align", ")", "{", "unsigned", "int", "i", ",", "j", ",", "nelt_v16", ",", "nelt_v8", ",", "nelt_mode", ";", "rtx", "dst", ",", "mem", ";", "rtx", "val_elt", ",", "val_vec", ",", "reg", ";", "rtx", "rval", "[", "MAX_VECT_LEN", "]", ";", "rtx", "(", "*", "gen_func", ")", "(", "rtx", ",", "rtx", ")", ";", "machine_mode", "mode", ";", "unsigned", "HOST_WIDE_INT", "v", "=", "value", ";", "gcc_assert", "(", "(", "align", "&", "0x3", ")", "!=", "0", ")", ";", "nelt_v8", "=", "GET_MODE_NUNITS", "(", "V8QImode", ")", ";", "nelt_v16", "=", "GET_MODE_NUNITS", "(", "V16QImode", ")", ";", "if", "(", "length", ">=", "nelt_v16", ")", "{", "mode", "=", "V16QImode", ";", "gen_func", "=", "gen_movmisalignv16qi", ";", "}", "else", "{", "mode", "=", "V8QImode", ";", "gen_func", "=", "gen_movmisalignv8qi", ";", "}", "nelt_mode", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "gcc_assert", "(", "length", ">=", "nelt_mode", ")", ";", "if", "(", "!", "arm_block_set_vect_profit_p", "(", "length", ",", "align", ",", "mode", ")", ")", "return", "false", ";", "dst", "=", "copy_addr_to_reg", "(", "XEXP", "(", "dstbase", ",", "0", ")", ")", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "mode", ",", "dst", ",", "0", ")", ";", "v", "=", "sext_hwi", "(", "v", ",", "BITS_PER_WORD", ")", ";", "val_elt", "=", "GEN_INT", "(", "v", ")", ";", "for", "(", "j", "=", "0", ";", "j", "<", "nelt_mode", ";", "j", "++", ")", "rval", "[", "j", "]", "=", "val_elt", ";", "reg", "=", "gen_reg_rtx", "(", "mode", ")", ";", "val_vec", "=", "gen_rtx_CONST_VECTOR", "(", "mode", ",", "gen_rtvec_v", "(", "nelt_mode", ",", "rval", ")", ")", ";", "emit_move_insn", "(", "reg", ",", "val_vec", ")", ";", "for", "(", "i", "=", "0", ";", "(", "i", "+", "nelt_mode", "<=", "length", ")", ";", "i", "+=", "nelt_mode", ")", "{", "emit_insn", "(", "(", "*", "gen_func", ")", "(", "mem", ",", "reg", ")", ")", ";", "if", "(", "i", "+", "2", "*", "nelt_mode", "<=", "length", ")", "emit_insn", "(", "gen_add2_insn", "(", "dst", ",", "GEN_INT", "(", "nelt_mode", ")", ")", ")", ";", "}", "gcc_assert", "(", "(", "i", "+", "nelt_v8", ")", ">", "length", "||", "mode", "==", "V16QImode", ")", ";", "if", "(", "i", "+", "nelt_v8", "<", "length", ")", "{", "emit_insn", "(", "gen_add2_insn", "(", "dst", ",", "GEN_INT", "(", "length", "-", "i", ")", ")", ")", ";", "if", "(", "(", "length", "&", "1", ")", "!=", "0", "&&", "align", ">=", "2", ")", "set_mem_align", "(", "mem", ",", "BITS_PER_UNIT", ")", ";", "emit_insn", "(", "gen_movmisalignv16qi", "(", "mem", ",", "reg", ")", ")", ";", "}", "else", "if", "(", "i", "<", "length", "&&", "i", "+", "nelt_v8", ">=", "length", ")", "{", "if", "(", "mode", "==", "V16QImode", ")", "{", "reg", "=", "gen_lowpart", "(", "V8QImode", ",", "reg", ")", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "V8QImode", ",", "dst", ",", "0", ")", ";", "}", "emit_insn", "(", "gen_add2_insn", "(", "dst", ",", "GEN_INT", "(", "(", "length", "-", "i", ")", "+", "(", "nelt_mode", "-", "nelt_v8", ")", ")", ")", ")", ";", "if", "(", "(", "length", "&", "1", ")", "!=", "0", "&&", "align", ">=", "2", ")", "set_mem_align", "(", "mem", ",", "BITS_PER_UNIT", ")", ";", "emit_insn", "(", "gen_movmisalignv8qi", "(", "mem", ",", "reg", ")", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Set", "a", "block", "of", "memory", "using", "vectorization", "instructions", "for", "the", "unaligned", "case", ".", "We", "fill", "the", "first", "LENGTH", "bytes", "of", "the", "memory", "area", "starting", "from", "DSTBASE", "with", "byte", "constant", "VALUE", ".", "ALIGN", "is", "the", "alignment", "requirement", "of", "memory", ".", "Return", "TRUE", "if", "succeeded", "."], "TS_V_token": ["arm", "0x3", "0", "0", "0", "0", "0", "2", "1", "0", "2", "0", "1", "0", "2"], "File": "arm4", "Func": "arm_block_set_unaligned_vect", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44614, "Length": 470}
{"ground_truth": ["", "static", "int", "arm_builtin_vectorization_cost", "(", "enum", "vect_cost_for_stmt", "type_of_cost", ",", "tree", "vectype", ",", "int", "misalign", "ATTRIBUTE_UNUSED", ")", "{", "unsigned", "elements", ";", "switch", "(", "type_of_cost", ")", "{", "case", "scalar_stmt", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_stmt_cost", ";", "case", "scalar_load", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_load_cost", ";", "case", "scalar_store", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_store_cost", ";", "case", "vector_stmt", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_stmt_cost", ";", "case", "vector_load", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_align_load_cost", ";", "case", "vector_store", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_store_cost", ";", "case", "vec_to_scalar", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_to_scalar_cost", ";", "case", "scalar_to_vec", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_to_vec_cost", ";", "case", "unaligned_load", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_unalign_load_cost", ";", "case", "unaligned_store", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_unalign_store_cost", ";", "case", "cond_branch_taken", ":", "return", "current_tune", "->", "vec_costs", "->", "cond_taken_branch_cost", ";", "case", "cond_branch_not_taken", ":", "return", "current_tune", "->", "vec_costs", "->", "cond_not_taken_branch_cost", ";", "case", "vec_perm", ":", "case", "vec_promote_demote", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_stmt_cost", ";", "case", "vec_construct", ":", "elements", "=", "TYPE_VECTOR_SUBPARTS", "(", "vectype", ")", ";", "return", "elements", "/", "2", "+", "1", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Implement", "targetm.vectorize.builtin_vectorization_cost", "."], "TS_V_token": ["arm", "2", "1"], "File": "arm4", "Func": "arm_builtin_vectorization_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44615, "Length": 182}
{"ground_truth": ["", "static", "bool", "arm_cannot_copy_insn_p", "(", "rtx_insn", "*", "insn", ")", "{", "if", "(", "recog_memoized", "(", "insn", ")", "==", "CODE_FOR_tlscall", ")", "return", "true", ";", "subrtx_iterator", "::", "array_type", "array", ";", "FOR_EACH_SUBRTX", "(", "iter", ",", "array", ",", "PATTERN", "(", "insn", ")", ",", "ALL", ")", "{", "const_rtx", "x", "=", "*", "iter", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "(", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_PIC_BASE", "||", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_PIC_UNIFIED", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Must", "not", "copy", "any", "rtx", "that", "uses", "a", "pc-relative", "address", "."], "TS_V_token": ["arm", "1", "1"], "File": "arm4", "Func": "arm_cannot_copy_insn_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44616, "Length": 83}
{"ground_truth": ["", "static", "bool", "arm_cannot_force_const_mem", "(", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "rtx", "x", ")", "{", "rtx", "base", ",", "offset", ";", "if", "(", "ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P", ")", "{", "split_const", "(", "x", ",", "&", "base", ",", "&", "offset", ")", ";", "if", "(", "GET_CODE", "(", "base", ")", "==", "SYMBOL_REF", "&&", "!", "offset_within_block_p", "(", "base", ",", "INTVAL", "(", "offset", ")", ")", ")", "return", "true", ";", "}", "return", "arm_tls_referenced_p", "(", "x", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_CANNOT_FORCE_CONST_MEM", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_cannot_force_const_mem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44617, "Length": 64}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_func_type", "(", "void", ")", "{", "unsigned", "long", "type", "=", "ARM_FT_UNKNOWN", ";", "tree", "a", ";", "tree", "attr", ";", "gcc_assert", "(", "TREE_CODE", "(", "current_function_decl", ")", "==", "FUNCTION_DECL", ")", ";", "if", "(", "optimize", ">", "0", "&&", "(", "TREE_NOTHROW", "(", "current_function_decl", ")", "||", "!", "(", "flag_unwind_tables", "||", "(", "flag_exceptions", "&&", "arm_except_unwind_info", "(", "&", "global_options", ")", "!=", "UI_SJLJ", ")", ")", ")", "&&", "TREE_THIS_VOLATILE", "(", "current_function_decl", ")", ")", "type", "|=", "ARM_FT_VOLATILE", ";", "if", "(", "cfun", "->", "static_chain_decl", "!=", "NULL", ")", "type", "|=", "ARM_FT_NESTED", ";", "attr", "=", "DECL_ATTRIBUTES", "(", "current_function_decl", ")", ";", "a", "=", "lookup_attribute", "(", "\"naked\"", ",", "attr", ")", ";", "if", "(", "a", "!=", "NULL_TREE", ")", "type", "|=", "ARM_FT_NAKED", ";", "a", "=", "lookup_attribute", "(", "\"isr\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "a", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "type", "|=", "TARGET_INTERWORK", "?", "ARM_FT_INTERWORKED", ":", "ARM_FT_NORMAL", ";", "else", "type", "|=", "arm_isr_value", "(", "TREE_VALUE", "(", "a", ")", ")", ";", "return", "type", ";", "}", ""], "natrual_language": ["Computes", "the", "type", "of", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "\"naked\"", "\"isr\"", "\"interrupt\""], "File": "arm4", "Func": "arm_compute_func_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44618, "Length": 160}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_reg0_reg12_mask", "(", "void", ")", "{", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "long", "save_reg_mask", "=", "0", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "{", "unsigned", "int", "max_reg", ";", "if", "(", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_FIQ", ")", "max_reg", "=", "7", ";", "else", "max_reg", "=", "12", ";", "for", "(", "reg", "=", "0", ";", "reg", "<=", "max_reg", ";", "reg", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "||", "(", "!", "crtl", "->", "is_leaf", "&&", "call_used_regs", "[", "reg", "]", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "crtl", "->", "uses_pic_offset_table", ")", "save_reg_mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "}", "else", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "{", "if", "(", "frame_pointer_needed", ")", "save_reg_mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "df_regs_ever_live_p", "(", "ARM_HARD_FRAME_POINTER_REGNUM", ")", ")", "save_reg_mask", "|=", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "df_regs_ever_live_p", "(", "THUMB_HARD_FRAME_POINTER_REGNUM", ")", ")", "save_reg_mask", "|=", "1", "<<", "THUMB_HARD_FRAME_POINTER_REGNUM", ";", "}", "else", "{", "for", "(", "reg", "=", "0", ";", "reg", "<=", "11", ";", "reg", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "callee_saved_reg_p", "(", "reg", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "if", "(", "frame_pointer_needed", ")", "save_reg_mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "(", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", "||", "crtl", "->", "uses_pic_offset_table", ")", ")", "save_reg_mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "save_reg_mask", "|=", "1", ";", "}", "if", "(", "crtl", "->", "calls_eh_return", ")", "{", "unsigned", "int", "i", ";", "for", "(", "i", "=", "0", ";", ";", "i", "++", ")", "{", "reg", "=", "EH_RETURN_DATA_REGNO", "(", "i", ")", ";", "if", "(", "reg", "==", "INVALID_REGNUM", ")", "break", ";", "save_reg_mask", "|=", "1", "<<", "reg", ";", "}", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "the", "register", "save", "mask", "for", "registers", "0", "through", "12", "inclusive", ".", "This", "code", "is", "used", "by", "arm_compute_save_reg_mask", "."], "TS_V_token": ["arm", "0", "7", "12", "0", "1", "1", "1", "1", "1", "0", "11", "1", "1", "1", "1", "0", "1"], "File": "arm4", "Func": "arm_compute_save_reg0_reg12_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44619, "Length": 298}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_reg_mask", "(", "void", ")", "{", "unsigned", "int", "save_reg_mask", "=", "0", ";", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "TARGET_ARM", ")", "save_reg_mask", "|=", "(", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ")", "|", "(", "1", "<<", "IP_REGNUM", ")", "|", "(", "1", "<<", "LR_REGNUM", ")", "|", "(", "1", "<<", "PC_REGNUM", ")", ";", "save_reg_mask", "|=", "arm_compute_save_reg0_reg12_mask", "(", ")", ";", "if", "(", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", "||", "(", "save_reg_mask", "&&", "optimize_size", "&&", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_NORMAL", "&&", "!", "crtl", "->", "tail_call_emit", "&&", "!", "crtl", "->", "calls_eh_return", ")", ")", "save_reg_mask", "|=", "1", "<<", "LR_REGNUM", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "save_reg_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "(", "(", "bit_count", "(", "save_reg_mask", ")", "+", "ARM_NUM_INTS", "(", "crtl", "->", "args", ".", "pretend_args_size", "+", "arm_compute_static_chain_stack_bytes", "(", ")", ")", ")", "%", "2", ")", "!=", "0", ")", "{", "for", "(", "reg", "=", "4", ";", "reg", "<=", "12", ";", "reg", "++", ")", "if", "(", "(", "save_reg_mask", "&", "(", "1", "<<", "reg", ")", ")", "==", "0", ")", "break", ";", "if", "(", "reg", "<=", "12", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "else", "{", "cfun", "->", "machine", "->", "sibcall_blocked", "=", "1", ";", "save_reg_mask", "|=", "(", "1", "<<", "3", ")", ";", "}", "}", "if", "(", "TARGET_THUMB2", "&&", "IS_NESTED", "(", "func_type", ")", "&&", "flag_pic", "&&", "(", "save_reg_mask", "&", "THUMB2_WORK_REGS", ")", "==", "0", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "4", ")", ";", "if", "(", "!", "call_used_regs", "[", "reg", "]", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", ".", "This", "is", "used", "by", "arm_get_frame_offsets", ",", "which", "may", "add", "extra", "registers", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "1", "1", "1", "2", "0", "4", "12", "1", "0", "12", "1", "1", "1", "3", "0", "1", "4", "1"], "File": "arm4", "Func": "arm_compute_save_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44620, "Length": 273}
{"ground_truth": ["", "static", "int", "arm_compute_static_chain_stack_bytes", "(", "void", ")", "{", "if", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "TARGET_ARM", "&&", "IS_NESTED", "(", "arm_current_func_type", "(", ")", ")", "&&", "arm_r3_live_at_start_p", "(", ")", "&&", "crtl", "->", "args", ".", "pretend_args_size", "==", "0", ")", "return", "4", ";", "return", "0", ";", "}", ""], "natrual_language": ["Compute", "the", "number", "of", "bytes", "used", "to", "store", "the", "static", "chain", "register", "on", "the", "stack", ",", "above", "the", "stack", "frame", ".", "We", "need", "to", "know", "this", "accurately", "to", "get", "the", "alignment", "of", "the", "rest", "of", "the", "stack", "frame", "correct", "."], "TS_V_token": ["arm", "0", "4", "0"], "File": "arm4", "Func": "arm_compute_static_chain_stack_bytes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44621, "Length": 41}
{"ground_truth": ["", "static", "int", "arm_comp_type_attributes", "(", "const_tree", "type1", ",", "const_tree", "type2", ")", "{", "int", "l1", ",", "l2", ",", "s1", ",", "s2", ";", "if", "(", "TREE_CODE", "(", "type1", ")", "!=", "FUNCTION_TYPE", ")", "return", "1", ";", "l1", "=", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "l2", "=", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "s1", "=", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "s2", "=", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "l1", "|", "l2", "|", "s1", "|", "s2", ")", "{", "if", "(", "(", "l1", "!=", "l2", ")", "||", "(", "s1", "!=", "s2", ")", ")", "return", "0", ";", "if", "(", "(", "l1", "&", "s2", ")", "||", "(", "l2", "&", "s1", ")", ")", "return", "0", ";", "}", "l1", "=", "lookup_attribute", "(", "\"isr\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "if", "(", "!", "l1", ")", "l1", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "l2", "=", "lookup_attribute", "(", "\"isr\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "!", "l2", ")", "l1", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "l1", "!=", "l2", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "0", "if", "the", "attributes", "for", "two", "types", "are", "incompatible", ",", "1", "if", "they", "are", "compatible", ",", "and", "2", "if", "they", "are", "nearly", "compatible", "(", "which", "causes", "a", "warning", "to", "be", "generated", ")", "."], "TS_V_token": ["arm", "1", "\"long_call\"", "\"long_call\"", "\"short_call\"", "\"short_call\"", "0", "0", "\"isr\"", "\"interrupt\"", "\"isr\"", "\"interrupt\"", "0", "1"], "File": "arm4", "Func": "arm_comp_type_attributes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44622, "Length": 213}
{"ground_truth": ["", "int", "arm_const_double_rtx", "(", "rtx", "x", ")", "{", "REAL_VALUE_TYPE", "r", ";", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "r", ",", "x", ")", ";", "if", "(", "REAL_VALUE_MINUS_ZERO", "(", "r", ")", ")", "return", "0", ";", "if", "(", "REAL_VALUES_EQUAL", "(", "r", ",", "value_fp0", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "a", "valid", "immediate", "FP", "constant", "."], "TS_V_token": ["arm", "0", "1", "0"], "File": "arm4", "Func": "arm_const_double_rtx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44623, "Length": 52}
{"ground_truth": ["", "static", "bool", "arm_const_not_ok_for_debug_p", "(", "rtx", "p", ")", "{", "tree", "decl_op0", "=", "NULL", ";", "tree", "decl_op1", "=", "NULL", ";", "if", "(", "GET_CODE", "(", "p", ")", "==", "MINUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "p", ",", "1", ")", ")", "==", "SYMBOL_REF", ")", "{", "decl_op1", "=", "SYMBOL_REF_DECL", "(", "XEXP", "(", "p", ",", "1", ")", ")", ";", "if", "(", "decl_op1", "&&", "GET_CODE", "(", "XEXP", "(", "p", ",", "0", ")", ")", "==", "SYMBOL_REF", "&&", "(", "decl_op0", "=", "SYMBOL_REF_DECL", "(", "XEXP", "(", "p", ",", "0", ")", ")", ")", ")", "{", "if", "(", "(", "TREE_CODE", "(", "decl_op1", ")", "==", "VAR_DECL", "||", "TREE_CODE", "(", "decl_op1", ")", "==", "CONST_DECL", ")", "&&", "(", "TREE_CODE", "(", "decl_op0", ")", "==", "VAR_DECL", "||", "TREE_CODE", "(", "decl_op0", ")", "==", "CONST_DECL", ")", ")", "return", "(", "get_variable_section", "(", "decl_op1", ",", "false", ")", "!=", "get_variable_section", "(", "decl_op0", ",", "false", ")", ")", ";", "if", "(", "TREE_CODE", "(", "decl_op1", ")", "==", "LABEL_DECL", "&&", "TREE_CODE", "(", "decl_op0", ")", "==", "LABEL_DECL", ")", "return", "(", "DECL_CONTEXT", "(", "decl_op1", ")", "!=", "DECL_CONTEXT", "(", "decl_op0", ")", ")", ";", "}", "return", "true", ";", "}", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "is", "a", "temporary", "fix", "for", "PR60655", ".", "Ideally", "we", "need", "to", "handle", "most", "of", "these", "cases", "in", "the", "generic", "part", "but", "currently", "we", "reject", "minus", "(", "..", ")", "(", "sym_ref", ")", ".", "We", "try", "to", "ameliorate", "the", "case", "with", "minus", "(", "sym_ref1", ")", "(", "sym_ref2", ")", "where", "they", "are", "in", "the", "same", "section", "."], "TS_V_token": ["arm", "1", "1", "0", "0"], "File": "arm4", "Func": "arm_const_not_ok_for_debug_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44624, "Length": 176}
{"ground_truth": ["", "static", "tree", "arm_convert_to_type", "(", "tree", "type", ",", "tree", "expr", ")", "{", "tree", "fromtype", "=", "TREE_TYPE", "(", "expr", ")", ";", "if", "(", "!", "SCALAR_FLOAT_TYPE_P", "(", "fromtype", ")", "||", "!", "SCALAR_FLOAT_TYPE_P", "(", "type", ")", ")", "return", "NULL_TREE", ";", "if", "(", "(", "TYPE_PRECISION", "(", "fromtype", ")", "==", "16", "&&", "TYPE_PRECISION", "(", "type", ")", ">", "32", ")", "||", "(", "TYPE_PRECISION", "(", "type", ")", "==", "16", "&&", "TYPE_PRECISION", "(", "fromtype", ")", ">", "32", ")", ")", "return", "convert", "(", "type", ",", "convert", "(", "float_type_node", ",", "expr", ")", ")", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Implement", "TARGET_CONVERT_TO_TYPE", ".", "Specifically", ",", "this", "hook", "implements", "the", "peculiarity", "of", "the", "ARM", "half-precision", "floating-point", "C", "semantics", "that", "requires", "conversions", "between", "__fp16", "to", "or", "from", "double", "to", "do", "an", "intermediate", "conversion", "to", "float", "."], "TS_V_token": ["arm", "16", "32", "16", "32"], "File": "arm4", "Func": "arm_convert_to_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44625, "Length": 87}
{"ground_truth": ["", "unsigned", "int", "arm_dbx_register_number", "(", "unsigned", "int", "regno", ")", "{", "if", "(", "regno", "<", "16", ")", "return", "regno", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ")", "return", "64", "+", "regno", "-", "FIRST_VFP_REGNUM", ";", "else", "return", "256", "+", "(", "regno", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ";", "}", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "104", "+", "regno", "-", "FIRST_IWMMXT_GR_REGNUM", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "112", "+", "regno", "-", "FIRST_IWMMXT_REGNUM", ";", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Map", "internal", "gcc", "register", "numbers", "to", "DWARF2", "register", "numbers", "."], "TS_V_token": ["arm", "16", "64", "256", "2", "104", "112"], "File": "arm4", "Func": "arm_dbx_register_number", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44626, "Length": 86}
{"ground_truth": ["", "void", "arm_emit_call_insn", "(", "rtx", "pat", ",", "rtx", "addr", ",", "bool", "sibcall", ")", "{", "rtx", "insn", ";", "insn", "=", "emit_call_insn", "(", "pat", ")", ";", "if", "(", "TARGET_VXWORKS_RTP", "&&", "flag_pic", "&&", "!", "sibcall", "&&", "GET_CODE", "(", "addr", ")", "==", "SYMBOL_REF", "&&", "(", "SYMBOL_REF_DECL", "(", "addr", ")", "?", "!", "targetm", ".", "binds_local_p", "(", "SYMBOL_REF_DECL", "(", "addr", ")", ")", ":", "!", "SYMBOL_REF_LOCAL_P", "(", "addr", ")", ")", ")", "{", "require_pic_register", "(", ")", ";", "use_reg", "(", "&", "CALL_INSN_FUNCTION_USAGE", "(", "insn", ")", ",", "cfun", "->", "machine", "->", "pic_reg", ")", ";", "}", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "rtx", "*", "fusage", "=", "&", "CALL_INSN_FUNCTION_USAGE", "(", "insn", ")", ";", "clobber_reg", "(", "fusage", ",", "gen_rtx_REG", "(", "word_mode", ",", "IP_REGNUM", ")", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "a", "call", "instruction", "with", "pattern", "PAT", ".", "ADDR", "is", "the", "address", "of", "the", "call", "target", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_emit_call_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44627, "Length": 113}
{"ground_truth": ["", "void", "arm_emit_fp16_const", "(", "rtx", "c", ")", "{", "REAL_VALUE_TYPE", "r", ";", "long", "bits", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "r", ",", "c", ")", ";", "bits", "=", "real_to_target", "(", "NULL", ",", "&", "r", ",", "HFmode", ")", ";", "if", "(", "WORDS_BIG_ENDIAN", ")", "assemble_zeros", "(", "2", ")", ";", "assemble_integer", "(", "GEN_INT", "(", "bits", ")", ",", "2", ",", "BITS_PER_WORD", ",", "1", ")", ";", "if", "(", "!", "WORDS_BIG_ENDIAN", ")", "assemble_zeros", "(", "2", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "fp16", "constant", "appropriately", "padded", "to", "occupy", "a", "4-byte", "word", ".", "HFmode", "constant", "pool", "entries", "are", "actually", "loaded", "with", "ldr", "."], "TS_V_token": ["arm", "2", "2", "1", "2"], "File": "arm4", "Func": "arm_emit_fp16_const", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44628, "Length": 66}
{"ground_truth": ["", "static", "void", "arm_emit_ldrd_pop", "(", "unsigned", "long", "saved_regs_mask", ")", "{", "int", "j", "=", "0", ";", "int", "offset", "=", "0", ";", "rtx", "par", "=", "NULL_RTX", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "mem", ";", "gcc_assert", "(", "!", "(", "(", "saved_regs_mask", "&", "(", "1", "<<", "SP_REGNUM", ")", ")", ")", ")", ";", "j", "=", "0", ";", "while", "(", "j", "<=", "LAST_ARM_REGNUM", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "j", ")", ")", "{", "if", "(", "(", "j", "%", "2", ")", "==", "0", "&&", "(", "saved_regs_mask", "&", "(", "1", "<<", "(", "j", "+", "1", ")", ")", ")", "&&", "(", "j", "+", "1", ")", "!=", "PC_REGNUM", ")", "{", "if", "(", "offset", ">", "0", ")", "mem", "=", "gen_frame_mem", "(", "DImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "offset", ")", ")", ";", "else", "mem", "=", "gen_frame_mem", "(", "DImode", ",", "stack_pointer_rtx", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "DImode", ",", "gen_rtx_REG", "(", "DImode", ",", "j", ")", ",", "mem", ")", ";", "tmp", "=", "emit_insn", "(", "tmp", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "j", ")", ",", "NULL_RTX", ")", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "j", "+", "1", ")", ",", "dwarf", ")", ";", "REG_NOTES", "(", "tmp", ")", "=", "dwarf", ";", "offset", "+=", "8", ";", "j", "+=", "2", ";", "}", "else", "if", "(", "j", "!=", "PC_REGNUM", ")", "{", "if", "(", "offset", ">", "0", ")", "mem", "=", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "offset", ")", ")", ";", "else", "mem", "=", "gen_frame_mem", "(", "SImode", ",", "stack_pointer_rtx", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "SImode", ",", "gen_rtx_REG", "(", "SImode", ",", "j", ")", ",", "mem", ")", ";", "tmp", "=", "emit_insn", "(", "tmp", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "REG_NOTES", "(", "tmp", ")", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "j", ")", ",", "NULL_RTX", ")", ";", "offset", "+=", "4", ";", "j", "+=", "1", ";", "}", "else", "j", "++", ";", "}", "else", "j", "++", ";", "if", "(", "offset", ">", "0", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "Pmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "offset", ")", ")", ";", "tmp", "=", "emit_insn", "(", "tmp", ")", ";", "arm_add_cfa_adjust_cfa_note", "(", "tmp", ",", "offset", ",", "stack_pointer_rtx", ",", "stack_pointer_rtx", ")", ";", "offset", "=", "0", ";", "}", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", "{", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "2", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "tmp", "=", "gen_rtx_SET", "(", "SImode", ",", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ",", "gen_frame_mem", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "SImode", ",", "stack_pointer_rtx", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", "=", "tmp", ";", "par", "=", "emit_jump_insn", "(", "par", ")", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ",", "NULL_RTX", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "UNITS_PER_WORD", ",", "stack_pointer_rtx", ",", "stack_pointer_rtx", ")", ";", "}", "}", ""], "natrual_language": ["LDRD", "in", "ARM", "mode", "needs", "consecutive", "registers", "as", "operands", ".", "This", "function", "emits", "LDRD", "whenever", "possible", ",", "otherwise", "it", "emits", "single-word", "loads", ".", "It", "uses", "offset", "addressing", "and", "then", "generates", "one", "separate", "stack", "udpate", ".", "This", "provides", "more", "scheduling", "freedom", ",", "compared", "to", "writeback", "on", "every", "load", ".", "However", ",", "if", "the", "function", "returns", "using", "load", "into", "PC", "directly", "(", "i.e.", ",", "if", "PC", "is", "in", "SAVED_REGS_MASK", ")", ",", "the", "stack", "needs", "to", "be", "updated", "before", "the", "last", "load", ".", "TODO", ":", "Add", "a", "peephole", "optimization", "to", "recognize", "the", "new", "epilogue", "sequence", "as", "an", "LDM", "instruction", "whenever", "possible", ".", "TODO", ":", "Add", "peephole", "optimization", "to", "merge", "the", "load", "at", "stack-offset", "zero", "with", "the", "stack", "update", "instruction", "using", "load", "with", "writeback", "in", "post-index", "addressing", "mode", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "2", "0", "1", "1", "1", "0", "1", "1", "8", "2", "0", "1", "4", "1", "0", "0", "1", "2", "0", "0", "1", "0", "1"], "File": "arm4", "Func": "arm_emit_ldrd_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44629, "Length": 492}
{"ground_truth": ["", "static", "void", "arm_emit_load_exclusive", "(", "machine_mode", "mode", ",", "rtx", "rval", ",", "rtx", "mem", ",", "bool", "acq", ")", "{", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ")", ";", "if", "(", "acq", ")", "{", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "gen", "=", "gen_arm_load_acquire_exclusiveqi", ";", "break", ";", "case", "HImode", ":", "gen", "=", "gen_arm_load_acquire_exclusivehi", ";", "break", ";", "case", "SImode", ":", "gen", "=", "gen_arm_load_acquire_exclusivesi", ";", "break", ";", "case", "DImode", ":", "gen", "=", "gen_arm_load_acquire_exclusivedi", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "else", "{", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "gen", "=", "gen_arm_load_exclusiveqi", ";", "break", ";", "case", "HImode", ":", "gen", "=", "gen_arm_load_exclusivehi", ";", "break", ";", "case", "SImode", ":", "gen", "=", "gen_arm_load_exclusivesi", ";", "break", ";", "case", "DImode", ":", "gen", "=", "gen_arm_load_exclusivedi", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "emit_insn", "(", "gen", "(", "rval", ",", "mem", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "the", "load-exclusive", "and", "store-exclusive", "instructions", ".", "Use", "acquire", "and", "release", "versions", "if", "necessary", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_emit_load_exclusive", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44630, "Length": 144}
{"ground_truth": ["", "static", "void", "arm_emit_multi_reg_pop", "(", "unsigned", "long", "saved_regs_mask", ")", "{", "int", "num_regs", "=", "0", ";", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "reg", ";", "bool", "return_in_pc", "=", "saved_regs_mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ";", "int", "offset_adj", ";", "int", "emit_update", ";", "offset_adj", "=", "return_in_pc", "?", "1", ":", "0", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "16", ")", ";", "emit_update", "=", "(", "saved_regs_mask", "&", "(", "1", "<<", "SP_REGNUM", ")", ")", "?", "0", ":", "1", ";", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", "+", "emit_update", "+", "offset_adj", ")", ")", ";", "if", "(", "return_in_pc", ")", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "if", "(", "emit_update", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "offset_adj", ")", "=", "tmp", ";", "}", "for", "(", "j", "=", "0", ",", "i", "=", "0", ";", "j", "<", "num_regs", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "if", "(", "(", "num_regs", "==", "1", ")", "&&", "emit_update", "&&", "!", "return_in_pc", ")", "{", "tmp", "=", "gen_frame_mem", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ")", ";", "tmp", "=", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "reg", ",", "tmp", ")", ")", ";", "REG_NOTES", "(", "tmp", ")", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "reg", ",", "dwarf", ")", ";", "return", ";", "}", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "reg", ",", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "j", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", "+", "emit_update", "+", "offset_adj", ")", "=", "tmp", ";", "if", "(", "i", "!=", "PC_REGNUM", ")", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "reg", ",", "dwarf", ")", ";", "j", "++", ";", "}", "if", "(", "return_in_pc", ")", "par", "=", "emit_jump_insn", "(", "par", ")", ";", "else", "par", "=", "emit_insn", "(", "par", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "if", "(", "!", "return_in_pc", ")", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "UNITS_PER_WORD", "*", "num_regs", ",", "stack_pointer_rtx", ",", "stack_pointer_rtx", ")", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "pattern", "that", "we", "will", "recognize", "as", "a", "pop_multi", ".", "SAVED_REGS_MASK", "shows", "which", "registers", "need", "to", "be", "restored", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "0", "1", "16", "1", "0", "1", "0", "0", "4", "1", "0", "0", "0", "1", "1", "4", "1", "0"], "File": "arm4", "Func": "arm_emit_multi_reg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44631, "Length": 392}
{"ground_truth": ["", "static", "void", "arm_emit_vfp_multi_reg_pop", "(", "int", "first_reg", ",", "int", "num_regs", ",", "rtx", "base_reg", ")", "{", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "reg", ";", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "32", ")", ";", "if", "(", "num_regs", "==", "2", "&&", "!", "arm_arch6", ")", "{", "if", "(", "first_reg", "==", "15", ")", "first_reg", "--", ";", "num_regs", "++", ";", "}", "if", "(", "num_regs", ">", "16", ")", "{", "arm_emit_vfp_multi_reg_pop", "(", "first_reg", ",", "16", ",", "base_reg", ")", ";", "arm_emit_vfp_multi_reg_pop", "(", "first_reg", "+", "16", ",", "num_regs", "-", "16", ",", "base_reg", ")", ";", "return", ";", "}", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", "+", "1", ")", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "base_reg", ",", "plus_constant", "(", "Pmode", ",", "base_reg", ",", "8", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "tmp", ";", "for", "(", "j", "=", "0", ",", "i", "=", "first_reg", ";", "j", "<", "num_regs", ";", "i", "+=", "2", ")", "{", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "i", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "reg", ",", "gen_frame_mem", "(", "DFmode", ",", "plus_constant", "(", "Pmode", ",", "base_reg", ",", "8", "*", "j", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", "+", "1", ")", "=", "tmp", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "reg", ",", "dwarf", ")", ";", "j", "++", ";", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "if", "(", "TARGET_VFP", "&&", "REGNO", "(", "base_reg", ")", "==", "IP_REGNUM", ")", "{", "RTX_FRAME_RELATED_P", "(", "par", ")", "=", "1", ";", "add_reg_note", "(", "par", ",", "REG_CFA_DEF_CFA", ",", "hard_frame_pointer_rtx", ")", ";", "}", "else", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "2", "*", "UNITS_PER_WORD", "*", "num_regs", ",", "base_reg", ",", "base_reg", ")", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "pattern", "that", "we", "will", "recognize", "as", "a", "pop_multi", "of", "NUM_REGS", "consecutive", "VFP", "regs", ",", "starting", "at", "FIRST_REG", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "32", "2", "15", "16", "16", "16", "16", "1", "8", "1", "0", "0", "0", "2", "8", "1", "0", "1", "1", "2"], "File": "arm4", "Func": "arm_emit_vfp_multi_reg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44632, "Length": 296}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vext", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "rtx", "offset", ";", "unsigned", "int", "location", ";", "unsigned", "int", "next", "=", "d", "->", "perm", "[", "0", "]", "+", "1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "return", "false", ";", "for", "(", "i", "=", "1", ";", "i", "<", "nelt", ";", "next", "++", ",", "i", "++", ")", "{", "if", "(", "next", "==", "2", "*", "nelt", ")", "return", "false", ";", "if", "(", "d", "->", "one_vector_p", "&&", "(", "next", "==", "nelt", ")", ")", "{", "if", "(", "(", "nelt", "==", "2", ")", "&&", "(", "d", "->", "vmode", "!=", "V2DImode", ")", ")", "return", "false", ";", "else", "next", "=", "0", ";", "}", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "next", ")", "return", "false", ";", "}", "location", "=", "d", "->", "perm", "[", "0", "]", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vextv16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vextv8qi", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vextv4hi", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vextv8hi", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vextv2si", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vextv4si", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vextv2sf", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vextv4sf", ";", "break", ";", "case", "V2DImode", ":", "gen", "=", "gen_neon_vextv2di", ";", "break", ";", "default", ":", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "offset", "=", "GEN_INT", "(", "location", ")", ";", "emit_insn", "(", "gen", "(", "d", "->", "target", ",", "d", "->", "op0", ",", "d", "->", "op1", ",", "offset", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VEXT", "insns", "."], "TS_V_token": ["arm", "0", "1", "1", "2", "2", "0", "0"], "File": "arm4", "Func": "arm_evpc_neon_vext", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44633, "Length": 286}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vrev", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "j", ",", "diff", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ")", ";", "if", "(", "!", "d", "->", "one_vector_p", ")", "return", "false", ";", "diff", "=", "d", "->", "perm", "[", "0", "]", ";", "switch", "(", "diff", ")", "{", "case", "7", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vrev64v16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vrev64v8qi", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "3", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vrev32v16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vrev32v8qi", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vrev64v8hi", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vrev64v4hi", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "1", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vrev16v16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vrev16v8qi", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vrev32v8hi", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vrev32v4hi", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vrev64v4si", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vrev64v2si", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vrev64v4sf", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vrev64v2sf", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "default", ":", "return", "false", ";", "}", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "diff", "+", "1", ")", "for", "(", "j", "=", "0", ";", "j", "<=", "diff", ";", "j", "+=", "1", ")", "{", "gcc_assert", "(", "i", "+", "j", "<", "nelt", ")", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "j", "]", "!=", "i", "+", "diff", "-", "j", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "emit_insn", "(", "gen", "(", "d", "->", "target", ",", "d", "->", "op0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VREV", "insns", "."], "TS_V_token": ["arm", "0", "7", "3", "1", "0", "1", "0", "1"], "File": "arm4", "Func": "arm_evpc_neon_vrev", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44634, "Length": 333}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vtbl", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "rtx", "rperm", "[", "MAX_VECT_LEN", "]", ",", "sel", ";", "machine_mode", "vmode", "=", "d", "->", "vmode", ";", "unsigned", "int", "i", ",", "nelt", "=", "d", "->", "nelt", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "return", "false", ";", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "if", "(", "vmode", "!=", "V8QImode", "&&", "vmode", "!=", "V16QImode", ")", "return", "false", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "rperm", "[", "i", "]", "=", "GEN_INT", "(", "d", "->", "perm", "[", "i", "]", ")", ";", "sel", "=", "gen_rtx_CONST_VECTOR", "(", "vmode", ",", "gen_rtvec_v", "(", "nelt", ",", "rperm", ")", ")", ";", "sel", "=", "force_reg", "(", "vmode", ",", "sel", ")", ";", "arm_expand_vec_perm_1", "(", "d", "->", "target", ",", "d", "->", "op0", ",", "d", "->", "op1", ",", "sel", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["The", "NEON", "VTBL", "instruction", "is", "a", "fully", "variable", "permuation", "that", "'s", "even", "stronger", "than", "what", "we", "expose", "via", "VEC_PERM_EXPR", ".", "What", "it", "does", "n't", "do", "is", "mask", "the", "index", "operand", "as", "VEC_PERM_EXPR", "requires", ".", "Therefore", "we", "can", "do", "slightly", "better", "by", "expanding", "this", "as", "a", "constant", "where", "we", "do", "n't", "have", "to", "apply", "a", "mask", "."], "TS_V_token": ["arm", "0"], "File": "arm4", "Func": "arm_evpc_neon_vtbl", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44635, "Length": 136}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vtrn", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ",", "x", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "0", ")", "odd", "=", "0", ";", "else", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "1", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "2", ")", "{", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "i", "+", "odd", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "1", "]", "!=", "(", "(", "i", "+", "nelt", "+", "odd", ")", "&", "mask", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vtrnv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vtrnv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vtrnv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vtrnv4hi_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vtrnv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vtrnv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vtrnv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vtrnv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "x", "=", "in0", ",", "in0", "=", "in1", ",", "in1", "=", "x", ";", "odd", "=", "!", "odd", ";", "}", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "x", "=", "out0", ",", "out0", "=", "out1", ",", "out1", "=", "x", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VTRN", "insns", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "1"], "File": "arm4", "Func": "arm_evpc_neon_vtrn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44636, "Length": 354}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vuzp", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ",", "x", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "0", ")", "odd", "=", "0", ";", "else", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "1", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "(", "i", "*", "2", "+", "odd", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "elt", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vuzpv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vuzpv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vuzpv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vuzpv4hi_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vuzpv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vuzpv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vuzpv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vuzpv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "x", "=", "in0", ",", "in0", "=", "in1", ",", "in1", "=", "x", ";", "odd", "=", "!", "odd", ";", "}", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "x", "=", "out0", ",", "out0", "=", "out1", ",", "out1", "=", "x", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VUZP", "insns", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2"], "File": "arm4", "Func": "arm_evpc_neon_vuzp", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44637, "Length": 338}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vzip", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "high", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ",", "x", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "high", "=", "nelt", "/", "2", ";", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "high", ")", ";", "else", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "0", ")", "high", "=", "0", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", "/", "2", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "(", "i", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "i", "*", "2", "]", "!=", "elt", ")", "return", "false", ";", "elt", "=", "(", "elt", "+", "nelt", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "i", "*", "2", "+", "1", "]", "!=", "elt", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vzipv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vzipv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vzipv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vzipv4hi_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vzipv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vzipv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vzipv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vzipv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "x", "=", "in0", ",", "in0", "=", "in1", ",", "in1", "=", "x", ";", "high", "=", "!", "high", ";", "}", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "high", ")", "x", "=", "out0", ",", "out0", "=", "out1", ",", "out1", "=", "x", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VZIP", "insns", "."], "TS_V_token": ["arm", "8", "2", "0", "0", "0", "0", "1", "2", "1", "0", "2", "2", "2", "1"], "File": "arm4", "Func": "arm_evpc_neon_vzip", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44638, "Length": 371}
{"ground_truth": ["", "void", "arm_expand_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "bval", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ",", "x", ";", "machine_mode", "mode", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "bval", "=", "operands", "[", "0", "]", ";", "rval", "=", "operands", "[", "1", "]", ";", "mem", "=", "operands", "[", "2", "]", ";", "oldval", "=", "operands", "[", "3", "]", ";", "newval", "=", "operands", "[", "4", "]", ";", "is_weak", "=", "operands", "[", "5", "]", ";", "mod_s", "=", "operands", "[", "6", "]", ";", "mod_f", "=", "operands", "[", "7", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "if", "(", "TARGET_HAVE_LDACQ", "&&", "INTVAL", "(", "mod_f", ")", "==", "MEMMODEL_ACQUIRE", "&&", "INTVAL", "(", "mod_s", ")", "==", "MEMMODEL_RELEASE", ")", "mod_s", "=", "GEN_INT", "(", "MEMMODEL_ACQ_REL", ")", ";", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "case", "HImode", ":", "rval", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "oldval", "=", "convert_modes", "(", "SImode", ",", "mode", ",", "oldval", ",", "true", ")", ";", "case", "SImode", ":", "if", "(", "!", "arm_add_operand", "(", "oldval", ",", "SImode", ")", ")", "oldval", "=", "force_reg", "(", "SImode", ",", "oldval", ")", ";", "break", ";", "case", "DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "oldval", ",", "mode", ")", ")", "oldval", "=", "force_reg", "(", "mode", ",", "oldval", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "gen", "=", "gen_atomic_compare_and_swapqi_1", ";", "break", ";", "case", "HImode", ":", "gen", "=", "gen_atomic_compare_and_swaphi_1", ";", "break", ";", "case", "SImode", ":", "gen", "=", "gen_atomic_compare_and_swapsi_1", ";", "break", ";", "case", "DImode", ":", "gen", "=", "gen_atomic_compare_and_swapdi_1", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "emit_insn", "(", "gen", "(", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ")", ")", ";", "if", "(", "mode", "==", "QImode", "||", "mode", "==", "HImode", ")", "emit_move_insn", "(", "operands", "[", "1", "]", ",", "gen_lowpart", "(", "mode", ",", "rval", ")", ")", ";", "x", "=", "gen_rtx_REG", "(", "CCmode", ",", "CC_REGNUM", ")", ";", "x", "=", "gen_rtx_EQ", "(", "SImode", ",", "x", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "bval", ",", "x", ")", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "compare", "and", "swap", "pattern", "."], "TS_V_token": ["arm", "0", "1", "2", "3", "4", "5", "6", "7", "1"], "File": "arm4", "Func": "arm_expand_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44639, "Length": 352}
{"ground_truth": ["", "bool", "arm_expand_vec_perm_const", "(", "rtx", "target", ",", "rtx", "op0", ",", "rtx", "op1", ",", "rtx", "sel", ")", "{", "struct", "expand_vec_perm_d", "d", ";", "int", "i", ",", "nelt", ",", "which", ";", "d", ".", "target", "=", "target", ";", "d", ".", "op0", "=", "op0", ";", "d", ".", "op1", "=", "op1", ";", "d", ".", "vmode", "=", "GET_MODE", "(", "target", ")", ";", "gcc_assert", "(", "VECTOR_MODE_P", "(", "d", ".", "vmode", ")", ")", ";", "d", ".", "nelt", "=", "nelt", "=", "GET_MODE_NUNITS", "(", "d", ".", "vmode", ")", ";", "d", ".", "testing_p", "=", "false", ";", "for", "(", "i", "=", "which", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "{", "rtx", "e", "=", "XVECEXP", "(", "sel", ",", "0", ",", "i", ")", ";", "int", "ei", "=", "INTVAL", "(", "e", ")", "&", "(", "2", "*", "nelt", "-", "1", ")", ";", "which", "|=", "(", "ei", "<", "nelt", "?", "1", ":", "2", ")", ";", "d", ".", "perm", "[", "i", "]", "=", "ei", ";", "}", "switch", "(", "which", ")", "{", "default", ":", "gcc_unreachable", "(", ")", ";", "case", "3", ":", "d", ".", "one_vector_p", "=", "false", ";", "if", "(", "!", "rtx_equal_p", "(", "op0", ",", "op1", ")", ")", "break", ";", "case", "2", ":", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "d", ".", "perm", "[", "i", "]", "&=", "nelt", "-", "1", ";", "d", ".", "op0", "=", "op1", ";", "d", ".", "one_vector_p", "=", "true", ";", "break", ";", "case", "1", ":", "d", ".", "op1", "=", "op0", ";", "d", ".", "one_vector_p", "=", "true", ";", "break", ";", "}", "return", "arm_expand_vec_perm_const_1", "(", "&", "d", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "vec_perm_const", "pattern", "."], "TS_V_token": ["arm", "0", "0", "2", "1", "1", "2", "3", "2", "0", "1", "1"], "File": "arm4", "Func": "arm_expand_vec_perm_const", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44640, "Length": 248}
{"ground_truth": ["", "static", "bool", "arm_fastmul_rtx_costs", "(", "rtx", "x", ",", "enum", "rtx_code", "code", ",", "enum", "rtx_code", "outer_code", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB1", ")", "{", "*", "total", "=", "thumb1_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "mode", "==", "DImode", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "ZERO_EXTEND", "||", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "SIGN_EXTEND", ")", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "2", ")", ";", "return", "false", ";", "}", "if", "(", "mode", "==", "DImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "5", ")", ";", "return", "false", ";", "}", "if", "(", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ";", "int", "cost", ",", "const_ok", "=", "const_ok_for_arm", "(", "i", ")", ";", "int", "j", ",", "booth_unit_size", ";", "cost", "=", "const_ok", "?", "4", ":", "8", ";", "booth_unit_size", "=", "8", ";", "for", "(", "j", "=", "0", ";", "i", "&&", "j", "<", "32", ";", "j", "+=", "booth_unit_size", ")", "{", "i", ">>=", "booth_unit_size", ";", "cost", "++", ";", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "cost", ")", ";", "return", "false", ";", "}", "if", "(", "mode", "==", "SImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "4", ")", ";", "return", "false", ";", "}", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", ")", "{", "if", "(", "TARGET_HARD_FLOAT", "&&", "(", "mode", "==", "SFmode", "||", "(", "mode", "==", "DFmode", "&&", "!", "TARGET_VFP_SINGLE", ")", ")", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "1", ")", ";", "return", "false", ";", "}", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "20", ")", ";", "return", "false", ";", "default", ":", "return", "arm_rtx_costs_1", "(", "x", ",", "outer_code", ",", "total", ",", "speed", ")", ";", "}", "}", ""], "natrual_language": ["RTX", "cost", "for", "cores", "with", "a", "fast", "multiply", "unit", "(", "M", "variants", ")", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "2", "5", "1", "1", "0xffffffff", "4", "8", "8", "0", "32", "4", "1", "20"], "File": "arm4", "Func": "arm_fastmul_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44641, "Length": 334}
{"ground_truth": ["", "bool", "arm_frame_pointer_required", "(", "void", ")", "{", "return", "(", "cfun", "->", "has_nonlocal_label", "||", "SUBTARGET_FRAME_POINTER_REQUIRED", "||", "(", "TARGET_ARM", "&&", "TARGET_APCS_FRAME", "&&", "!", "leaf_function_p", "(", ")", ")", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FRAME_POINTER_REQUIRED", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_frame_pointer_required", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44642, "Length": 27}
{"ground_truth": ["", "static", "rtx", "arm_function_arg", "(", "cumulative_args_t", "pcum_v", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "bool", "named", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "if", "(", "mode", "==", "VOIDmode", ")", "return", "const0_rtx", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "aapcs_layout_arg", "(", "pcum", ",", "mode", ",", "type", ",", "named", ")", ";", "return", "pcum", "->", "aapcs_reg", ";", "}", "if", "(", "TARGET_IWMMXT_ABI", "&&", "arm_vector_mode_supported_p", "(", "mode", ")", "&&", "pcum", "->", "named_count", ">", "pcum", "->", "nargs", "+", "1", ")", "{", "if", "(", "pcum", "->", "iwmmxt_nregs", "<=", "9", ")", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "iwmmxt_nregs", "+", "FIRST_IWMMXT_REGNUM", ")", ";", "else", "{", "pcum", "->", "can_split", "=", "false", ";", "return", "NULL_RTX", ";", "}", "}", "if", "(", "pcum", "->", "nregs", "&", "1", "&&", "ARM_DOUBLEWORD_ALIGN", "&&", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ")", "pcum", "->", "nregs", "++", ";", "if", "(", "pcum", "->", "can_split", ")", "nregs", "=", "1", ";", "else", "nregs", "=", "ARM_NUM_REGS2", "(", "mode", ",", "type", ")", ";", "if", "(", "!", "named", "||", "pcum", "->", "nregs", "+", "nregs", ">", "NUM_ARG_REGS", ")", "return", "NULL_RTX", ";", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "nregs", ")", ";", "}", ""], "natrual_language": ["Determine", "where", "to", "put", "an", "argument", "to", "a", "function", ".", "Value", "is", "zero", "to", "push", "the", "argument", "on", "the", "stack", ",", "or", "a", "hard", "register", "in", "which", "to", "store", "the", "argument", ".", "MODE", "is", "the", "argument", "'s", "machine", "mode", ".", "TYPE", "is", "the", "data", "type", "of", "the", "argument", "(", "as", "a", "tree", ")", ".", "This", "is", "null", "for", "libcalls", "where", "that", "information", "may", "not", "be", "available", ".", "CUM", "is", "a", "variable", "of", "type", "CUMULATIVE_ARGS", "which", "gives", "info", "about", "the", "preceding", "args", "and", "about", "the", "function", "being", "called", ".", "NAMED", "is", "nonzero", "if", "this", "argument", "is", "a", "named", "parameter", "(", "otherwise", "it", "is", "an", "extra", "parameter", "matching", "an", "ellipsis", ")", ".", "On", "the", "ARM", ",", "normally", "the", "first", "16", "bytes", "are", "passed", "in", "registers", "r0-r3", ";", "all", "other", "arguments", "are", "passed", "on", "the", "stack", ".", "If", "(", "NAMED", "==", "0", ")", "(", "which", "happens", "only", "in", "assign_parms", ",", "since", "TARGET_SETUP_INCOMING_VARARGS", "is", "defined", ")", ",", "say", "it", "is", "passed", "in", "the", "stack", "(", "function_prologue", "will", "indeed", "make", "it", "pass", "in", "the", "stack", "if", "necessary", ")", "."], "TS_V_token": ["arm", "1", "9", "1", "1"], "File": "arm4", "Func": "arm_function_arg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44643, "Length": 186}
{"ground_truth": ["", "static", "void", "arm_function_arg_advance", "(", "cumulative_args_t", "pcum_v", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "bool", "named", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "aapcs_layout_arg", "(", "pcum", ",", "mode", ",", "type", ",", "named", ")", ";", "if", "(", "pcum", "->", "aapcs_cprc_slot", ">=", "0", ")", "{", "aapcs_cp_arg_layout", "[", "pcum", "->", "aapcs_cprc_slot", "]", ".", "advance", "(", "pcum", ",", "mode", ",", "type", ")", ";", "pcum", "->", "aapcs_cprc_slot", "=", "-", "1", ";", "}", "pcum", "->", "aapcs_arg_processed", "=", "false", ";", "pcum", "->", "aapcs_ncrn", "=", "pcum", "->", "aapcs_next_ncrn", ";", "pcum", "->", "aapcs_reg", "=", "NULL_RTX", ";", "pcum", "->", "aapcs_partial", "=", "0", ";", "}", "else", "{", "pcum", "->", "nargs", "+=", "1", ";", "if", "(", "arm_vector_mode_supported_p", "(", "mode", ")", "&&", "pcum", "->", "named_count", ">", "pcum", "->", "nargs", "&&", "TARGET_IWMMXT_ABI", ")", "pcum", "->", "iwmmxt_nregs", "+=", "1", ";", "else", "pcum", "->", "nregs", "+=", "ARM_NUM_REGS2", "(", "mode", ",", "type", ")", ";", "}", "}", ""], "natrual_language": ["Update", "the", "data", "in", "PCUM", "to", "advance", "over", "an", "argument", "of", "mode", "MODE", "and", "data", "type", "TYPE", ".", "(", "TYPE", "is", "null", "for", "libcalls", "where", "that", "information", "may", "not", "be", "available", ".", ")"], "TS_V_token": ["arm", "0", "1", "0", "1", "1"], "File": "arm4", "Func": "arm_function_arg_advance", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44644, "Length": 151}
{"ground_truth": ["", "static", "bool", "arm_function_ok_for_sibcall", "(", "tree", "decl", ",", "tree", "exp", ")", "{", "unsigned", "long", "func_type", ";", "if", "(", "cfun", "->", "machine", "->", "sibcall_blocked", ")", "return", "false", ";", "if", "(", "TARGET_THUMB1", ")", "return", "false", ";", "if", "(", "TARGET_VXWORKS_RTP", "&&", "flag_pic", "&&", "!", "targetm", ".", "binds_local_p", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "TARGET_INTERWORK", "&&", "decl", "&&", "TREE_PUBLIC", "(", "decl", ")", "&&", "!", "TREE_ASM_WRITTEN", "(", "decl", ")", ")", "return", "false", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "!", "VOID_TYPE_P", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ")", ")", "{", "rtx", "a", ",", "b", ";", "a", "=", "arm_function_value", "(", "TREE_TYPE", "(", "exp", ")", ",", "decl", ",", "false", ")", ";", "b", "=", "arm_function_value", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ",", "cfun", "->", "decl", ",", "false", ")", ";", "if", "(", "!", "rtx_equal_p", "(", "a", ",", "b", ")", ")", "return", "false", ";", "}", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "TARGET_AAPCS_BASED", "&&", "arm_abi", "==", "ARM_ABI_AAPCS", "&&", "decl", "&&", "DECL_WEAK", "(", "decl", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "it", "is", "ok", "to", "make", "a", "tail-call", "to", "DECL", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_function_ok_for_sibcall", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44645, "Length": 189}
{"ground_truth": ["", "static", "rtx", "arm_function_value", "(", "const_tree", "type", ",", "const_tree", "func", ",", "bool", "outgoing", "ATTRIBUTE_UNUSED", ")", "{", "machine_mode", "mode", ";", "int", "unsignedp", "ATTRIBUTE_UNUSED", ";", "rtx", "r", "ATTRIBUTE_UNUSED", ";", "mode", "=", "TYPE_MODE", "(", "type", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "return", "aapcs_allocate_return_reg", "(", "mode", ",", "type", ",", "func", ")", ";", "if", "(", "INTEGRAL_TYPE_P", "(", "type", ")", ")", "mode", "=", "arm_promote_function_mode", "(", "type", ",", "mode", ",", "&", "unsignedp", ",", "func", ",", "1", ")", ";", "if", "(", "arm_return_in_msb", "(", "type", ")", ")", "{", "HOST_WIDE_INT", "size", "=", "int_size_in_bytes", "(", "type", ")", ";", "if", "(", "size", "%", "UNITS_PER_WORD", "!=", "0", ")", "{", "size", "+=", "UNITS_PER_WORD", "-", "size", "%", "UNITS_PER_WORD", ";", "mode", "=", "mode_for_size", "(", "size", "*", "BITS_PER_UNIT", ",", "MODE_INT", ",", "0", ")", ";", "}", "}", "return", "arm_libcall_value_1", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Define", "how", "to", "find", "the", "value", "returned", "by", "a", "function", "."], "TS_V_token": ["arm", "1", "0", "0"], "File": "arm4", "Func": "arm_function_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44646, "Length": 125}
{"ground_truth": ["", "static", "bool", "arm_function_value_regno_p", "(", "const", "unsigned", "int", "regno", ")", "{", "if", "(", "regno", "==", "ARG_REGISTER", "(", "1", ")", "||", "(", "TARGET_32BIT", "&&", "TARGET_AAPCS_BASED", "&&", "TARGET_VFP", "&&", "TARGET_HARD_FLOAT", "&&", "regno", "==", "FIRST_VFP_REGNUM", ")", "||", "(", "TARGET_IWMMXT_ABI", "&&", "regno", "==", "FIRST_IWMMXT_REGNUM", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FUNCTION_VALUE_REGNO_P", "."], "TS_V_token": ["arm", "1"], "File": "arm4", "Func": "arm_function_value_regno_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44647, "Length": 48}
{"ground_truth": ["", "rtx", "arm_gen_compare_reg", "(", "enum", "rtx_code", "code", ",", "rtx", "x", ",", "rtx", "y", ",", "rtx", "scratch", ")", "{", "machine_mode", "mode", ";", "rtx", "cc_reg", ";", "int", "dimode_comparison", "=", "GET_MODE", "(", "x", ")", "==", "DImode", "||", "GET_MODE", "(", "y", ")", "==", "DImode", ";", "if", "(", "dimode_comparison", "&&", "!", "REG_P", "(", "x", ")", ")", "x", "=", "force_reg", "(", "DImode", ",", "x", ")", ";", "mode", "=", "SELECT_CC_MODE", "(", "code", ",", "x", ",", "y", ")", ";", "cc_reg", "=", "gen_rtx_REG", "(", "mode", ",", "CC_REGNUM", ")", ";", "if", "(", "dimode_comparison", "&&", "mode", "!=", "CC_CZmode", ")", "{", "rtx", "clobber", ",", "set", ";", "if", "(", "mode", "==", "CC_Zmode", "&&", "y", "!=", "const0_rtx", ")", "{", "gcc_assert", "(", "!", "reload_completed", ")", ";", "x", "=", "expand_binop", "(", "DImode", ",", "xor_optab", ",", "x", ",", "y", ",", "NULL_RTX", ",", "0", ",", "OPTAB_WIDEN", ")", ";", "y", "=", "const0_rtx", ";", "}", "if", "(", "reload_completed", ")", "gcc_assert", "(", "scratch", "!=", "NULL", "&&", "GET_MODE", "(", "scratch", ")", "==", "SImode", ")", ";", "else", "scratch", "=", "gen_rtx_SCRATCH", "(", "SImode", ")", ";", "clobber", "=", "gen_rtx_CLOBBER", "(", "VOIDmode", ",", "scratch", ")", ";", "set", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "cc_reg", ",", "gen_rtx_COMPARE", "(", "mode", ",", "x", ",", "y", ")", ")", ";", "emit_insn", "(", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec", "(", "2", ",", "set", ",", "clobber", ")", ")", ")", ";", "}", "else", "emit_set_insn", "(", "cc_reg", ",", "gen_rtx_COMPARE", "(", "mode", ",", "x", ",", "y", ")", ")", ";", "return", "cc_reg", ";", "}", ""], "natrual_language": ["X", "and", "Y", "are", "two", "things", "to", "compare", "using", "CODE", ".", "Emit", "the", "compare", "insn", "and", "return", "the", "rtx", "for", "register", "0", "in", "the", "proper", "mode", ".", "FP", "means", "this", "is", "a", "floating", "point", "compare", ":", "I", "do", "n't", "think", "that", "it", "is", "needed", "on", "the", "arm", "."], "TS_V_token": ["arm", "0", "2"], "File": "arm4", "Func": "arm_gen_compare_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44648, "Length": 224}
{"ground_truth": ["", "static", "rtx", "arm_gen_load_multiple_1", "(", "int", "count", ",", "int", "*", "regs", ",", "rtx", "*", "mems", ",", "rtx", "basereg", ",", "HOST_WIDE_INT", "wback_offset", ")", "{", "int", "i", "=", "0", ",", "j", ";", "rtx", "result", ";", "if", "(", "!", "multiple_operation_profitable_p", "(", "false", ",", "count", ",", "0", ")", ")", "{", "rtx", "seq", ";", "start_sequence", "(", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "emit_move_insn", "(", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "i", "]", ")", ",", "mems", "[", "i", "]", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "emit_move_insn", "(", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "seq", "=", "get_insns", "(", ")", ";", "end_sequence", "(", ")", ";", "return", "seq", ";", "}", "result", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "(", "wback_offset", "!=", "0", "?", "1", ":", "0", ")", ")", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "{", "XVECEXP", "(", "result", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "i", "=", "1", ";", "count", "++", ";", "}", "for", "(", "j", "=", "0", ";", "i", "<", "count", ";", "i", "++", ",", "j", "++", ")", "XVECEXP", "(", "result", ",", "0", ",", "i", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "j", "]", ")", ",", "mems", "[", "j", "]", ")", ";", "return", "result", ";", "}", ""], "natrual_language": ["Generate", "a", "load-multiple", "instruction", ".", "COUNT", "is", "the", "number", "of", "loads", "in", "the", "instruction", ";", "REGS", "and", "MEMS", "are", "arrays", "containing", "the", "operands", ".", "BASEREG", "is", "the", "base", "register", "to", "be", "used", "in", "addressing", "the", "memory", "operands", ".", "WBACK_OFFSET", "is", "nonzero", "if", "the", "instruction", "should", "update", "the", "base", "register", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0"], "File": "arm4", "Func": "arm_gen_load_multiple_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44649, "Length": 228}
{"ground_truth": ["", "static", "rtx", "arm_gen_store_multiple_1", "(", "int", "count", ",", "int", "*", "regs", ",", "rtx", "*", "mems", ",", "rtx", "basereg", ",", "HOST_WIDE_INT", "wback_offset", ")", "{", "int", "i", "=", "0", ",", "j", ";", "rtx", "result", ";", "if", "(", "GET_CODE", "(", "basereg", ")", "==", "PLUS", ")", "basereg", "=", "XEXP", "(", "basereg", ",", "0", ")", ";", "if", "(", "!", "multiple_operation_profitable_p", "(", "false", ",", "count", ",", "0", ")", ")", "{", "rtx", "seq", ";", "start_sequence", "(", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "emit_move_insn", "(", "mems", "[", "i", "]", ",", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "i", "]", ")", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "emit_move_insn", "(", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "seq", "=", "get_insns", "(", ")", ";", "end_sequence", "(", ")", ";", "return", "seq", ";", "}", "result", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "(", "wback_offset", "!=", "0", "?", "1", ":", "0", ")", ")", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "{", "XVECEXP", "(", "result", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "i", "=", "1", ";", "count", "++", ";", "}", "for", "(", "j", "=", "0", ";", "i", "<", "count", ";", "i", "++", ",", "j", "++", ")", "XVECEXP", "(", "result", ",", "0", ",", "i", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "mems", "[", "j", "]", ",", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "j", "]", ")", ")", ";", "return", "result", ";", "}", ""], "natrual_language": ["Generate", "a", "store-multiple", "instruction", ".", "COUNT", "is", "the", "number", "of", "stores", "in", "the", "instruction", ";", "REGS", "and", "MEMS", "are", "arrays", "containing", "the", "operands", ".", "BASEREG", "is", "the", "base", "register", "to", "be", "used", "in", "addressing", "the", "memory", "operands", ".", "WBACK_OFFSET", "is", "nonzero", "if", "the", "instruction", "should", "update", "the", "base", "register", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0"], "File": "arm4", "Func": "arm_gen_store_multiple_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44650, "Length": 246}
{"ground_truth": ["", "static", "enum", "arm_pcs", "arm_get_pcs_model", "(", "const_tree", "type", ",", "const_tree", "decl", ")", "{", "bool", "user_convention", "=", "false", ";", "enum", "arm_pcs", "user_pcs", "=", "arm_pcs_default", ";", "tree", "attr", ";", "gcc_assert", "(", "type", ")", ";", "attr", "=", "lookup_attribute", "(", "\"pcs\"", ",", "TYPE_ATTRIBUTES", "(", "type", ")", ")", ";", "if", "(", "attr", ")", "{", "user_pcs", "=", "arm_pcs_from_attribute", "(", "TREE_VALUE", "(", "attr", ")", ")", ";", "user_convention", "=", "true", ";", "}", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "bool", "base_rules", "=", "stdarg_p", "(", "type", ")", ";", "if", "(", "user_convention", ")", "{", "if", "(", "user_pcs", ">", "ARM_PCS_AAPCS_LOCAL", ")", "sorry", "(", "\"non-AAPCS derived PCS variant\"", ")", ";", "else", "if", "(", "base_rules", "&&", "user_pcs", "!=", "ARM_PCS_AAPCS", ")", "error", "(", "\"variadic functions must use the base AAPCS variant\"", ")", ";", "}", "if", "(", "base_rules", ")", "return", "ARM_PCS_AAPCS", ";", "else", "if", "(", "user_convention", ")", "return", "user_pcs", ";", "else", "if", "(", "decl", "&&", "flag_unit_at_a_time", ")", "{", "cgraph_local_info", "*", "i", "=", "cgraph_node", "::", "local_info", "(", "CONST_CAST_TREE", "(", "decl", ")", ")", ";", "if", "(", "i", "&&", "i", "->", "local", ")", "return", "ARM_PCS_AAPCS_LOCAL", ";", "}", "}", "else", "if", "(", "user_convention", "&&", "user_pcs", "!=", "arm_pcs_default", ")", "sorry", "(", "\"PCS variant\"", ")", ";", "return", "arm_pcs_default", ";", "}", ""], "natrual_language": ["Get", "the", "PCS", "variant", "to", "use", "for", "this", "call", ".", "TYPE", "is", "the", "function", "'s", "type", "specification", ",", "DECL", "is", "the", "specific", "declartion", ".", "DECL", "may", "be", "null", "if", "the", "call", "could", "be", "indirect", "or", "if", "this", "is", "a", "library", "call", "."], "TS_V_token": ["arm", "\"pcs\"", "\"non-AAPCS derived PCS variant\"", "\"variadic functions must use the base AAPCS variant\"", "\"PCS variant\""], "File": "arm4", "Func": "arm_get_pcs_model", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44651, "Length": 175}
{"ground_truth": ["", "static", "int", "arm_get_vfp_saved_size", "(", "void", ")", "{", "unsigned", "int", "regno", ";", "int", "count", ";", "int", "saved", ";", "saved", "=", "0", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", ")", "{", "count", "=", "0", ";", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<", "LAST_VFP_REGNUM", ";", "regno", "+=", "2", ")", "{", "if", "(", "(", "!", "df_regs_ever_live_p", "(", "regno", ")", "||", "call_used_regs", "[", "regno", "]", ")", "&&", "(", "!", "df_regs_ever_live_p", "(", "regno", "+", "1", ")", "||", "call_used_regs", "[", "regno", "+", "1", "]", ")", ")", "{", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", ";", "}", "count", "=", "0", ";", "}", "else", "count", "++", ";", "}", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", ";", "}", "}", "return", "saved", ";", "}", ""], "natrual_language": ["Return", "the", "number", "of", "bytes", "required", "to", "save", "VFP", "registers", "."], "TS_V_token": ["arm", "0", "0", "2", "1", "1", "0", "2", "8", "0", "0", "2", "8"], "File": "arm4", "Func": "arm_get_vfp_saved_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44652, "Length": 147}
{"ground_truth": ["", "int", "arm_hard_regno_mode_ok", "(", "unsigned", "int", "regno", ",", "machine_mode", "mode", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_CC", ")", "return", "(", "regno", "==", "CC_REGNUM", "||", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", "&&", "regno", "==", "VFPCC_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "CC_REGNUM", "&&", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_CC", ")", "return", "false", ";", "if", "(", "TARGET_THUMB1", ")", "return", "(", "ARM_NUM_REGS", "(", "mode", ")", "<", "2", ")", "||", "(", "regno", "<", "LAST_LO_REGNUM", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", "&&", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "mode", "==", "SFmode", "||", "mode", "==", "SImode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "DFmode", ")", "return", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "HFmode", ")", "return", "TARGET_FP16", "&&", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "TARGET_NEON", ")", "return", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "&&", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ")", "||", "(", "VALID_NEON_QREG_MODE", "(", "mode", ")", "&&", "NEON_REGNO_OK_FOR_QUAD", "(", "regno", ")", ")", "||", "(", "mode", "==", "TImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "2", ")", ")", "||", "(", "mode", "==", "EImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "3", ")", ")", "||", "(", "mode", "==", "OImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "4", ")", ")", "||", "(", "mode", "==", "CImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "6", ")", ")", "||", "(", "mode", "==", "XImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "8", ")", ")", ";", "return", "FALSE", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "mode", "==", "SImode", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ";", "}", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", ")", "{", "if", "(", "ARM_NUM_REGS", "(", "mode", ")", ">", "4", ")", "return", "FALSE", ";", "if", "(", "TARGET_THUMB2", ")", "return", "TRUE", ";", "return", "!", "(", "TARGET_LDRD", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">", "4", "&&", "(", "regno", "&", "1", ")", "!=", "0", ")", ";", "}", "if", "(", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "REGNO", "is", "a", "valid", "register", "for", "holding", "a", "quantity", "of", "type", "MODE", "."], "TS_V_token": ["arm", "2", "2", "3", "4", "6", "8", "4", "4", "1", "0"], "File": "arm4", "Func": "arm_hard_regno_mode_ok", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44653, "Length": 326}
{"ground_truth": ["", "static", "struct", "machine_function", "*", "arm_init_machine_status", "(", "void", ")", "{", "struct", "machine_function", "*", "machine", ";", "machine", "=", "ggc_cleared_alloc", "<", "machine_function", ">", "(", ")", ";", "machine", "->", "func_type", "=", "ARM_FT_UNKNOWN", ";", "return", "machine", ";", "}", ""], "natrual_language": ["Functions", "to", "save", "and", "restore", "machine-specific", "function", "data", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_init_machine_status", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44654, "Length": 33}
{"ground_truth": ["", "static", "const", "char", "*", "arm_invalid_parameter_type", "(", "const_tree", "t", ")", "{", "if", "(", "SCALAR_FLOAT_TYPE_P", "(", "t", ")", "&&", "TYPE_PRECISION", "(", "t", ")", "==", "16", ")", "return", "N_", "(", "\"function parameters cannot have __fp16 type\"", ")", ";", "return", "NULL", ";", "}", ""], "natrual_language": ["Implement", "TARGET_INVALID_PARAMETER_TYPE", "."], "TS_V_token": ["arm", "16", "\"function parameters cannot have __fp16 type\""], "File": "arm4", "Func": "arm_invalid_parameter_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44655, "Length": 34}
{"ground_truth": ["", "static", "const", "char", "*", "arm_invalid_return_type", "(", "const_tree", "t", ")", "{", "if", "(", "SCALAR_FLOAT_TYPE_P", "(", "t", ")", "&&", "TYPE_PRECISION", "(", "t", ")", "==", "16", ")", "return", "N_", "(", "\"functions cannot return __fp16 type\"", ")", ";", "return", "NULL", ";", "}", ""], "natrual_language": ["Implement", "TARGET_INVALID_PARAMETER_TYPE", "."], "TS_V_token": ["arm", "16", "\"functions cannot return __fp16 type\""], "File": "arm4", "Func": "arm_invalid_return_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44656, "Length": 34}
{"ground_truth": ["", "static", "int", "arm_issue_rate", "(", "void", ")", "{", "switch", "(", "arm_tune", ")", "{", "case", "xgene1", ":", "return", "4", ";", "case", "cortexa15", ":", "case", "cortexa57", ":", "case", "exynosm1", ":", "return", "3", ";", "case", "cortexm7", ":", "case", "cortexr4", ":", "case", "cortexr4f", ":", "case", "cortexr5", ":", "case", "genericv7a", ":", "case", "cortexa5", ":", "case", "cortexa7", ":", "case", "cortexa8", ":", "case", "cortexa9", ":", "case", "cortexa12", ":", "case", "cortexa17", ":", "case", "cortexa53", ":", "case", "fa726te", ":", "case", "marvell_pj4", ":", "return", "2", ";", "default", ":", "return", "1", ";", "}", "}", ""], "natrual_language": ["Most", "ARM", "cores", "are", "single", "issue", ",", "but", "some", "newer", "ones", "can", "dual", "issue", ".", "The", "scheduler", "descriptions", "rely", "on", "this", "being", "correct", "."], "TS_V_token": ["arm", "4", "3", "2", "1"], "File": "arm4", "Func": "arm_issue_rate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44657, "Length": 82}
{"ground_truth": ["", "int", "arm_legitimate_address_outer_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "RTX_CODE", "outer", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "(", "mode", "==", "DFmode", "&&", "(", "TARGET_SOFT_FLOAT", "||", "TARGET_VFP", ")", ")", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "if", "(", "use_ldrd", "&&", "GET_CODE", "(", "x", ")", "==", "POST_MODIFY", "&&", "REG_P", "(", "addend", ")", ")", "return", "0", ";", "return", "(", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "addend", ",", "outer", ",", "strict_p", ")", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "(", "(", "CONST_INT_P", "(", "xop1", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop1", ",", "outer", ",", "strict_p", ")", ")", "||", "(", "!", "strict_p", "&&", "will_be_in_index_register", "(", "xop1", ")", ")", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop0", ",", "outer", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "MINUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop1", ",", "outer", ",", "strict_p", ")", ")", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "ARM", "state", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "1", "0"], "File": "arm4", "Func": "arm_legitimate_address_outer_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44658, "Length": 505}
{"ground_truth": ["", "void", "arm_load_pic_register", "(", "unsigned", "long", "saved_regs", "ATTRIBUTE_UNUSED", ")", "{", "rtx", "l1", ",", "labelno", ",", "pic_tmp", ",", "pic_rtx", ",", "pic_reg", ";", "if", "(", "crtl", "->", "uses_pic_offset_table", "==", "0", "||", "TARGET_SINGLE_PIC_BASE", ")", "return", ";", "gcc_assert", "(", "flag_pic", ")", ";", "pic_reg", "=", "cfun", "->", "machine", "->", "pic_reg", ";", "if", "(", "TARGET_VXWORKS_RTP", ")", "{", "pic_rtx", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_BASE", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "emit_insn", "(", "gen_pic_load_addr_32bit", "(", "pic_reg", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "Pmode", ",", "pic_reg", ",", "gen_rtx_MEM", "(", "Pmode", ",", "pic_reg", ")", ")", ")", ";", "pic_tmp", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_INDEX", ")", ";", "emit_insn", "(", "gen_pic_offset_arm", "(", "pic_reg", ",", "pic_reg", ",", "pic_tmp", ")", ")", ";", "}", "else", "{", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "pic_rtx", "=", "plus_constant", "(", "Pmode", ",", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "pic_rtx", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "pic_rtx", ")", ",", "UNSPEC_GOTSYM_OFF", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "else", "{", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", ">", "LAST_LO_REGNUM", ")", "{", "pic_tmp", "=", "gen_rtx_REG", "(", "SImode", ",", "thumb_find_work_register", "(", "saved_regs", ")", ")", ";", "emit_insn", "(", "gen_pic_load_addr_thumb1", "(", "pic_tmp", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "pic_offset_table_rtx", ",", "pic_tmp", ")", ")", ";", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "pic_reg", ",", "pic_reg", ",", "labelno", ")", ")", ";", "}", "else", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", "<=", "LAST_LO_REGNUM", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "emit_move_insn", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ",", "pic_reg", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ")", ";", "}", "else", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "}", "emit_use", "(", "pic_reg", ")", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "PIC", "register", ".", "In", "thumb", "mode", "SCRATCH", "is", "a", "low", "register", "."], "TS_V_token": ["arm", "0", "1", "8", "4", "1"], "File": "arm4", "Func": "arm_load_pic_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44659, "Length": 346}
{"ground_truth": ["", "int", "arm_max_const_double_inline_cost", "(", ")", "{", "if", "(", "arm_disable_literal_pool", ")", "return", "99", ";", "return", "(", "(", "optimize_size", "||", "arm_ld_sched", ")", "?", "3", ":", "4", ")", ";", "}", ""], "natrual_language": ["Return", "maximum", "allowed", "cost", "of", "synthesizing", "a", "64-bit", "constant", "VAL", "inline", ".", "Returns", "the", "number", "of", "insns", "needed", ",", "or", "99", "if", "we", "always", "want", "to", "synthesize", "the", "value", "."], "TS_V_token": ["arm", "99", "3", "4"], "File": "arm4", "Func": "arm_max_const_double_inline_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44660, "Length": 26}
{"ground_truth": ["", "bool", "arm_modes_tieable_p", "(", "machine_mode", "mode1", ",", "machine_mode", "mode2", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode1", ")", "==", "GET_MODE_CLASS", "(", "mode2", ")", ")", "return", "true", ";", "if", "(", "TARGET_NEON", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode1", ")", ")", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode2", ")", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "MODES_TIEABLE_P", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_modes_tieable_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44661, "Length": 70}
{"ground_truth": ["", "static", "int", "arm_movmemqi_unaligned", "(", "rtx", "*", "operands", ")", "{", "HOST_WIDE_INT", "length", "=", "INTVAL", "(", "operands", "[", "2", "]", ")", ";", "if", "(", "optimize_size", ")", "{", "bool", "src_aligned", "=", "MEM_ALIGN", "(", "operands", "[", "1", "]", ")", ">=", "BITS_PER_WORD", ";", "bool", "dst_aligned", "=", "MEM_ALIGN", "(", "operands", "[", "0", "]", ")", ">=", "BITS_PER_WORD", ";", "unsigned", "int", "interleave_factor", "=", "(", "src_aligned", "||", "dst_aligned", ")", "?", "2", ":", "1", ";", "HOST_WIDE_INT", "bytes_per_iter", "=", "(", "src_aligned", "||", "dst_aligned", ")", "?", "8", ":", "4", ";", "if", "(", "length", ">", "12", ")", "arm_block_move_unaligned_loop", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "interleave_factor", ",", "bytes_per_iter", ")", ";", "else", "arm_block_move_unaligned_straight", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "interleave_factor", ")", ";", "}", "else", "{", "if", "(", "length", ">", "32", ")", "arm_block_move_unaligned_loop", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "4", ",", "16", ")", ";", "else", "arm_block_move_unaligned_straight", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "4", ")", ";", "}", "return", "1", ";", "}", ""], "natrual_language": ["Emit", "a", "block", "move", "when", "either", "the", "source", "or", "destination", "is", "unaligned", "(", "not", "aligned", "to", "a", "four-byte", "boundary", ")", ".", "This", "may", "need", "further", "tuning", "depending", "on", "core", "type", ",", "optimize_size", "setting", ",", "etc", "."], "TS_V_token": ["arm", "2", "1", "0", "2", "1", "8", "4", "12", "0", "1", "0", "1", "32", "0", "1", "4", "16", "0", "1", "4", "1"], "File": "arm4", "Func": "arm_movmemqi_unaligned", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44662, "Length": 172}
{"ground_truth": ["", "static", "bool", "arm_must_pass_in_stack", "(", "machine_mode", "mode", ",", "const_tree", "type", ")", "{", "if", "(", "TARGET_AAPCS_BASED", ")", "return", "must_pass_in_stack_var_size", "(", "mode", ",", "type", ")", ";", "else", "return", "must_pass_in_stack_var_size_or_pad", "(", "mode", ",", "type", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "a", "type", "must", "be", "passed", "in", "memory", ".", "For", "AAPCS", ",", "small", "aggregates", "(", "padded", "to", "the", "size", "of", "a", "word", ")", "should", "be", "passed", "in", "a", "register", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_must_pass_in_stack", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44663, "Length": 33}
{"ground_truth": ["", "static", "bool", "arm_needs_doubleword_align", "(", "machine_mode", "mode", ",", "const_tree", "type", ")", "{", "return", "(", "GET_MODE_ALIGNMENT", "(", "mode", ")", ">", "PARM_BOUNDARY", "||", "(", "type", "&&", "TYPE_ALIGN", "(", "type", ")", ">", "PARM_BOUNDARY", ")", ")", ";", "}", ""], "natrual_language": ["Return", "1", "if", "double", "word", "alignment", "is", "required", "for", "argument", "passing", ".", "Return", "-1", "if", "double", "word", "alignment", "used", "to", "be", "required", "for", "argument", "passing", "before", "PR77728", "ABI", "fix", ",", "but", "is", "not", "required", "anymore", ".", "Return", "0", "if", "double", "word", "alignment", "is", "not", "required", "and", "was", "n't", "requried", "before", "either", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_needs_doubleword_align", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44664, "Length": 33}
{"ground_truth": ["", "static", "void", "arm_output_function_prologue", "(", "FILE", "*", "f", ",", "HOST_WIDE_INT", "frame_size", ")", "{", "unsigned", "long", "func_type", ";", "if", "(", "TARGET_THUMB1", ")", "return", ";", "gcc_assert", "(", "!", "arm_ccfsm_state", "&&", "!", "arm_target_insn", ")", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "switch", "(", "(", "int", ")", "ARM_FUNC_TYPE", "(", "func_type", ")", ")", "{", "default", ":", "case", "ARM_FT_NORMAL", ":", "break", ";", "case", "ARM_FT_INTERWORKED", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Function supports interworking.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_ISR", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_FIQ", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_EXCEPTION", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ ARM Exception Handler.\\n\"", ")", ";", "break", ";", "}", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", ")", ";", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Volatile: function does not return.\\n\"", ")", ";", "if", "(", "IS_NESTED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Nested: function declared inside another function.\\n\"", ")", ";", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Stack Align: May be called with mis-aligned SP.\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ args = %d, pretend = %d, frame = %wd\\n\"", ",", "crtl", "->", "args", ".", "size", ",", "crtl", "->", "args", ".", "pretend_args_size", ",", "frame_size", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", ",", "frame_pointer_needed", ",", "cfun", "->", "machine", "->", "uses_anonymous_args", ")", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ link register save eliminated.\\n\"", ")", ";", "if", "(", "crtl", "->", "calls_eh_return", ")", "asm_fprintf", "(", "f", ",", "\"\\t@ Calls __builtin_eh_return.\\n\"", ")", ";", "}", ""], "natrual_language": ["Place", "some", "comments", "into", "the", "assembler", "stream", "describing", "the", "current", "function", "."], "TS_V_token": ["arm", "\"\\t%@ Function supports interworking.\\n\"", "\"\\t%@ Interrupt Service Routine.\\n\"", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", "\"\\t%@ ARM Exception Handler.\\n\"", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", "\"\\t%@ Volatile: function does not return.\\n\"", "\"\\t%@ Nested: function declared inside another function.\\n\"", "\"\\t%@ Stack Align: May be called with mis-aligned SP.\\n\"", "\"\\t%@ args = %d, pretend = %d, frame = %wd\\n\"", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", "\"\\t%@ link register save eliminated.\\n\"", "\"\\t@ Calls __builtin_eh_return.\\n\""], "File": "arm4", "Func": "arm_output_function_prologue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44665, "Length": 225}
{"ground_truth": ["", "const", "char", "*", "arm_output_iwmmxt_tinsr", "(", "rtx", "*", "operands", ")", "{", "int", "mask", "=", "INTVAL", "(", "operands", "[", "3", "]", ")", ";", "int", "i", ";", "char", "templ", "[", "50", "]", ";", "int", "units", "=", "mode_nunits", "[", "GET_MODE", "(", "operands", "[", "0", "]", ")", "]", ";", "gcc_assert", "(", "(", "mask", "&", "(", "mask", "-", "1", ")", ")", "==", "0", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "++", "i", ")", "{", "if", "(", "(", "mask", "&", "0x01", ")", "==", "1", ")", "{", "break", ";", "}", "mask", ">>=", "1", ";", "}", "gcc_assert", "(", "i", "<", "units", ")", ";", "{", "switch", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ")", "{", "case", "V8QImode", ":", "sprintf", "(", "templ", ",", "\"tinsrb%%?\\t%%0, %%2, #%d\"", ",", "i", ")", ";", "break", ";", "case", "V4HImode", ":", "sprintf", "(", "templ", ",", "\"tinsrh%%?\\t%%0, %%2, #%d\"", ",", "i", ")", ";", "break", ";", "case", "V2SImode", ":", "sprintf", "(", "templ", ",", "\"tinsrw%%?\\t%%0, %%2, #%d\"", ",", "i", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "break", ";", "}", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "assembly", "for", "a", "WMMX", "tinsr", "instruction", "."], "TS_V_token": ["arm", "3", "50", "0", "1", "0", "0", "0x01", "1", "1", "0", "\"tinsrb%%?\\t%%0, %%2, #%d\"", "\"tinsrh%%?\\t%%0, %%2, #%d\"", "\"tinsrw%%?\\t%%0, %%2, #%d\"", "\"\""], "File": "arm4", "Func": "arm_output_iwmmxt_tinsr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44666, "Length": 174}
{"ground_truth": ["", "void", "arm_output_multireg_pop", "(", "rtx", "*", "operands", ",", "bool", "return_pc", ",", "rtx", "cond", ",", "bool", "reverse", ",", "bool", "update", ")", "{", "int", "i", ";", "char", "pattern", "[", "100", "]", ";", "int", "offset", ";", "const", "char", "*", "conditional", ";", "int", "num_saves", "=", "XVECLEN", "(", "operands", "[", "0", "]", ",", "0", ")", ";", "unsigned", "int", "regno", ";", "unsigned", "int", "regno_base", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "offset", "=", "0", ";", "offset", "+=", "update", "?", "1", ":", "0", ";", "offset", "+=", "return_pc", "?", "1", ":", "0", ";", "for", "(", "i", "=", "offset", ";", "i", "<", "num_saves", ";", "i", "++", ")", "{", "regno", "=", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "i", ")", ",", "0", ")", ")", ";", "gcc_assert", "(", "(", "regno", "!=", "SP_REGNUM", ")", "||", "(", "regno_base", "==", "SP_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "regno_base", ")", "gcc_assert", "(", "!", "update", ")", ";", "}", "conditional", "=", "reverse", "?", "\"%?%D0\"", ":", "\"%?%d0\"", ";", "if", "(", "(", "regno_base", "==", "SP_REGNUM", ")", "&&", "TARGET_UNIFIED_ASM", ")", "{", "gcc_assert", "(", "update", ")", ";", "sprintf", "(", "pattern", ",", "\"pop%s\\t{\"", ",", "conditional", ")", ";", "}", "else", "{", "if", "(", "regno_base", "==", "SP_REGNUM", ")", "sprintf", "(", "pattern", ",", "\"ldm%sfd\\t\"", ",", "conditional", ")", ";", "else", "if", "(", "TARGET_UNIFIED_ASM", ")", "sprintf", "(", "pattern", ",", "\"ldmia%s\\t\"", ",", "conditional", ")", ";", "else", "sprintf", "(", "pattern", ",", "\"ldm%sia\\t\"", ",", "conditional", ")", ";", "strcat", "(", "pattern", ",", "reg_names", "[", "regno_base", "]", ")", ";", "if", "(", "update", ")", "strcat", "(", "pattern", ",", "\"!, {\"", ")", ";", "else", "strcat", "(", "pattern", ",", "\", {\"", ")", ";", "}", "strcat", "(", "pattern", ",", "reg_names", "[", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "offset", ")", ",", "0", ")", ")", "]", ")", ";", "for", "(", "i", "=", "offset", "+", "1", ";", "i", "<", "num_saves", ";", "i", "++", ")", "{", "strcat", "(", "pattern", ",", "\", \"", ")", ";", "strcat", "(", "pattern", ",", "reg_names", "[", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "i", ")", ",", "0", ")", ")", "]", ")", ";", "}", "strcat", "(", "pattern", ",", "\"}\"", ")", ";", "if", "(", "IS_INTERRUPT", "(", "arm_current_func_type", "(", ")", ")", "&&", "return_pc", ")", "strcat", "(", "pattern", ",", "\"^\"", ")", ";", "output_asm_insn", "(", "pattern", ",", "&", "cond", ")", ";", "}", ""], "natrual_language": ["OPERANDS", "[", "0", "]", "is", "the", "entire", "list", "of", "insns", "that", "constitute", "pop", ",", "OPERANDS", "[", "1", "]", "is", "the", "base", "register", ",", "RETURN_PC", "is", "true", "iff", "return", "insn", "is", "in", "the", "list", ",", "UPDATE", "is", "true", "iff", "the", "list", "contains", "explicit", "update", "of", "base", "register", "."], "TS_V_token": ["arm", "100", "0", "0", "1", "0", "1", "0", "1", "0", "0", "0", "0", "\"%?%D0\"", "\"%?%d0\"", "\"pop%s\\t{\"", "\"ldm%sfd\\t\"", "\"ldmia%s\\t\"", "\"ldm%sia\\t\"", "\"!, {\"", "\", {\"", "0", "0", "0", "1", "\", \"", "0", "0", "0", "\"}\"", "\"^\""], "File": "arm4", "Func": "arm_output_multireg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44667, "Length": 369}
{"ground_truth": ["", "const", "char", "*", "arm_output_shift", "(", "rtx", "*", "operands", ",", "int", "set_flags", ")", "{", "char", "pattern", "[", "100", "]", ";", "static", "const", "char", "flag_chars", "[", "3", "]", "=", "{", "'?'", ",", "'.'", ",", "'!'", "}", ";", "const", "char", "*", "shift", ";", "HOST_WIDE_INT", "val", ";", "char", "c", ";", "c", "=", "flag_chars", "[", "set_flags", "]", ";", "if", "(", "TARGET_UNIFIED_ASM", ")", "{", "shift", "=", "shift_op", "(", "operands", "[", "3", "]", ",", "&", "val", ")", ";", "if", "(", "shift", ")", "{", "if", "(", "val", "!=", "-", "1", ")", "operands", "[", "2", "]", "=", "GEN_INT", "(", "val", ")", ";", "sprintf", "(", "pattern", ",", "\"%s%%%c\\t%%0, %%1, %%2\"", ",", "shift", ",", "c", ")", ";", "}", "else", "sprintf", "(", "pattern", ",", "\"mov%%%c\\t%%0, %%1\"", ",", "c", ")", ";", "}", "else", "sprintf", "(", "pattern", ",", "\"mov%%%c\\t%%0, %%1%%S3\"", ",", "c", ")", ";", "output_asm_insn", "(", "pattern", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "assembly", "for", "a", "shift", "instruction", ".", "SET_FLAGS", "determines", "how", "the", "instruction", "modifies", "the", "condition", "codes", ".", "0", "-", "Do", "not", "set", "condition", "codes", ".", "1", "-", "Set", "condition", "codes", ".", "2", "-", "Use", "smallest", "instruction", "."], "TS_V_token": ["arm", "100", "3", "3", "1", "2", "\"%s%%%c\\t%%0, %%1, %%2\"", "\"mov%%%c\\t%%0, %%1\"", "\"mov%%%c\\t%%0, %%1%%S3\"", "\"\""], "File": "arm4", "Func": "arm_output_shift", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44668, "Length": 137}
{"ground_truth": ["", "bool", "arm_pad_arg_upward", "(", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "const_tree", "type", ")", "{", "if", "(", "!", "TARGET_AAPCS_BASED", ")", "return", "DEFAULT_FUNCTION_ARG_PADDING", "(", "mode", ",", "type", ")", "==", "upward", ";", "if", "(", "type", "&&", "BYTES_BIG_ENDIAN", "&&", "INTEGRAL_TYPE_P", "(", "type", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["For", "use", "by", "FUNCTION_ARG_PADDING", "(", "MODE", ",", "TYPE", ")", ".", "Return", "true", "if", "an", "argument", "passed", "on", "the", "stack", "should", "be", "padded", "upwards", ",", "i.e", ".", "if", "the", "least-significant", "byte", "has", "useful", "data", ".", "For", "legacy", "APCS", "ABIs", "we", "use", "the", "default", ".", "For", "AAPCS", "based", "ABIs", "small", "aggregate", "types", "are", "placed", "in", "the", "lowest", "memory", "address", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_pad_arg_upward", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44669, "Length": 44}
{"ground_truth": ["", "static", "bool", "arm_pass_by_reference", "(", "cumulative_args_t", "cum", "ATTRIBUTE_UNUSED", ",", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "const_tree", "type", ",", "bool", "named", "ATTRIBUTE_UNUSED", ")", "{", "return", "type", "&&", "TREE_CODE", "(", "TYPE_SIZE", "(", "type", ")", ")", "!=", "INTEGER_CST", ";", "}", ""], "natrual_language": ["Variable", "sized", "types", "are", "passed", "by", "reference", ".", "This", "is", "a", "GCC", "extension", "to", "the", "ARM", "ABI", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_pass_by_reference", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44670, "Length": 34}
{"ground_truth": ["", "static", "rtx", "arm_pic_static_addr", "(", "rtx", "orig", ",", "rtx", "reg", ")", "{", "rtx", "l1", ",", "labelno", ",", "offset_rtx", ",", "insn", ";", "gcc_assert", "(", "flag_pic", ")", ";", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "offset_rtx", "=", "plus_constant", "(", "Pmode", ",", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "offset_rtx", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "orig", ",", "offset_rtx", ")", ",", "UNSPEC_SYMBOL_OFFSET", ")", ";", "offset_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "offset_rtx", ")", ";", "insn", "=", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "reg", ",", "offset_rtx", ",", "labelno", ")", ")", ";", "return", "insn", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "address", "of", "a", "static", "var", "when", "flag_pic", "is", "set", "."], "TS_V_token": ["arm", "1", "8", "4", "2"], "File": "arm4", "Func": "arm_pic_static_addr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44671, "Length": 118}
{"ground_truth": ["", "static", "machine_mode", "arm_preferred_simd_mode", "(", "machine_mode", "mode", ")", "{", "if", "(", "TARGET_NEON", ")", "switch", "(", "mode", ")", "{", "case", "SFmode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V2SFmode", ":", "V4SFmode", ";", "case", "SImode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V2SImode", ":", "V4SImode", ";", "case", "HImode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V4HImode", ":", "V8HImode", ";", "case", "QImode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V8QImode", ":", "V16QImode", ";", "case", "DImode", ":", "if", "(", "!", "TARGET_NEON_VECTORIZE_DOUBLE", ")", "return", "V2DImode", ";", "break", ";", "default", ":", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "switch", "(", "mode", ")", "{", "case", "SImode", ":", "return", "V2SImode", ";", "case", "HImode", ":", "return", "V4HImode", ";", "case", "QImode", ":", "return", "V8QImode", ";", "default", ":", ";", "}", "return", "word_mode", ";", "}", ""], "natrual_language": ["Use", "the", "option", "-mvectorize-with-neon-double", "to", "override", "the", "use", "of", "quardword", "registers", "when", "autovectorizing", "for", "Neon", ",", "at", "least", "until", "multiple", "vector", "widths", "are", "supported", "properly", "by", "the", "middle-end", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_preferred_simd_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44672, "Length": 109}
{"ground_truth": ["", "void", "arm_print_tune_info", "(", "void", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t@.tune parameters\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@constant_limit:\\t%d\\n\"", ",", "current_tune", "->", "constant_limit", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@max_insns_skipped:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_skipped", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@num_prefetch_slots:\\t%d\\n\"", ",", "current_tune", "->", "num_prefetch_slots", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@l1_cache_size:\\t%d\\n\"", ",", "current_tune", "->", "l1_cache_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@l1_cache_line_size:\\t%d\\n\"", ",", "current_tune", "->", "l1_cache_line_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefer_constant_pool:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_constant_pool", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@branch_cost:\\t(s:speed, p:predictable)\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\ts&p\\tcost\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t00\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t01\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t10\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t11\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefer_ldrd_strd:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_ldrd_strd", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@logical_op_non_short_circuit:\\t[%d,%d]\\n\"", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit", "[", "0", "]", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit", "[", "1", "]", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefer_neon_for_64bits:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_neon_for_64bits", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@disparage_flag_setting_t16_encodings:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "disparage_flag_setting_t16_encodings", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@disparage_partial_flag_setting_t16_encodings:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "disparage_partial_flag_setting_t16_encodings", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@string_ops_prefer_neon:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "string_ops_prefer_neon", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@max_insns_inline_memset:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_inline_memset", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@fuseable_ops:\\t%u\\n\"", ",", "current_tune", "->", "fuseable_ops", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@sched_autopref:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "sched_autopref", ")", ";", "}", ""], "natrual_language": ["This", "function", "is", "used", "to", "print", "CPU", "tuning", "information", "as", "comment", "in", "assembler", "file", ".", "Pointers", "are", "not", "printed", "for", "now", "."], "TS_V_token": ["arm", "\"\\t@.tune parameters\\n\"", "\"\\t\\t@constant_limit:\\t%d\\n\"", "\"\\t\\t@max_insns_skipped:\\t%d\\n\"", "\"\\t\\t@num_prefetch_slots:\\t%d\\n\"", "\"\\t\\t@l1_cache_size:\\t%d\\n\"", "\"\\t\\t@l1_cache_line_size:\\t%d\\n\"", "\"\\t\\t@prefer_constant_pool:\\t%d\\n\"", "\"\\t\\t@branch_cost:\\t(s:speed, p:predictable)\\n\"", "\"\\t\\t\\t\\ts&p\\tcost\\n\"", "\"\\t\\t\\t\\t00\\t%d\\n\"", "\"\\t\\t\\t\\t01\\t%d\\n\"", "\"\\t\\t\\t\\t10\\t%d\\n\"", "\"\\t\\t\\t\\t11\\t%d\\n\"", "\"\\t\\t@prefer_ldrd_strd:\\t%d\\n\"", "\"\\t\\t@logical_op_non_short_circuit:\\t[%d,%d]\\n\"", "0", "1", "\"\\t\\t@prefer_neon_for_64bits:\\t%d\\n\"", "\"\\t\\t@disparage_flag_setting_t16_encodings:\\t%d\\n\"", "\"\\t\\t@disparage_partial_flag_setting_t16_encodings:\\t%d\\n\"", "\"\\t\\t@string_ops_prefer_neon:\\t%d\\n\"", "\"\\t\\t@max_insns_inline_memset:\\t%d\\n\"", "\"\\t\\t@fuseable_ops:\\t%u\\n\"", "\"\\t\\t@sched_autopref:\\t%d\\n\""], "File": "arm4", "Func": "arm_print_tune_info", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44673, "Length": 294}
{"ground_truth": ["", "static", "tree", "arm_promoted_type", "(", "const_tree", "t", ")", "{", "if", "(", "SCALAR_FLOAT_TYPE_P", "(", "t", ")", "&&", "TYPE_PRECISION", "(", "t", ")", "==", "16", ")", "return", "float_type_node", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Implement", "TARGET_PROMOTED_TYPE", "."], "TS_V_token": ["arm", "16"], "File": "arm4", "Func": "arm_promoted_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44674, "Length": 29}
{"ground_truth": ["", "enum", "reg_class", "arm_regno_class", "(", "int", "regno", ")", "{", "if", "(", "regno", "==", "PC_REGNUM", ")", "return", "NO_REGS", ";", "if", "(", "TARGET_THUMB1", ")", "{", "if", "(", "regno", "==", "STACK_POINTER_REGNUM", ")", "return", "STACK_REG", ";", "if", "(", "regno", "==", "CC_REGNUM", ")", "return", "CC_REG", ";", "if", "(", "regno", "<", "8", ")", "return", "LO_REGS", ";", "return", "HI_REGS", ";", "}", "if", "(", "TARGET_THUMB2", "&&", "regno", "<", "8", ")", "return", "LO_REGS", ";", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "TARGET_THUMB2", "?", "HI_REGS", ":", "GENERAL_REGS", ";", "if", "(", "regno", "==", "CC_REGNUM", "||", "regno", "==", "VFPCC_REGNUM", ")", "return", "TARGET_THUMB2", "?", "CC_REG", ":", "NO_REGS", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "regno", "<=", "D7_VFP_REGNUM", ")", "return", "VFP_D0_D7_REGS", ";", "else", "if", "(", "regno", "<=", "LAST_LO_VFP_REGNUM", ")", "return", "VFP_LO_REGS", ";", "else", "return", "VFP_HI_REGS", ";", "}", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_REGS", ";", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_GR_REGS", ";", "return", "NO_REGS", ";", "}", ""], "natrual_language": ["For", "efficiency", "and", "historical", "reasons", "LO_REGS", ",", "HI_REGS", "and", "CC_REGS", "are", "not", "used", "in", "arm", "mode", "."], "TS_V_token": ["arm", "8", "8"], "File": "arm4", "Func": "arm_regno_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44675, "Length": 158}
{"ground_truth": ["", "static", "bool", "arm_rtx_costs", "(", "rtx", "x", ",", "int", "code", ",", "int", "outer_code", ",", "int", "opno", "ATTRIBUTE_UNUSED", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "bool", "result", ";", "if", "(", "TARGET_OLD_RTX_COSTS", "||", "(", "!", "current_tune", "->", "insn_extra_cost", "&&", "!", "TARGET_NEW_GENERIC_COSTS", ")", ")", "{", "if", "(", "!", "speed", ")", "result", "=", "arm_size_rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "total", ")", ";", "else", "result", "=", "current_tune", "->", "rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "total", ",", "speed", ")", ";", "}", "else", "{", "if", "(", "current_tune", "->", "insn_extra_cost", ")", "result", "=", "arm_new_rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "current_tune", "->", "insn_extra_cost", ",", "total", ",", "speed", ")", ";", "else", "result", "=", "arm_new_rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "&", "generic_extra_costs", ",", "total", ",", "speed", ")", ";", "}", "if", "(", "dump_file", "&&", "(", "dump_flags", "&", "TDF_DETAILS", ")", ")", "{", "print_rtl_single", "(", "dump_file", ",", "x", ")", ";", "fprintf", "(", "dump_file", ",", "\"\\n%s cost: %d (%s)\\n\"", ",", "speed", "?", "\"Hot\"", ":", "\"Cold\"", ",", "*", "total", ",", "result", "?", "\"final\"", ":", "\"partial\"", ")", ";", "}", "return", "result", ";", "}", ""], "natrual_language": ["RTX", "costs", "when", "optimizing", "for", "size", "."], "TS_V_token": ["arm", "\"\\n%s cost: %d (%s)\\n\"", "\"Hot\"", "\"Cold\"", "\"final\"", "\"partial\""], "File": "arm4", "Func": "arm_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44676, "Length": 204}
{"ground_truth": ["", "static", "int", "arm_save_coproc_regs", "(", "void", ")", "{", "int", "saved_size", "=", "0", ";", "unsigned", "reg", ";", "unsigned", "start_reg", ";", "rtx", "insn", ";", "for", "(", "reg", "=", "LAST_IWMMXT_REGNUM", ";", "reg", ">=", "FIRST_IWMMXT_REGNUM", ";", "reg", "--", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "!", "call_used_regs", "[", "reg", "]", ")", "{", "insn", "=", "gen_rtx_PRE_DEC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ";", "insn", "=", "gen_rtx_MEM", "(", "V2SImode", ",", "insn", ")", ";", "insn", "=", "emit_set_insn", "(", "insn", ",", "gen_rtx_REG", "(", "V2SImode", ",", "reg", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "saved_size", "+=", "8", ";", "}", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", ")", "{", "start_reg", "=", "FIRST_VFP_REGNUM", ";", "for", "(", "reg", "=", "FIRST_VFP_REGNUM", ";", "reg", "<", "LAST_VFP_REGNUM", ";", "reg", "+=", "2", ")", "{", "if", "(", "(", "!", "df_regs_ever_live_p", "(", "reg", ")", "||", "call_used_regs", "[", "reg", "]", ")", "&&", "(", "!", "df_regs_ever_live_p", "(", "reg", "+", "1", ")", "||", "call_used_regs", "[", "reg", "+", "1", "]", ")", ")", "{", "if", "(", "start_reg", "!=", "reg", ")", "saved_size", "+=", "vfp_emit_fstmd", "(", "start_reg", ",", "(", "reg", "-", "start_reg", ")", "/", "2", ")", ";", "start_reg", "=", "reg", "+", "2", ";", "}", "}", "if", "(", "start_reg", "!=", "reg", ")", "saved_size", "+=", "vfp_emit_fstmd", "(", "start_reg", ",", "(", "reg", "-", "start_reg", ")", "/", "2", ")", ";", "}", "return", "saved_size", ";", "}", ""], "natrual_language": ["Emit", "RTL", "to", "save", "coprocessor", "registers", "on", "function", "entry", ".", "Returns", "the", "number", "of", "bytes", "pushed", "."], "TS_V_token": ["arm", "0", "1", "8", "2", "1", "1", "2", "2", "2"], "File": "arm4", "Func": "arm_save_coproc_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44677, "Length": 206}
{"ground_truth": ["", "static", "bool", "arm_scalar_mode_supported_p", "(", "machine_mode", "mode", ")", "{", "if", "(", "mode", "==", "HFmode", ")", "return", "(", "arm_fp16_format", "!=", "ARM_FP16_FORMAT_NONE", ")", ";", "else", "if", "(", "ALL_FIXED_POINT_MODE_P", "(", "mode", ")", ")", "return", "true", ";", "else", "return", "default_scalar_mode_supported_p", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCALAR_MODE_SUPPORTED_P", ".", "This", "simply", "adds", "HFmode", "as", "a", "supported", "mode", ";", "even", "though", "we", "do", "n't", "implement", "arithmetic", "on", "this", "type", "directly", ",", "it", "'s", "supported", "by", "optabs", "conversions", ",", "much", "the", "way", "the", "double-word", "arithmetic", "is", "special-cased", "in", "the", "default", "hook", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_scalar_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44678, "Length": 40}
{"ground_truth": ["", "static", "int", "arm_sched_reorder", "(", "FILE", "*", "file", ",", "int", "verbose", ",", "rtx_insn", "*", "*", "ready", ",", "int", "*", "n_readyp", ",", "int", "clock", ")", "{", "switch", "(", "arm_tune", ")", "{", "case", "cortexa7", ":", "cortexa7_sched_reorder", "(", "file", ",", "verbose", ",", "ready", ",", "n_readyp", ",", "clock", ")", ";", "break", ";", "default", ":", "break", ";", "}", "return", "arm_issue_rate", "(", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_REORDER", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_sched_reorder", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44679, "Length": 58}
{"ground_truth": ["", "static", "void", "arm_setup_incoming_varargs", "(", "cumulative_args_t", "pcum_v", ",", "machine_mode", "mode", ",", "tree", "type", ",", "int", "*", "pretend_size", ",", "int", "second_time", "ATTRIBUTE_UNUSED", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "cfun", "->", "machine", "->", "uses_anonymous_args", "=", "1", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "nregs", "=", "pcum", "->", "aapcs_ncrn", ";", "if", "(", "(", "nregs", "&", "1", ")", "&&", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ")", "nregs", "++", ";", "}", "else", "nregs", "=", "pcum", "->", "nregs", ";", "if", "(", "nregs", "<", "NUM_ARG_REGS", ")", "*", "pretend_size", "=", "(", "NUM_ARG_REGS", "-", "nregs", ")", "*", "UNITS_PER_WORD", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_SETUP_INCOMING_VARARGS", ".", "On", "the", "ARM", ",", "PRETEND_SIZE", "is", "set", "in", "order", "to", "have", "the", "prologue", "push", "the", "last", "named", "arg", "and", "all", "anonymous", "args", "onto", "the", "stack", ".", "XXX", "I", "know", "the", "prologue", "should", "n't", "be", "pushing", "registers", ",", "but", "it", "is", "faster", "that", "way", "."], "TS_V_token": ["arm", "1", "1"], "File": "arm4", "Func": "arm_setup_incoming_varargs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44680, "Length": 101}
{"ground_truth": ["", "static", "bool", "arm_slowmul_rtx_costs", "(", "rtx", "x", ",", "enum", "rtx_code", "code", ",", "enum", "rtx_code", "outer_code", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "*", "total", "=", "thumb1_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "mode", "==", "DImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "20", ")", ";", "return", "false", ";", "}", "if", "(", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ";", "int", "cost", ",", "const_ok", "=", "const_ok_for_arm", "(", "i", ")", ";", "int", "j", ",", "booth_unit_size", ";", "cost", "=", "const_ok", "?", "4", ":", "8", ";", "booth_unit_size", "=", "2", ";", "for", "(", "j", "=", "0", ";", "i", "&&", "j", "<", "32", ";", "j", "+=", "booth_unit_size", ")", "{", "i", ">>=", "booth_unit_size", ";", "cost", "++", ";", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "cost", ")", ";", "*", "total", "+=", "rtx_cost", "(", "XEXP", "(", "x", ",", "0", ")", ",", "code", ",", "0", ",", "speed", ")", ";", "return", "true", ";", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "20", ")", ";", "return", "false", ";", "default", ":", "return", "arm_rtx_costs_1", "(", "x", ",", "outer_code", ",", "total", ",", "speed", ")", ";", ";", "}", "}", ""], "natrual_language": ["RTX", "costs", "for", "cores", "with", "a", "slow", "MUL", "implementation", ".", "Thumb-2", "is", "not", "supported", "on", "any", "``", "slowmul", "''", "cores", ",", "so", "it", "can", "be", "ignored", "."], "TS_V_token": ["arm", "20", "1", "1", "0xffffffff", "4", "8", "2", "0", "32", "0", "0", "20"], "File": "arm4", "Func": "arm_slowmul_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44681, "Length": 232}
{"ground_truth": ["", "void", "arm_split_atomic_op", "(", "enum", "rtx_code", "code", ",", "rtx", "old_out", ",", "rtx", "new_out", ",", "rtx", "mem", ",", "rtx", "value", ",", "rtx", "model_rtx", ",", "rtx", "cond", ")", "{", "enum", "memmodel", "model", "=", "(", "enum", "memmodel", ")", "INTVAL", "(", "model_rtx", ")", ";", "machine_mode", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "machine_mode", "wmode", "=", "(", "mode", "==", "DImode", "?", "DImode", ":", "SImode", ")", ";", "rtx_code_label", "*", "label", ";", "rtx", "x", ";", "bool", "use_acquire", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "model", "==", "MEMMODEL_RELAXED", "||", "model", "==", "MEMMODEL_CONSUME", "||", "model", "==", "MEMMODEL_RELEASE", ")", ";", "bool", "use_release", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "model", "==", "MEMMODEL_RELAXED", "||", "model", "==", "MEMMODEL_CONSUME", "||", "model", "==", "MEMMODEL_ACQUIRE", ")", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_pre_atomic_barrier", "(", "model", ")", ";", "label", "=", "gen_label_rtx", "(", ")", ";", "emit_label", "(", "label", ")", ";", "if", "(", "new_out", ")", "new_out", "=", "gen_lowpart", "(", "wmode", ",", "new_out", ")", ";", "if", "(", "old_out", ")", "old_out", "=", "gen_lowpart", "(", "wmode", ",", "old_out", ")", ";", "else", "old_out", "=", "new_out", ";", "value", "=", "simplify_gen_subreg", "(", "wmode", ",", "value", ",", "mode", ",", "0", ")", ";", "arm_emit_load_exclusive", "(", "mode", ",", "old_out", ",", "mem", ",", "use_acquire", ")", ";", "switch", "(", "code", ")", "{", "case", "SET", ":", "new_out", "=", "value", ";", "break", ";", "case", "NOT", ":", "x", "=", "gen_rtx_AND", "(", "wmode", ",", "old_out", ",", "value", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "new_out", ",", "x", ")", ")", ";", "x", "=", "gen_rtx_NOT", "(", "wmode", ",", "new_out", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "new_out", ",", "x", ")", ")", ";", "break", ";", "case", "MINUS", ":", "if", "(", "CONST_INT_P", "(", "value", ")", ")", "{", "value", "=", "GEN_INT", "(", "-", "INTVAL", "(", "value", ")", ")", ";", "code", "=", "PLUS", ";", "}", "case", "PLUS", ":", "if", "(", "mode", "==", "DImode", ")", "{", "emit_move_insn", "(", "new_out", ",", "old_out", ")", ";", "if", "(", "code", "==", "PLUS", ")", "x", "=", "gen_adddi3", "(", "new_out", ",", "new_out", ",", "value", ")", ";", "else", "x", "=", "gen_subdi3", "(", "new_out", ",", "new_out", ",", "value", ")", ";", "emit_insn", "(", "x", ")", ";", "break", ";", "}", "default", ":", "x", "=", "gen_rtx_fmt_ee", "(", "code", ",", "wmode", ",", "old_out", ",", "value", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "new_out", ",", "x", ")", ")", ";", "break", ";", "}", "arm_emit_store_exclusive", "(", "mode", ",", "cond", ",", "mem", ",", "gen_lowpart", "(", "mode", ",", "new_out", ")", ",", "use_release", ")", ";", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_cbranchsi4", "(", "x", ",", "cond", ",", "const0_rtx", ",", "label", ")", ")", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_post_atomic_barrier", "(", "model", ")", ";", "}", ""], "natrual_language": ["Split", "an", "atomic", "operation", "pattern", ".", "Operation", "is", "given", "by", "CODE", "and", "is", "one", "of", "PLUS", ",", "MINUS", ",", "IOR", ",", "XOR", ",", "SET", "(", "for", "an", "exchange", "operation", ")", "or", "NOT", "(", "for", "a", "nand", "operation", ")", ".", "Operation", "is", "performed", "on", "the", "content", "at", "MEM", "and", "on", "VALUE", "following", "the", "memory", "model", "MODEL_RTX", ".", "The", "content", "at", "MEM", "before", "and", "after", "the", "operation", "is", "returned", "in", "OLD_OUT", "and", "NEW_OUT", "respectively", "while", "the", "success", "of", "the", "operation", "is", "returned", "in", "COND", ".", "Using", "a", "scratch", "register", "or", "an", "operand", "register", "for", "these", "determines", "what", "result", "is", "returned", "for", "that", "pattern", "."], "TS_V_token": ["arm", "0"], "File": "arm4", "Func": "arm_split_atomic_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44682, "Length": 419}
{"ground_truth": ["", "void", "arm_split_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "scratch", ";", "machine_mode", "mode", ";", "enum", "memmodel", "mod_s", ",", "mod_f", ";", "bool", "is_weak", ";", "rtx_code_label", "*", "label1", ",", "*", "label2", ";", "rtx", "x", ",", "cond", ";", "rval", "=", "operands", "[", "0", "]", ";", "mem", "=", "operands", "[", "1", "]", ";", "oldval", "=", "operands", "[", "2", "]", ";", "newval", "=", "operands", "[", "3", "]", ";", "is_weak", "=", "(", "operands", "[", "4", "]", "!=", "const0_rtx", ")", ";", "mod_s", "=", "(", "enum", "memmodel", ")", "INTVAL", "(", "operands", "[", "5", "]", ")", ";", "mod_f", "=", "(", "enum", "memmodel", ")", "INTVAL", "(", "operands", "[", "6", "]", ")", ";", "scratch", "=", "operands", "[", "7", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "bool", "use_acquire", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "mod_s", "==", "MEMMODEL_RELAXED", "||", "mod_s", "==", "MEMMODEL_CONSUME", "||", "mod_s", "==", "MEMMODEL_RELEASE", ")", ";", "bool", "use_release", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "mod_s", "==", "MEMMODEL_RELAXED", "||", "mod_s", "==", "MEMMODEL_CONSUME", "||", "mod_s", "==", "MEMMODEL_ACQUIRE", ")", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_pre_atomic_barrier", "(", "mod_s", ")", ";", "label1", "=", "NULL", ";", "if", "(", "!", "is_weak", ")", "{", "label1", "=", "gen_label_rtx", "(", ")", ";", "emit_label", "(", "label1", ")", ";", "}", "label2", "=", "gen_label_rtx", "(", ")", ";", "arm_emit_load_exclusive", "(", "mode", ",", "rval", ",", "mem", ",", "use_acquire", ")", ";", "cond", "=", "arm_gen_compare_reg", "(", "NE", ",", "rval", ",", "oldval", ",", "scratch", ")", ";", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "x", "=", "gen_rtx_IF_THEN_ELSE", "(", "VOIDmode", ",", "x", ",", "gen_rtx_LABEL_REF", "(", "Pmode", ",", "label2", ")", ",", "pc_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "pc_rtx", ",", "x", ")", ")", ";", "arm_emit_store_exclusive", "(", "mode", ",", "scratch", ",", "mem", ",", "newval", ",", "use_release", ")", ";", "cond", "=", "gen_rtx_REG", "(", "CCmode", ",", "CC_REGNUM", ")", ";", "x", "=", "gen_rtx_COMPARE", "(", "CCmode", ",", "scratch", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "cond", ",", "x", ")", ")", ";", "if", "(", "!", "is_weak", ")", "{", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "x", "=", "gen_rtx_IF_THEN_ELSE", "(", "VOIDmode", ",", "x", ",", "gen_rtx_LABEL_REF", "(", "Pmode", ",", "label1", ")", ",", "pc_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "pc_rtx", ",", "x", ")", ")", ";", "}", "if", "(", "mod_f", "!=", "MEMMODEL_RELAXED", ")", "emit_label", "(", "label2", ")", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_post_atomic_barrier", "(", "mod_s", ")", ";", "if", "(", "mod_f", "==", "MEMMODEL_RELAXED", ")", "emit_label", "(", "label2", ")", ";", "}", ""], "natrual_language": ["Split", "a", "compare", "and", "swap", "pattern", ".", "It", "is", "IMPLEMENTATION", "DEFINED", "whether", "another", "memory", "store", "between", "the", "load-exclusive", "and", "store-exclusive", "can", "reset", "the", "monitor", "from", "Exclusive", "to", "Open", "state", ".", "This", "means", "we", "must", "wait", "until", "after", "reload", "to", "split", "the", "pattern", ",", "lest", "we", "get", "a", "register", "spill", "in", "the", "middle", "of", "the", "atomic", "sequence", "."], "TS_V_token": ["arm", "0", "1", "2", "3", "4", "5", "6", "7"], "File": "arm4", "Func": "arm_split_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44683, "Length": 402}
{"ground_truth": ["", "bool", "arm_tls_referenced_p", "(", "rtx", "x", ")", "{", "if", "(", "!", "TARGET_HAVE_TLS", ")", "return", "false", ";", "subrtx_iterator", "::", "array_type", "array", ";", "FOR_EACH_SUBRTX", "(", "iter", ",", "array", ",", "x", ",", "ALL", ")", "{", "const_rtx", "x", "=", "*", "iter", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "&&", "SYMBOL_REF_TLS_MODEL", "(", "x", ")", "!=", "0", ")", "return", "true", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "iter", ".", "skip_subrtxes", "(", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "contains", "any", "TLS", "symbol", "references", "."], "TS_V_token": ["arm", "0", "1"], "File": "arm4", "Func": "arm_tls_referenced_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44684, "Length": 85}
{"ground_truth": ["", "static", "rtx", "arm_trampoline_adjust_address", "(", "rtx", "addr", ")", "{", "if", "(", "TARGET_THUMB", ")", "addr", "=", "expand_simple_binop", "(", "Pmode", ",", "IOR", ",", "addr", ",", "const1_rtx", ",", "NULL", ",", "0", ",", "OPTAB_LIB_WIDEN", ")", ";", "return", "addr", ";", "}", ""], "natrual_language": ["Thumb", "trampolines", "should", "be", "entered", "in", "thumb", "mode", ",", "so", "set", "the", "bottom", "bit", "of", "the", "address", "."], "TS_V_token": ["arm", "0"], "File": "arm4", "Func": "arm_trampoline_adjust_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44685, "Length": 35}
{"ground_truth": ["", "static", "void", "arm_trampoline_init", "(", "rtx", "m_tramp", ",", "tree", "fndecl", ",", "rtx", "chain_value", ")", "{", "rtx", "fnaddr", ",", "mem", ",", "a_tramp", ";", "emit_block_move", "(", "m_tramp", ",", "assemble_trampoline_template", "(", ")", ",", "GEN_INT", "(", "TRAMPOLINE_SIZE", ")", ",", "BLOCK_OP_NORMAL", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "TARGET_32BIT", "?", "8", ":", "12", ")", ";", "emit_move_insn", "(", "mem", ",", "chain_value", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "TARGET_32BIT", "?", "12", ":", "16", ")", ";", "fnaddr", "=", "XEXP", "(", "DECL_RTL", "(", "fndecl", ")", ",", "0", ")", ";", "emit_move_insn", "(", "mem", ",", "fnaddr", ")", ";", "a_tramp", "=", "XEXP", "(", "m_tramp", ",", "0", ")", ";", "emit_library_call", "(", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "\"__clear_cache\"", ")", ",", "LCT_NORMAL", ",", "VOIDmode", ",", "2", ",", "a_tramp", ",", "Pmode", ",", "plus_constant", "(", "Pmode", ",", "a_tramp", ",", "TRAMPOLINE_SIZE", ")", ",", "Pmode", ")", ";", "}", ""], "natrual_language": ["Emit", "RTL", "insns", "to", "initialize", "the", "variable", "parts", "of", "a", "trampoline", "."], "TS_V_token": ["arm", "8", "12", "12", "16", "0", "0", "\"__clear_cache\"", "2"], "File": "arm4", "Func": "arm_trampoline_init", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44686, "Length": 134}
{"ground_truth": ["", "bool", "arm_validize_comparison", "(", "rtx", "*", "comparison", ",", "rtx", "*", "op1", ",", "rtx", "*", "op2", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "*", "comparison", ")", ";", "int", "code_int", ";", "machine_mode", "mode", "=", "(", "GET_MODE", "(", "*", "op1", ")", "==", "VOIDmode", ")", "?", "GET_MODE", "(", "*", "op2", ")", ":", "GET_MODE", "(", "*", "op1", ")", ";", "gcc_assert", "(", "GET_MODE", "(", "*", "op1", ")", "!=", "VOIDmode", "||", "GET_MODE", "(", "*", "op2", ")", "!=", "VOIDmode", ")", ";", "if", "(", "code", "==", "UNEQ", "||", "code", "==", "LTGT", ")", "return", "false", ";", "code_int", "=", "(", "int", ")", "code", ";", "arm_canonicalize_comparison", "(", "&", "code_int", ",", "op1", ",", "op2", ",", "0", ")", ";", "PUT_CODE", "(", "*", "comparison", ",", "(", "enum", "rtx_code", ")", "code_int", ")", ";", "switch", "(", "mode", ")", "{", "case", "SImode", ":", "if", "(", "!", "arm_add_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "arm_add_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "case", "DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "cmpdi_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "case", "SFmode", ":", "case", "DFmode", ":", "if", "(", "!", "arm_float_compare_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "arm_float_compare_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "default", ":", "break", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "a", "valid", "comparison", "operation", "and", "makes", "the", "operands", "in", "a", "form", "that", "is", "valid", "."], "TS_V_token": ["arm", "0"], "File": "arm4", "Func": "arm_validize_comparison", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44687, "Length": 284}
{"ground_truth": ["", "static", "bool", "arm_vectorize_vec_perm_const_ok", "(", "machine_mode", "vmode", ",", "const", "unsigned", "char", "*", "sel", ")", "{", "struct", "expand_vec_perm_d", "d", ";", "unsigned", "int", "i", ",", "nelt", ",", "which", ";", "bool", "ret", ";", "d", ".", "vmode", "=", "vmode", ";", "d", ".", "nelt", "=", "nelt", "=", "GET_MODE_NUNITS", "(", "d", ".", "vmode", ")", ";", "d", ".", "testing_p", "=", "true", ";", "memcpy", "(", "d", ".", "perm", ",", "sel", ",", "nelt", ")", ";", "for", "(", "i", "=", "which", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "{", "unsigned", "char", "e", "=", "d", ".", "perm", "[", "i", "]", ";", "gcc_assert", "(", "e", "<", "2", "*", "nelt", ")", ";", "which", "|=", "(", "e", "<", "nelt", "?", "1", ":", "2", ")", ";", "}", "if", "(", "which", "==", "2", ")", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "d", ".", "perm", "[", "i", "]", "-=", "nelt", ";", "d", ".", "one_vector_p", "=", "(", "which", "!=", "3", ")", ";", "d", ".", "target", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "1", ")", ";", "d", ".", "op1", "=", "d", ".", "op0", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "2", ")", ";", "if", "(", "!", "d", ".", "one_vector_p", ")", "d", ".", "op1", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "3", ")", ";", "start_sequence", "(", ")", ";", "ret", "=", "arm_expand_vec_perm_const_1", "(", "&", "d", ")", ";", "end_sequence", "(", ")", ";", "return", "ret", ";", "}", ""], "natrual_language": ["Implement", "TARGET_VECTORIZE_VEC_PERM_CONST_OK", "."], "TS_V_token": ["arm", "0", "2", "1", "2", "2", "0", "3", "1", "2", "3"], "File": "arm4", "Func": "arm_vectorize_vec_perm_const_ok", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44688, "Length": 228}
{"ground_truth": ["", "bool", "arm_vector_mode_supported_p", "(", "machine_mode", "mode", ")", "{", "if", "(", "TARGET_NEON", "&&", "(", "mode", "==", "V2SFmode", "||", "mode", "==", "V4SImode", "||", "mode", "==", "V8HImode", "||", "mode", "==", "V4HFmode", "||", "mode", "==", "V16QImode", "||", "mode", "==", "V4SFmode", "||", "mode", "==", "V2DImode", ")", ")", "return", "true", ";", "if", "(", "(", "TARGET_NEON", "||", "TARGET_IWMMXT", ")", "&&", "(", "(", "mode", "==", "V2SImode", ")", "||", "(", "mode", "==", "V4HImode", ")", "||", "(", "mode", "==", "V8QImode", ")", ")", ")", "return", "true", ";", "if", "(", "TARGET_INT_SIMD", "&&", "(", "mode", "==", "V4UQQmode", "||", "mode", "==", "V4QQmode", "||", "mode", "==", "V2UHQmode", "||", "mode", "==", "V2HQmode", "||", "mode", "==", "V2UHAmode", "||", "mode", "==", "V2HAmode", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "vector_mode_supported_p", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "arm_vector_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44689, "Length": 112}
{"ground_truth": ["", "static", "bool", "arm_xscale_rtx_costs", "(", "rtx", "x", ",", "enum", "rtx_code", "code", ",", "enum", "rtx_code", "outer_code", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "*", "total", "=", "thumb1_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "switch", "(", "code", ")", "{", "case", "COMPARE", ":", "if", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "!=", "MULT", ")", "return", "arm_rtx_costs_1", "(", "x", ",", "outer_code", ",", "total", ",", "speed", ")", ";", "*", "total", "=", "COSTS_N_INSNS", "(", "3", ")", ";", "return", "false", ";", "case", "MULT", ":", "if", "(", "mode", "==", "DImode", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "&&", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "ZERO_EXTEND", "||", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "SIGN_EXTEND", ")", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "2", ")", ";", "return", "false", ";", "}", "if", "(", "mode", "==", "DImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "5", ")", ";", "return", "false", ";", "}", "if", "(", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", ";", "int", "cost", "=", "1", ";", "unsigned", "HOST_WIDE_INT", "masked_const", ";", "if", "(", "i", "&", "0x80000000", ")", "i", "=", "~", "i", ";", "i", "&=", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ";", "masked_const", "=", "i", "&", "0xffff8000", ";", "if", "(", "masked_const", "!=", "0", ")", "{", "cost", "++", ";", "masked_const", "=", "i", "&", "0xf8000000", ";", "if", "(", "masked_const", "!=", "0", ")", "cost", "++", ";", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "cost", ")", ";", "return", "false", ";", "}", "if", "(", "mode", "==", "SImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "3", ")", ";", "return", "false", ";", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "20", ")", ";", "return", "false", ";", "default", ":", "return", "arm_rtx_costs_1", "(", "x", ",", "outer_code", ",", "total", ",", "speed", ")", ";", "}", "}", ""], "natrual_language": ["RTX", "cost", "for", "XScale", "CPUs", ".", "Thumb-2", "is", "not", "supported", "on", "any", "xscale", "cores", ",", "so", "it", "can", "be", "ignored", "."], "TS_V_token": ["arm", "0", "3", "0", "1", "0", "0", "2", "5", "1", "1", "1", "0x80000000", "0xffffffff", "0xffff8000", "0", "0xf8000000", "0", "3", "20"], "File": "arm4", "Func": "arm_xscale_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44690, "Length": 331}
{"ground_truth": ["", "static", "void", "bounds_check", "(", "rtx", "operand", ",", "HOST_WIDE_INT", "low", ",", "HOST_WIDE_INT", "high", ",", "const", "char", "*", "err", ")", "{", "HOST_WIDE_INT", "lane", ";", "gcc_assert", "(", "CONST_INT_P", "(", "operand", ")", ")", ";", "lane", "=", "INTVAL", "(", "operand", ")", ";", "if", "(", "lane", "<", "low", "||", "lane", ">=", "high", ")", "error", "(", "err", ")", ";", "}", ""], "natrual_language": ["Ensure", "OPERAND", "lies", "between", "LOW", "(", "inclusive", ")", "and", "HIGH", "(", "exclusive", ")", ".", "Raise", "ERR", "if", "it", "does", "n't", ".", "FIXME", ":", "NEON", "bounds", "checks", "occur", "late", "in", "compilation", ",", "so", "reported", "source", "locations", "are", "bogus", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "bounds_check", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44691, "Length": 53}
{"ground_truth": ["", "int", "const_ok_for_arm", "(", "HOST_WIDE_INT", "i", ")", "{", "int", "lowbit", ";", "if", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", "!=", "0", "&&", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", "!=", "(", "(", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0", ")", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ")", ")", "return", "FALSE", ";", "i", "&=", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ";", "if", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xff", ")", "==", "0", ")", "return", "TRUE", ";", "lowbit", "=", "ffs", "(", "(", "int", ")", "i", ")", "-", "1", ";", "if", "(", "TARGET_ARM", ")", "lowbit", "&=", "~", "1", ";", "if", "(", "(", "i", "&", "~", "(", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "0xff", ")", "<<", "lowbit", ")", ")", "==", "0", ")", "return", "TRUE", ";", "if", "(", "TARGET_ARM", ")", "{", "if", "(", "lowbit", "<=", "4", "&&", "(", "(", "i", "&", "~", "0xc000003f", ")", "==", "0", "||", "(", "i", "&", "~", "0xf000000f", ")", "==", "0", "||", "(", "i", "&", "~", "0xfc000003", ")", "==", "0", ")", ")", "return", "TRUE", ";", "}", "else", "{", "HOST_WIDE_INT", "v", ";", "v", "=", "i", "&", "0xff", ";", "v", "|=", "v", "<<", "16", ";", "if", "(", "i", "==", "v", "||", "i", "==", "(", "v", "|", "(", "v", "<<", "8", ")", ")", ")", "return", "TRUE", ";", "v", "=", "i", "&", "0xff00", ";", "v", "|=", "v", "<<", "16", ";", "if", "(", "i", "==", "v", ")", "return", "TRUE", ";", "}", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "int", "I", "is", "a", "valid", "immediate", "ARM", "constant", "."], "TS_V_token": ["arm", "0xffffffff", "0", "0xffffffff", "0", "0xffffffff", "0xffffffff", "0xff", "0", "1", "1", "0xff", "0", "4", "0xc000003f", "0", "0xf000000f", "0", "0xfc000003", "0", "0xff", "16", "8", "0xff00", "16"], "File": "arm4", "Func": "const_ok_for_arm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44692, "Length": 238}
{"ground_truth": ["", "int", "const_ok_for_dimode_op", "(", "HOST_WIDE_INT", "i", ",", "enum", "rtx_code", "code", ")", "{", "HOST_WIDE_INT", "hi_val", "=", "(", "i", ">>", "32", ")", "&", "0xFFFFFFFF", ";", "HOST_WIDE_INT", "lo_val", "=", "i", "&", "0xFFFFFFFF", ";", "rtx", "hi", "=", "GEN_INT", "(", "hi_val", ")", ";", "rtx", "lo", "=", "GEN_INT", "(", "lo_val", ")", ";", "if", "(", "TARGET_THUMB1", ")", "return", "0", ";", "switch", "(", "code", ")", "{", "case", "AND", ":", "case", "IOR", ":", "case", "XOR", ":", "return", "(", "const_ok_for_op", "(", "hi_val", ",", "code", ")", "||", "hi_val", "==", "0xFFFFFFFF", ")", "&&", "(", "const_ok_for_op", "(", "lo_val", ",", "code", ")", "||", "lo_val", "==", "0xFFFFFFFF", ")", ";", "case", "PLUS", ":", "return", "arm_not_operand", "(", "hi", ",", "SImode", ")", "&&", "arm_add_operand", "(", "lo", ",", "SImode", ")", ";", "default", ":", "return", "0", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "I", "is", "a", "valid", "di", "mode", "constant", "for", "the", "operation", "CODE", "."], "TS_V_token": ["arm", "32", "0xFFFFFFFF", "0xFFFFFFFF", "0", "0xFFFFFFFF", "0xFFFFFFFF", "0"], "File": "arm4", "Func": "const_ok_for_dimode_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44693, "Length": 118}
{"ground_truth": ["", "int", "const_ok_for_op", "(", "HOST_WIDE_INT", "i", ",", "enum", "rtx_code", "code", ")", "{", "if", "(", "const_ok_for_arm", "(", "i", ")", ")", "return", "1", ";", "switch", "(", "code", ")", "{", "case", "SET", ":", "if", "(", "arm_arch_thumb2", "&&", "(", "i", "&", "0xffff0000", ")", "==", "0", ")", "return", "1", ";", "else", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "~", "i", ")", ")", ";", "case", "PLUS", ":", "if", "(", "TARGET_THUMB2", "&&", "(", "(", "i", "&", "0xfffff000", ")", "==", "0", "||", "(", "(", "-", "i", ")", "&", "0xfffff000", ")", "==", "0", ")", ")", "return", "1", ";", "case", "COMPARE", ":", "case", "EQ", ":", "case", "NE", ":", "case", "GT", ":", "case", "LE", ":", "case", "LT", ":", "case", "GE", ":", "case", "GEU", ":", "case", "LTU", ":", "case", "GTU", ":", "case", "LEU", ":", "case", "UNORDERED", ":", "case", "ORDERED", ":", "case", "UNEQ", ":", "case", "UNGE", ":", "case", "UNLT", ":", "case", "UNGT", ":", "case", "UNLE", ":", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "-", "i", ")", ")", ";", "case", "MINUS", ":", "case", "XOR", ":", "return", "0", ";", "case", "IOR", ":", "if", "(", "TARGET_THUMB2", ")", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "~", "i", ")", ")", ";", "return", "0", ";", "case", "AND", ":", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "~", "i", ")", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "I", "is", "a", "valid", "constant", "for", "the", "operation", "CODE", "."], "TS_V_token": ["arm", "1", "0xffff0000", "0", "1", "0xfffff000", "0", "0xfffff000", "0", "1", "0", "0"], "File": "arm4", "Func": "const_ok_for_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44694, "Length": 200}
{"ground_truth": ["", "enum", "reg_class", "coproc_secondary_reload_class", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "bool", "wb", ")", "{", "if", "(", "mode", "==", "HFmode", ")", "{", "if", "(", "!", "TARGET_NEON_FP16", ")", "return", "GENERAL_REGS", ";", "if", "(", "s_register_operand", "(", "x", ",", "mode", ")", "||", "neon_vector_mem_operand", "(", "x", ",", "2", ",", "true", ")", ")", "return", "NO_REGS", ";", "return", "GENERAL_REGS", ";", "}", "if", "(", "TARGET_NEON", "&&", "(", "MEM_P", "(", "x", ")", "||", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", "&&", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_FLOAT", "||", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "NO_REGS", ";", "if", "(", "arm_coproc_mem_operand", "(", "x", ",", "wb", ")", "||", "s_register_operand", "(", "x", ",", "mode", ")", ")", "return", "NO_REGS", ";", "return", "GENERAL_REGS", ";", "}", ""], "natrual_language": ["Return", "GENERAL_REGS", "if", "a", "scratch", "register", "required", "to", "reload", "x", "to/from", "coprocessor", "registers", ".", "Otherwise", "return", "NO_REGS", "."], "TS_V_token": ["arm", "2"], "File": "arm4", "Func": "coproc_secondary_reload_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44695, "Length": 119}
{"ground_truth": ["", "static", "bool", "cortexa7_older_only", "(", "rtx_insn", "*", "insn", ")", "{", "if", "(", "recog_memoized", "(", "insn", ")", "<", "0", ")", "return", "false", ";", "switch", "(", "get_attr_type", "(", "insn", ")", ")", "{", "case", "TYPE_ALU_DSP_REG", ":", "case", "TYPE_ALU_SREG", ":", "case", "TYPE_ALUS_SREG", ":", "case", "TYPE_LOGIC_REG", ":", "case", "TYPE_LOGICS_REG", ":", "case", "TYPE_ADC_REG", ":", "case", "TYPE_ADCS_REG", ":", "case", "TYPE_ADR", ":", "case", "TYPE_BFM", ":", "case", "TYPE_REV", ":", "case", "TYPE_MVN_REG", ":", "case", "TYPE_SHIFT_IMM", ":", "case", "TYPE_SHIFT_REG", ":", "case", "TYPE_LOAD_BYTE", ":", "case", "TYPE_LOAD1", ":", "case", "TYPE_STORE1", ":", "case", "TYPE_FFARITHS", ":", "case", "TYPE_FADDS", ":", "case", "TYPE_FFARITHD", ":", "case", "TYPE_FADDD", ":", "case", "TYPE_FMOV", ":", "case", "TYPE_F_CVT", ":", "case", "TYPE_FCMPS", ":", "case", "TYPE_FCMPD", ":", "case", "TYPE_FCONSTS", ":", "case", "TYPE_FCONSTD", ":", "case", "TYPE_FMULS", ":", "case", "TYPE_FMACS", ":", "case", "TYPE_FMULD", ":", "case", "TYPE_FMACD", ":", "case", "TYPE_FDIVS", ":", "case", "TYPE_FDIVD", ":", "case", "TYPE_F_MRC", ":", "case", "TYPE_F_MRRC", ":", "case", "TYPE_F_FLAG", ":", "case", "TYPE_F_LOADS", ":", "case", "TYPE_F_STORES", ":", "return", "true", ";", "default", ":", "return", "false", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "and", "only", "if", "this", "insn", "can", "dual-issue", "only", "as", "older", "."], "TS_V_token": ["arm", "0"], "File": "arm4", "Func": "cortexa7_older_only", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44696, "Length": 150}
{"ground_truth": ["", "static", "bool", "cortex_a9_sched_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "rtx", "link", ",", "rtx_insn", "*", "dep", ",", "int", "*", "cost", ")", "{", "switch", "(", "REG_NOTE_KIND", "(", "link", ")", ")", "{", "case", "REG_DEP_ANTI", ":", "*", "cost", "=", "0", ";", "return", "false", ";", "case", "REG_DEP_TRUE", ":", "case", "REG_DEP_OUTPUT", ":", "if", "(", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", ")", "{", "if", "(", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "SET", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "GET_MODE", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ")", ")", "==", "MODE_FLOAT", "||", "GET_MODE_CLASS", "(", "GET_MODE", "(", "SET_SRC", "(", "PATTERN", "(", "insn", ")", ")", ")", ")", "==", "MODE_FLOAT", ")", "{", "enum", "attr_type", "attr_type_insn", "=", "get_attr_type", "(", "insn", ")", ";", "enum", "attr_type", "attr_type_dep", "=", "get_attr_type", "(", "dep", ")", ";", "if", "(", "REG_P", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ")", "&&", "REG_P", "(", "SET_DEST", "(", "PATTERN", "(", "dep", ")", ")", ")", "&&", "reg_overlap_mentioned_p", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ",", "SET_DEST", "(", "PATTERN", "(", "dep", ")", ")", ")", ")", "{", "if", "(", "(", "attr_type_insn", "==", "TYPE_FMACS", "||", "attr_type_insn", "==", "TYPE_FMACD", ")", "&&", "(", "attr_type_dep", "==", "TYPE_FMACS", "||", "attr_type_dep", "==", "TYPE_FMACD", ")", ")", "{", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_OUTPUT", ")", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", "-", "3", ";", "else", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", ";", "return", "false", ";", "}", "else", "{", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_OUTPUT", ")", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", "+", "1", ";", "else", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", ";", "}", "return", "false", ";", "}", "}", "}", "}", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Adjust", "cost", "hook", "for", "Cortex", "A9", "."], "TS_V_token": ["arm", "0", "0", "0", "3", "1"], "File": "arm4", "Func": "cortex_a9_sched_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44697, "Length": 278}
{"ground_truth": ["", "static", "Mfix", "*", "create_fix_barrier", "(", "Mfix", "*", "fix", ",", "HOST_WIDE_INT", "max_address", ")", "{", "HOST_WIDE_INT", "count", "=", "0", ";", "rtx_barrier", "*", "barrier", ";", "rtx_insn", "*", "from", "=", "fix", "->", "insn", ";", "rtx_insn", "*", "selected", "=", "NULL", ";", "int", "selected_cost", ";", "HOST_WIDE_INT", "selected_address", ";", "Mfix", "*", "new_fix", ";", "HOST_WIDE_INT", "max_count", "=", "max_address", "-", "fix", "->", "address", ";", "rtx_code_label", "*", "label", "=", "gen_label_rtx", "(", ")", ";", "selected_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "selected_address", "=", "fix", "->", "address", ";", "while", "(", "from", "&&", "count", "<", "max_count", ")", "{", "rtx_jump_table_data", "*", "tmp", ";", "int", "new_cost", ";", "gcc_assert", "(", "!", "BARRIER_P", "(", "from", ")", ")", ";", "if", "(", "LABEL_P", "(", "from", ")", ")", "count", "+=", "get_label_padding", "(", "from", ")", ";", "else", "count", "+=", "get_attr_length", "(", "from", ")", ";", "if", "(", "tablejump_p", "(", "from", ",", "NULL", ",", "&", "tmp", ")", ")", "{", "count", "+=", "get_jump_table_size", "(", "tmp", ")", ";", "new_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "if", "(", "count", "<", "max_count", "&&", "(", "!", "selected", "||", "new_cost", "<=", "selected_cost", ")", ")", "{", "selected", "=", "tmp", ";", "selected_cost", "=", "new_cost", ";", "selected_address", "=", "fix", "->", "address", "+", "count", ";", "}", "from", "=", "NEXT_INSN", "(", "tmp", ")", ";", "continue", ";", "}", "new_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "if", "(", "count", "<", "max_count", "&&", "(", "!", "selected", "||", "new_cost", "<=", "selected_cost", ")", ")", "{", "selected", "=", "from", ";", "selected_cost", "=", "new_cost", ";", "selected_address", "=", "fix", "->", "address", "+", "count", ";", "}", "from", "=", "NEXT_INSN", "(", "from", ")", ";", "}", "gcc_assert", "(", "selected", ")", ";", "if", "(", "CALL_P", "(", "selected", ")", ")", "{", "rtx_insn", "*", "next", "=", "NEXT_INSN", "(", "selected", ")", ";", "if", "(", "next", "&&", "NOTE_P", "(", "next", ")", "&&", "NOTE_KIND", "(", "next", ")", "==", "NOTE_INSN_CALL_ARG_LOCATION", ")", "selected", "=", "next", ";", "}", "from", "=", "emit_jump_insn_after", "(", "gen_jump", "(", "label", ")", ",", "selected", ")", ";", "JUMP_LABEL", "(", "from", ")", "=", "label", ";", "barrier", "=", "emit_barrier_after", "(", "from", ")", ";", "emit_label_after", "(", "label", ",", "barrier", ")", ";", "new_fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "new_fix", ")", ")", ";", "new_fix", "->", "insn", "=", "barrier", ";", "new_fix", "->", "address", "=", "selected_address", ";", "new_fix", "->", "next", "=", "fix", "->", "next", ";", "fix", "->", "next", "=", "new_fix", ";", "return", "new_fix", ";", "}", ""], "natrual_language": ["Find", "the", "best", "place", "in", "the", "insn", "stream", "in", "the", "range", "(", "FIX-", ">", "address", ",", "MAX_ADDRESS", ")", "to", "forcibly", "insert", "a", "minipool", "barrier", ".", "Create", "the", "barrier", "by", "inserting", "a", "jump", "and", "add", "a", "new", "fix", "entry", "for", "it", "."], "TS_V_token": ["arm", "0"], "File": "arm4", "Func": "create_fix_barrier", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44698, "Length": 365}
{"ground_truth": ["", "static", "void", "dump_minipool", "(", "rtx_insn", "*", "scan", ")", "{", "Mnode", "*", "mp", ";", "Mnode", "*", "nmp", ";", "int", "align64", "=", "0", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", ")", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "mp", "->", "next", ")", "if", "(", "mp", "->", "refcount", ">", "0", "&&", "mp", "->", "fix_size", ">=", "8", ")", "{", "align64", "=", "1", ";", "break", ";", "}", "if", "(", "dump_file", ")", "fprintf", "(", "dump_file", ",", "\";; Emitting minipool after insn %u; address %ld; align %d (bytes)\\n\"", ",", "INSN_UID", "(", "scan", ")", ",", "(", "unsigned", "long", ")", "minipool_barrier", "->", "address", ",", "align64", "?", "8", ":", "4", ")", ";", "scan", "=", "emit_label_after", "(", "gen_label_rtx", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_insn_after", "(", "align64", "?", "gen_align_8", "(", ")", ":", "gen_align_4", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_label_after", "(", "minipool_vector_label", ",", "scan", ")", ";", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "nmp", ")", "{", "if", "(", "mp", "->", "refcount", ">", "0", ")", "{", "if", "(", "dump_file", ")", "{", "fprintf", "(", "dump_file", ",", "\";; Offset %u, min %ld, max %ld \"", ",", "(", "unsigned", ")", "mp", "->", "offset", ",", "(", "unsigned", "long", ")", "mp", "->", "min_address", ",", "(", "unsigned", "long", ")", "mp", "->", "max_address", ")", ";", "arm_print_value", "(", "dump_file", ",", "mp", "->", "value", ")", ";", "fputc", "(", "'\\n'", ",", "dump_file", ")", ";", "}", "switch", "(", "GET_MODE_SIZE", "(", "mp", "->", "mode", ")", ")", "{", "case", "1", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_1", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "case", "2", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_2", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "case", "4", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_4", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "case", "8", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_8", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "case", "16", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_16", "(", "mp", "->", "value", ")", ",", "scan", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "nmp", "=", "mp", "->", "next", ";", "free", "(", "mp", ")", ";", "}", "minipool_vector_head", "=", "minipool_vector_tail", "=", "NULL", ";", "scan", "=", "emit_insn_after", "(", "gen_consttable_end", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_barrier_after", "(", "scan", ")", ";", "}", ""], "natrual_language": ["Output", "the", "literal", "table"], "TS_V_token": ["arm", "0", "0", "8", "1", "\";; Emitting minipool after insn %u; address %ld; align %d (bytes)\\n\"", "8", "4", "0", "\";; Offset %u, min %ld, max %ld \"", "1", "2", "4", "8", "16"], "File": "arm4", "Func": "dump_minipool", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44699, "Length": 357}
{"ground_truth": ["", "static", "rtx", "emit_multi_reg_push", "(", "unsigned", "long", "mask", ",", "unsigned", "long", "dwarf_regs_mask", ")", "{", "int", "num_regs", "=", "0", ";", "int", "num_dwarf_regs", "=", "0", ";", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", ";", "int", "dwarf_par_index", ";", "rtx", "tmp", ",", "reg", ";", "dwarf_regs_mask", "&=", "~", "(", "1", "<<", "PC_REGNUM", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_dwarf_regs", "++", ";", "}", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "16", ")", ";", "gcc_assert", "(", "(", "dwarf_regs_mask", "&", "~", "mask", ")", "==", "0", ")", ";", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", ")", ")", ";", "dwarf", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_dwarf_regs", "+", "1", ")", ")", ";", "dwarf_par_index", "=", "1", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "BLKmode", ",", "gen_rtx_PRE_MODIFY", "(", "Pmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "num_regs", ")", ")", ")", ",", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ")", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "SImode", ",", "stack_pointer_rtx", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", "++", ")", "=", "tmp", ";", "}", "break", ";", "}", "}", "for", "(", "j", "=", "1", ",", "i", "++", ";", "j", "<", "num_regs", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", ")", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "j", ")", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", "++", ")", "=", "tmp", ";", "}", "j", "++", ";", "}", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "0", ")", "=", "tmp", ";", "add_reg_note", "(", "par", ",", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ")", ";", "return", "par", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "that", "we", "will", "recognize", "as", "a", "push_multi", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "1", "16", "0", "1", "1", "0", "1", "0", "0", "4", "1", "1", "1", "0", "1", "1", "0", "1", "4", "1", "0", "4", "1", "0", "0"], "File": "arm4", "Func": "emit_multi_reg_push", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44700, "Length": 453}
{"ground_truth": ["", "inline", "static", "rtx_insn", "*", "emit_set_insn", "(", "rtx", "x", ",", "rtx", "y", ")", "{", "return", "emit_insn", "(", "gen_rtx_SET", "(", "VOIDmode", ",", "x", ",", "y", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "an", "insn", "that", "'s", "a", "simple", "single-set", ".", "Both", "the", "operands", "must", "be", "known", "to", "be", "valid", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "emit_set_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44701, "Length": 27}
{"ground_truth": ["", "static", "void", "emit_unlikely_jump", "(", "rtx", "insn", ")", "{", "int", "very_unlikely", "=", "REG_BR_PROB_BASE", "/", "100", "-", "1", ";", "insn", "=", "emit_jump_insn", "(", "insn", ")", ";", "add_int_reg_note", "(", "insn", ",", "REG_BR_PROB", ",", "very_unlikely", ")", ";", "}", ""], "natrual_language": ["Mark", "the", "previous", "jump", "instruction", "as", "unlikely", "."], "TS_V_token": ["arm", "100", "1"], "File": "arm4", "Func": "emit_unlikely_jump", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44702, "Length": 34}
{"ground_truth": ["", "inline", "bool", "libcall_hasher", "::", "equal", "(", "const", "value_type", "*", "p1", ",", "const", "compare_type", "*", "p2", ")", "{", "return", "rtx_equal_p", "(", "p1", ",", "p2", ")", ";", "}", ""], "natrual_language": ["Compare", "H1", "and", "H2", "for", "equivalence", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "equal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44703, "Length": 26}
{"ground_truth": ["", "static", "bool", "fa726te_sched_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "rtx", "link", ",", "rtx_insn", "*", "dep", ",", "int", "*", "cost", ")", "{", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_TRUE", "&&", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", "&&", "get_attr_conds", "(", "dep", ")", "==", "CONDS_SET", ")", "{", "if", "(", "get_attr_conds", "(", "insn", ")", "==", "CONDS_USE", "&&", "get_attr_type", "(", "insn", ")", "!=", "TYPE_BRANCH", ")", "{", "*", "cost", "=", "3", ";", "return", "false", ";", "}", "if", "(", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "COND_EXEC", "||", "get_attr_conds", "(", "insn", ")", "==", "CONDS_USE", ")", "{", "*", "cost", "=", "0", ";", "return", "false", ";", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Adjust", "cost", "hook", "for", "FA726TE", "."], "TS_V_token": ["arm", "0", "0", "3", "0"], "File": "arm4", "Func": "fa726te_sched_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44704, "Length": 111}
{"ground_truth": ["", "static", "const", "char", "*", "fp_const_from_val", "(", "REAL_VALUE_TYPE", "*", "r", ")", "{", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "gcc_assert", "(", "REAL_VALUES_EQUAL", "(", "*", "r", ",", "value_fp0", ")", ")", ";", "return", "\"0\"", ";", "}", ""], "natrual_language": ["As", "for", "fp_immediate_constant", ",", "but", "value", "is", "passed", "directly", ",", "not", "in", "rtx", "."], "TS_V_token": ["arm", "\"0\""], "File": "arm4", "Func": "fp_const_from_val", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44705, "Length": 35}
{"ground_truth": ["", "bool", "gen_ldm_seq", "(", "rtx", "*", "operands", ",", "int", "nops", ",", "bool", "sort_regs", ")", "{", "int", "regs", "[", "MAX_LDM_STM_OPS", "]", ",", "mem_order", "[", "MAX_LDM_STM_OPS", "]", ";", "rtx", "mems", "[", "MAX_LDM_STM_OPS", "]", ";", "int", "i", ",", "j", ",", "base_reg", ";", "rtx", "base_reg_rtx", ";", "HOST_WIDE_INT", "offset", ";", "int", "write_back", "=", "FALSE", ";", "int", "ldm_case", ";", "rtx", "addr", ";", "ldm_case", "=", "load_multiple_sequence", "(", "operands", ",", "nops", ",", "regs", ",", "mem_order", ",", "&", "base_reg", ",", "&", "offset", ",", "!", "sort_regs", ")", ";", "if", "(", "ldm_case", "==", "0", ")", "return", "false", ";", "if", "(", "sort_regs", ")", "for", "(", "i", "=", "0", ";", "i", "<", "nops", "-", "1", ";", "i", "++", ")", "for", "(", "j", "=", "i", "+", "1", ";", "j", "<", "nops", ";", "j", "++", ")", "if", "(", "regs", "[", "i", "]", ">", "regs", "[", "j", "]", ")", "{", "int", "t", "=", "regs", "[", "i", "]", ";", "regs", "[", "i", "]", "=", "regs", "[", "j", "]", ";", "regs", "[", "j", "]", "=", "t", ";", "}", "base_reg_rtx", "=", "gen_rtx_REG", "(", "Pmode", ",", "base_reg", ")", ";", "if", "(", "TARGET_THUMB1", ")", "{", "gcc_assert", "(", "peep2_reg_dead_p", "(", "nops", ",", "base_reg_rtx", ")", ")", ";", "gcc_assert", "(", "ldm_case", "==", "1", "||", "ldm_case", "==", "5", ")", ";", "write_back", "=", "TRUE", ";", "}", "if", "(", "ldm_case", "==", "5", ")", "{", "rtx", "newbase", "=", "TARGET_THUMB1", "?", "base_reg_rtx", ":", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "0", "]", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "newbase", ",", "base_reg_rtx", ",", "GEN_INT", "(", "offset", ")", ")", ")", ";", "offset", "=", "0", ";", "if", "(", "!", "TARGET_THUMB1", ")", "{", "base_reg", "=", "regs", "[", "0", "]", ";", "base_reg_rtx", "=", "newbase", ";", "}", "}", "for", "(", "i", "=", "0", ";", "i", "<", "nops", ";", "i", "++", ")", "{", "addr", "=", "plus_constant", "(", "Pmode", ",", "base_reg_rtx", ",", "offset", "+", "i", "*", "4", ")", ";", "mems", "[", "i", "]", "=", "adjust_automodify_address_nv", "(", "operands", "[", "nops", "+", "mem_order", "[", "i", "]", "]", ",", "SImode", ",", "addr", ",", "0", ")", ";", "}", "emit_insn", "(", "arm_gen_load_multiple_1", "(", "nops", ",", "regs", ",", "mems", ",", "base_reg_rtx", ",", "write_back", "?", "offset", "+", "i", "*", "4", ":", "0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Called", "from", "a", "peephole2", "expander", "to", "turn", "a", "sequence", "of", "loads", "into", "an", "LDM", "instruction", ".", "OPERANDS", "are", "the", "operands", "found", "by", "the", "peephole", "matcher", ";", "NOPS", "indicates", "how", "many", "separate", "loads", "we", "are", "trying", "to", "combine", ".", "SORT_REGS", "is", "true", "if", "we", "can", "reorder", "the", "registers", "because", "they", "are", "used", "commutatively", "subsequently", ".", "Returns", "true", "iff", "we", "could", "generate", "a", "new", "instruction", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "5", "5", "0", "0", "0", "0", "4", "0", "4", "0"], "File": "arm4", "Func": "gen_ldm_seq", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44706, "Length": 343}
{"ground_truth": ["", "static", "HOST_WIDE_INT", "get_label_padding", "(", "rtx", "label", ")", "{", "HOST_WIDE_INT", "align", ",", "min_insn_size", ";", "align", "=", "1", "<<", "label_to_alignment", "(", "label", ")", ";", "min_insn_size", "=", "TARGET_THUMB", "?", "2", ":", "4", ";", "return", "align", ">", "min_insn_size", "?", "align", "-", "min_insn_size", ":", "0", ";", "}", ""], "natrual_language": ["Return", "the", "maximum", "amount", "of", "padding", "that", "will", "be", "inserted", "before", "label", "LABEL", "."], "TS_V_token": ["arm", "1", "2", "4", "0"], "File": "arm4", "Func": "get_label_padding", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44707, "Length": 42}
{"ground_truth": ["", "inline", "hashval_t", "libcall_hasher", "::", "hash", "(", "const", "value_type", "*", "p1", ")", "{", "return", "hash_rtx", "(", "p1", ",", "VOIDmode", ",", "NULL", ",", "NULL", ",", "FALSE", ")", ";", "}", ""], "natrual_language": ["Hash", "function", "for", "builtin", "functions", "with", "up", "to", "3", "arguments", "and", "a", "return", "type", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "hash", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44708, "Length": 27}
{"ground_truth": ["", "rtx", "legitimize_tls_address", "(", "rtx", "x", ",", "rtx", "reg", ")", "{", "rtx", "dest", ",", "tp", ",", "label", ",", "labelno", ",", "sum", ",", "insns", ",", "ret", ",", "eqv", ",", "addend", ";", "unsigned", "int", "model", "=", "SYMBOL_REF_TLS_MODEL", "(", "x", ")", ";", "switch", "(", "model", ")", "{", "case", "TLS_MODEL_GLOBAL_DYNAMIC", ":", "if", "(", "TARGET_GNU2_TLS", ")", "{", "reg", "=", "arm_tls_descseq_addr", "(", "x", ",", "reg", ")", ";", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "dest", "=", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "}", "else", "{", "insns", "=", "arm_call_tls_get_addr", "(", "x", ",", "reg", ",", "&", "ret", ",", "TLS_GD32", ")", ";", "dest", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "emit_libcall_block", "(", "insns", ",", "dest", ",", "ret", ",", "x", ")", ";", "}", "return", "dest", ";", "case", "TLS_MODEL_LOCAL_DYNAMIC", ":", "if", "(", "TARGET_GNU2_TLS", ")", "{", "reg", "=", "arm_tls_descseq_addr", "(", "x", ",", "reg", ")", ";", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "dest", "=", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "}", "else", "{", "insns", "=", "arm_call_tls_get_addr", "(", "x", ",", "reg", ",", "&", "ret", ",", "TLS_LDM32", ")", ";", "eqv", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "const1_rtx", ")", ",", "UNSPEC_TLS", ")", ";", "dest", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "emit_libcall_block", "(", "insns", ",", "dest", ",", "ret", ",", "eqv", ")", ";", "addend", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "GEN_INT", "(", "TLS_LDO32", ")", ")", ",", "UNSPEC_TLS", ")", ";", "addend", "=", "force_reg", "(", "SImode", ",", "gen_rtx_CONST", "(", "SImode", ",", "addend", ")", ")", ";", "dest", "=", "gen_rtx_PLUS", "(", "Pmode", ",", "dest", ",", "addend", ")", ";", "}", "return", "dest", ";", "case", "TLS_MODEL_INITIAL_EXEC", ":", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "label", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "label", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "label", ")", ";", "sum", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "4", ",", "x", ",", "GEN_INT", "(", "TLS_IE32", ")", ",", "label", ",", "GEN_INT", "(", "TARGET_ARM", "?", "8", ":", "4", ")", ")", ",", "UNSPEC_TLS", ")", ";", "reg", "=", "load_tls_operand", "(", "sum", ",", "reg", ")", ";", "if", "(", "TARGET_ARM", ")", "emit_insn", "(", "gen_tls_load_dot_plus_eight", "(", "reg", ",", "reg", ",", "labelno", ")", ")", ";", "else", "if", "(", "TARGET_THUMB2", ")", "emit_insn", "(", "gen_tls_load_dot_plus_four", "(", "reg", ",", "NULL", ",", "reg", ",", "labelno", ")", ")", ";", "else", "{", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "reg", ",", "reg", ",", "labelno", ")", ")", ";", "emit_move_insn", "(", "reg", ",", "gen_const_mem", "(", "SImode", ",", "reg", ")", ")", ";", "}", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "case", "TLS_MODEL_LOCAL_EXEC", ":", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "reg", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "GEN_INT", "(", "TLS_LE32", ")", ")", ",", "UNSPEC_TLS", ")", ";", "reg", "=", "force_reg", "(", "SImode", ",", "gen_rtx_CONST", "(", "SImode", ",", "reg", ")", ")", ";", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["ADDR", "contains", "a", "thread-local", "SYMBOL_REF", ".", "Generate", "code", "to", "compute", "this", "(", "thread-local", ")", "address", "."], "TS_V_token": ["arm", "1", "2", "1", "4", "8", "4", "2"], "File": "arm4", "Func": "legitimize_tls_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44709, "Length": 472}
{"ground_truth": ["", "static", "bool", "mem_ok_for_ldrd_strd", "(", "rtx", "mem", ",", "rtx", "*", "base", ",", "rtx", "*", "offset", ")", "{", "rtx", "addr", ";", "gcc_assert", "(", "base", "!=", "NULL", "&&", "offset", "!=", "NULL", ")", ";", "if", "(", "side_effects_p", "(", "mem", ")", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "mem", ")", "==", "SUBREG", ")", "return", "false", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "*", "offset", "=", "const0_rtx", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "if", "(", "!", "arm_legitimate_address_p", "(", "DImode", ",", "addr", ",", "reload_in_progress", "||", "reload_completed", ")", ")", "return", "false", ";", "if", "(", "REG_P", "(", "addr", ")", ")", "{", "*", "base", "=", "addr", ";", "return", "true", ";", "}", "else", "if", "(", "GET_CODE", "(", "addr", ")", "==", "PLUS", "||", "GET_CODE", "(", "addr", ")", "==", "MINUS", ")", "{", "*", "base", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "*", "offset", "=", "XEXP", "(", "addr", ",", "1", ")", ";", "return", "(", "REG_P", "(", "*", "base", ")", "&&", "CONST_INT_P", "(", "*", "offset", ")", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Helper", "for", "gen_operands_ldrd_strd", ".", "Returns", "true", "iff", "the", "memory", "operand", "MEM", "'s", "address", "contains", "an", "immediate", "offset", "from", "the", "base", "register", "and", "has", "no", "side", "effects", ",", "in", "which", "case", "it", "sets", "BASE", "and", "OFFSET", "accordingly", "."], "TS_V_token": ["arm", "0", "0", "1"], "File": "arm4", "Func": "mem_ok_for_ldrd_strd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44710, "Length": 166}
{"ground_truth": ["", "void", "neon_const_bounds", "(", "rtx", "operand", ",", "HOST_WIDE_INT", "low", ",", "HOST_WIDE_INT", "high", ")", "{", "bounds_check", "(", "operand", ",", "low", ",", "high", ",", "\"constant out of range\"", ")", ";", "}", ""], "natrual_language": ["Bounds-check", "constants", "."], "TS_V_token": ["arm", "\"constant out of range\""], "File": "arm4", "Func": "neon_const_bounds", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44711, "Length": 25}
{"ground_truth": ["", "int", "neon_immediate_valid_for_logic", "(", "rtx", "op", ",", "machine_mode", "mode", ",", "int", "inverse", ",", "rtx", "*", "modconst", ",", "int", "*", "elementwidth", ")", "{", "rtx", "tmpconst", ";", "int", "tmpwidth", ";", "int", "retval", "=", "neon_valid_immediate", "(", "op", ",", "mode", ",", "inverse", ",", "&", "tmpconst", ",", "&", "tmpwidth", ")", ";", "if", "(", "retval", "<", "0", "||", "retval", ">", "5", ")", "return", "0", ";", "if", "(", "modconst", ")", "*", "modconst", "=", "tmpconst", ";", "if", "(", "elementwidth", ")", "*", "elementwidth", "=", "tmpwidth", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "legal", "for", "use", "in", "a", "VORR", "or", "VBIC", "instruction", ".", "If", "the", "immediate", "is", "valid", ",", "write", "a", "constant", "suitable", "for", "using", "as", "an", "operand", "to", "VORR/VBIC/VAND/VORN", "to", "*", "MODCONST", "and", "the", "corresponding", "element", "width", "to", "*", "ELEMENTWIDTH", ".", "See", "neon_valid_immediate", "for", "description", "of", "INVERSE", "."], "TS_V_token": ["arm", "0", "5", "0", "1"], "File": "arm4", "Func": "neon_immediate_valid_for_logic", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44712, "Length": 80}
{"ground_truth": ["", "int", "neon_immediate_valid_for_move", "(", "rtx", "op", ",", "machine_mode", "mode", ",", "rtx", "*", "modconst", ",", "int", "*", "elementwidth", ")", "{", "rtx", "tmpconst", ";", "int", "tmpwidth", ";", "int", "retval", "=", "neon_valid_immediate", "(", "op", ",", "mode", ",", "0", ",", "&", "tmpconst", ",", "&", "tmpwidth", ")", ";", "if", "(", "retval", "==", "-", "1", ")", "return", "0", ";", "if", "(", "modconst", ")", "*", "modconst", "=", "tmpconst", ";", "if", "(", "elementwidth", ")", "*", "elementwidth", "=", "tmpwidth", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "legal", "for", "use", "as", "either", "a", "Neon", "VMOV", "(", "or", ",", "implicitly", ",", "VMVN", ")", "immediate", ".", "Write", "back", "width", "per", "element", "to", "*", "ELEMENTWIDTH", "(", "or", "zero", "for", "float", "elements", ")", ",", "and", "a", "modified", "constant", "(", "whatever", "should", "be", "output", "for", "a", "VMOV", ")", "in", "*", "MODCONST", "."], "TS_V_token": ["arm", "0", "1", "0", "1"], "File": "arm4", "Func": "neon_immediate_valid_for_move", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44713, "Length": 74}
{"ground_truth": ["", "int", "neon_immediate_valid_for_shift", "(", "rtx", "op", ",", "machine_mode", "mode", ",", "rtx", "*", "modconst", ",", "int", "*", "elementwidth", ",", "bool", "isleftshift", ")", "{", "unsigned", "int", "innersize", "=", "GET_MODE_SIZE", "(", "GET_MODE_INNER", "(", "mode", ")", ")", ";", "unsigned", "int", "n_elts", "=", "CONST_VECTOR_NUNITS", "(", "op", ")", ",", "i", ";", "unsigned", "HOST_WIDE_INT", "last_elt", "=", "0", ";", "unsigned", "HOST_WIDE_INT", "maxshift", ";", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "i", "++", ")", "{", "rtx", "el", "=", "CONST_VECTOR_ELT", "(", "op", ",", "i", ")", ";", "unsigned", "HOST_WIDE_INT", "elpart", ";", "if", "(", "CONST_INT_P", "(", "el", ")", ")", "elpart", "=", "INTVAL", "(", "el", ")", ";", "else", "if", "(", "CONST_DOUBLE_P", "(", "el", ")", ")", "return", "0", ";", "else", "gcc_unreachable", "(", ")", ";", "if", "(", "i", "!=", "0", "&&", "elpart", "!=", "last_elt", ")", "return", "0", ";", "last_elt", "=", "elpart", ";", "}", "maxshift", "=", "innersize", "*", "8", ";", "if", "(", "isleftshift", ")", "{", "if", "(", "last_elt", ">=", "maxshift", ")", "return", "0", ";", "}", "else", "{", "if", "(", "last_elt", "==", "0", "||", "last_elt", ">", "maxshift", ")", "return", "0", ";", "}", "if", "(", "elementwidth", ")", "*", "elementwidth", "=", "innersize", "*", "8", ";", "if", "(", "modconst", ")", "*", "modconst", "=", "CONST_VECTOR_ELT", "(", "op", ",", "0", ")", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "OP", "is", "legal", "for", "use", "in", "a", "VSHR", "or", "VSHL", "instruction", ".", "If", "the", "immediate", "is", "valid", ",", "write", "a", "constant", "suitable", "for", "using", "as", "an", "operand", "to", "VSHR/VSHL", "to", "*", "MODCONST", "and", "the", "corresponding", "element", "width", "to", "*", "ELEMENTWIDTH", ".", "ISLEFTSHIFT", "is", "for", "determine", "left", "or", "right", "shift", ",", "because", "they", "have", "different", "limitations", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "8", "0", "0", "0", "8", "0", "1"], "File": "arm4", "Func": "neon_immediate_valid_for_shift", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44714, "Length": 196}
{"ground_truth": ["", "void", "neon_lane_bounds", "(", "rtx", "operand", ",", "HOST_WIDE_INT", "low", ",", "HOST_WIDE_INT", "high", ")", "{", "bounds_check", "(", "operand", ",", "low", ",", "high", ",", "\"lane out of range\"", ")", ";", "}", ""], "natrual_language": ["Bounds-check", "lanes", "."], "TS_V_token": ["arm", "\"lane out of range\""], "File": "arm4", "Func": "neon_lane_bounds", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44715, "Length": 25}
{"ground_truth": ["", "rtx", "neon_make_constant", "(", "rtx", "vals", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "vals", ")", ";", "rtx", "target", ";", "rtx", "const_vec", "=", "NULL_RTX", ";", "int", "n_elts", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "int", "n_const", "=", "0", ";", "int", "i", ";", "if", "(", "GET_CODE", "(", "vals", ")", "==", "CONST_VECTOR", ")", "const_vec", "=", "vals", ";", "else", "if", "(", "GET_CODE", "(", "vals", ")", "==", "PARALLEL", ")", "{", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "++", "i", ")", "{", "rtx", "x", "=", "XVECEXP", "(", "vals", ",", "0", ",", "i", ")", ";", "if", "(", "CONST_INT_P", "(", "x", ")", "||", "CONST_DOUBLE_P", "(", "x", ")", ")", "n_const", "++", ";", "}", "if", "(", "n_const", "==", "n_elts", ")", "const_vec", "=", "gen_rtx_CONST_VECTOR", "(", "mode", ",", "XVEC", "(", "vals", ",", "0", ")", ")", ";", "}", "else", "gcc_unreachable", "(", ")", ";", "if", "(", "const_vec", "!=", "NULL", "&&", "neon_immediate_valid_for_move", "(", "const_vec", ",", "mode", ",", "NULL", ",", "NULL", ")", ")", "return", "const_vec", ";", "else", "if", "(", "(", "target", "=", "neon_vdup_constant", "(", "vals", ")", ")", "!=", "NULL_RTX", ")", "return", "target", ";", "else", "if", "(", "const_vec", "!=", "NULL_RTX", ")", "return", "const_vec", ";", "else", "return", "NULL_RTX", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "VALS", ",", "which", "is", "a", "PARALLEL", "containing", "only", "constants", "(", "for", "vec_init", ")", "or", "CONST_VECTOR", ",", "efficiently", "into", "a", "register", ".", "Returns", "an", "RTX", "to", "copy", "into", "the", "register", ",", "or", "NULL_RTX", "for", "a", "PARALLEL", "that", "can", "not", "be", "converted", "into", "a", "CONST_VECTOR", "."], "TS_V_token": ["arm", "0", "0", "0", "0"], "File": "arm4", "Func": "neon_make_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44716, "Length": 183}
{"ground_truth": ["", "void", "neon_pairwise_reduce", "(", "rtx", "op0", ",", "rtx", "op1", ",", "machine_mode", "mode", ",", "rtx", "(", "*", "reduc", ")", "(", "rtx", ",", "rtx", ",", "rtx", ")", ")", "{", "machine_mode", "inner", "=", "GET_MODE_INNER", "(", "mode", ")", ";", "unsigned", "int", "i", ",", "parts", "=", "GET_MODE_SIZE", "(", "mode", ")", "/", "GET_MODE_SIZE", "(", "inner", ")", ";", "rtx", "tmpsum", "=", "op1", ";", "for", "(", "i", "=", "parts", "/", "2", ";", "i", ">=", "1", ";", "i", "/=", "2", ")", "{", "rtx", "dest", "=", "(", "i", "==", "1", ")", "?", "op0", ":", "gen_reg_rtx", "(", "mode", ")", ";", "emit_insn", "(", "reduc", "(", "dest", ",", "tmpsum", ",", "tmpsum", ")", ")", ";", "tmpsum", "=", "dest", ";", "}", "}", ""], "natrual_language": ["Output", "a", "sequence", "of", "pairwise", "operations", "to", "implement", "a", "reduction", ".", "NOTE", ":", "We", "do", "``", "too", "much", "work", "''", "here", ",", "because", "pairwise", "operations", "work", "on", "two", "registers-worth", "of", "operands", "in", "one", "go", ".", "Unfortunately", "we", "ca", "n't", "exploit", "those", "extra", "calculations", "to", "do", "the", "full", "operation", "in", "fewer", "steps", ",", "I", "do", "n't", "think", ".", "Although", "all", "vector", "elements", "of", "the", "result", "but", "the", "first", "are", "ignored", ",", "we", "actually", "calculate", "the", "same", "result", "in", "each", "of", "the", "elements", ".", "An", "alternative", "such", "as", "initially", "loading", "a", "vector", "with", "zero", "to", "use", "as", "each", "of", "the", "second", "operands", "would", "use", "up", "an", "additional", "register", "and", "take", "an", "extra", "instruction", ",", "for", "no", "particular", "gain", "."], "TS_V_token": ["arm", "2", "1", "2", "1"], "File": "arm4", "Func": "neon_pairwise_reduce", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44717, "Length": 106}
{"ground_truth": ["", "void", "neon_reinterpret", "(", "rtx", "dest", ",", "rtx", "src", ")", "{", "emit_move_insn", "(", "dest", ",", "gen_lowpart", "(", "GET_MODE", "(", "dest", ")", ",", "src", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "code", "to", "reinterpret", "one", "Neon", "type", "as", "another", ",", "without", "altering", "bits", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "neon_reinterpret", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44718, "Length": 26}
{"ground_truth": ["", "void", "neon_split_vcombine", "(", "rtx", "operands", "[", "3", "]", ")", "{", "unsigned", "int", "dest", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "unsigned", "int", "src1", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "unsigned", "int", "src2", "=", "REGNO", "(", "operands", "[", "2", "]", ")", ";", "machine_mode", "halfmode", "=", "GET_MODE", "(", "operands", "[", "1", "]", ")", ";", "unsigned", "int", "halfregs", "=", "HARD_REGNO_NREGS", "(", "src1", ",", "halfmode", ")", ";", "rtx", "destlo", ",", "desthi", ";", "if", "(", "src1", "==", "dest", "&&", "src2", "==", "dest", "+", "halfregs", ")", "{", "emit_note", "(", "NOTE_INSN_DELETED", ")", ";", "return", ";", "}", "destlo", "=", "gen_rtx_REG_offset", "(", "operands", "[", "0", "]", ",", "halfmode", ",", "dest", ",", "0", ")", ";", "desthi", "=", "gen_rtx_REG_offset", "(", "operands", "[", "0", "]", ",", "halfmode", ",", "dest", "+", "halfregs", ",", "GET_MODE_SIZE", "(", "halfmode", ")", ")", ";", "if", "(", "src2", "==", "dest", "&&", "src1", "==", "dest", "+", "halfregs", ")", "{", "rtx", "x", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "destlo", ",", "operands", "[", "1", "]", ")", ";", "rtx", "y", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "desthi", ",", "operands", "[", "2", "]", ")", ";", "emit_insn", "(", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "y", ")", ")", ")", ";", "return", ";", "}", "if", "(", "!", "reg_overlap_mentioned_p", "(", "operands", "[", "2", "]", ",", "destlo", ")", ")", "{", "if", "(", "src1", "!=", "dest", ")", "emit_move_insn", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "if", "(", "src2", "!=", "dest", "+", "halfregs", ")", "emit_move_insn", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "}", "else", "{", "if", "(", "src2", "!=", "dest", "+", "halfregs", ")", "emit_move_insn", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "if", "(", "src1", "!=", "dest", ")", "emit_move_insn", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "}", "}", ""], "natrual_language": ["Split", "operands", "into", "moves", "from", "op", "[", "1", "]", "+", "op", "[", "2", "]", "into", "op", "[", "0", "]", "."], "TS_V_token": ["arm", "3", "0", "1", "2", "1", "0", "0", "0", "1", "2", "2", "2", "1", "2", "2", "1"], "File": "arm4", "Func": "neon_split_vcombine", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44719, "Length": 281}
{"ground_truth": ["", "static", "rtx", "neon_vdup_constant", "(", "rtx", "vals", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "vals", ")", ";", "machine_mode", "inner_mode", "=", "GET_MODE_INNER", "(", "mode", ")", ";", "int", "n_elts", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "bool", "all_same", "=", "true", ";", "rtx", "x", ";", "int", "i", ";", "if", "(", "GET_CODE", "(", "vals", ")", "!=", "CONST_VECTOR", "||", "GET_MODE_SIZE", "(", "inner_mode", ")", ">", "4", ")", "return", "NULL_RTX", ";", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "++", "i", ")", "{", "x", "=", "XVECEXP", "(", "vals", ",", "0", ",", "i", ")", ";", "if", "(", "i", ">", "0", "&&", "!", "rtx_equal_p", "(", "x", ",", "XVECEXP", "(", "vals", ",", "0", ",", "0", ")", ")", ")", "all_same", "=", "false", ";", "}", "if", "(", "!", "all_same", ")", "return", "NULL_RTX", ";", "x", "=", "copy_to_mode_reg", "(", "inner_mode", ",", "XVECEXP", "(", "vals", ",", "0", ",", "0", ")", ")", ";", "return", "gen_rtx_VEC_DUPLICATE", "(", "mode", ",", "x", ")", ";", "}", ""], "natrual_language": ["Return", "a", "non-NULL", "RTX", "iff", "VALS", "is", "a", "vector", "constant", "that", "can", "be", "loaded", "into", "a", "register", "using", "VDUP", ".", "If", "this", "is", "the", "case", ",", "and", "GENERATE", "is", "set", ",", "we", "also", "generate", "instructions", "to", "do", "this", "and", "return", "an", "RTX", "to", "assign", "to", "the", "register", "."], "TS_V_token": ["arm", "4", "0", "0", "0", "0", "0", "0", "0"], "File": "arm4", "Func": "neon_vdup_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44720, "Length": 146}
{"ground_truth": ["", "int", "neon_vector_mem_operand", "(", "rtx", "op", ",", "int", "type", ",", "bool", "strict", ")", "{", "rtx", "ind", ";", "if", "(", "!", "(", "reload_in_progress", "||", "reload_completed", ")", "&&", "(", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "arg_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_incoming_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_outgoing_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_dynamic_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_vars_rtx", ",", "op", ")", ")", ")", "return", "!", "strict", ";", "if", "(", "!", "MEM_P", "(", "op", ")", ")", "return", "FALSE", ";", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "reload_completed", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "LABEL_REF", "||", "(", "GET_CODE", "(", "ind", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "TRUE", ";", "if", "(", "REG_P", "(", "ind", ")", ")", "return", "arm_address_register_rtx_p", "(", "ind", ",", "0", ")", ";", "if", "(", "(", "type", "!=", "1", "&&", "GET_CODE", "(", "ind", ")", "==", "POST_INC", ")", "||", "(", "type", "==", "0", "&&", "GET_CODE", "(", "ind", ")", "==", "PRE_DEC", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ";", "if", "(", "type", "==", "2", "&&", "GET_CODE", "(", "ind", ")", "==", "POST_MODIFY", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "1", ")", ",", "1", ")", ")", ")", "return", "true", ";", "if", "(", "type", "==", "0", "&&", "GET_CODE", "(", "ind", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "&&", "REG_MODE_OK_FOR_BASE_P", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "VOIDmode", ")", "&&", "CONST_INT_P", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&&", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "<", "(", "VALID_NEON_QREG_MODE", "(", "GET_MODE", "(", "op", ")", ")", "?", "1016", ":", "1024", ")", ")", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&", "3", ")", "==", "0", ")", "return", "TRUE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "memory", "operand", "which", "we", "can", "load", "or", "store", "a", "vector", "to/from", ".", "TYPE", "is", "one", "of", "the", "following", "values", ":", "0", "-", "Vector", "load/stor", "(", "vldr", ")", "1", "-", "Core", "registers", "(", "ldm", ")", "2", "-", "Element/structure", "loads", "(", "vld1", ")"], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "2", "1", "1", "1", "0", "0", "0", "1", "1", "1024", "1", "1016", "1024", "1", "3", "0"], "File": "arm4", "Func": "neon_vector_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44721, "Length": 368}
{"ground_truth": ["", "static", "int", "optimal_immediate_sequence", "(", "enum", "rtx_code", "code", ",", "unsigned", "HOST_WIDE_INT", "val", ",", "struct", "four_ints", "*", "return_sequence", ")", "{", "int", "best_consecutive_zeros", "=", "0", ";", "int", "i", ";", "int", "best_start", "=", "0", ";", "int", "insns1", ",", "insns2", ";", "struct", "four_ints", "tmp_sequence", ";", "if", "(", "TARGET_ARM", ")", "{", "for", "(", "i", "=", "0", ";", "i", "<", "32", ";", "i", "+=", "2", ")", "{", "int", "consecutive_zeros", "=", "0", ";", "if", "(", "!", "(", "val", "&", "(", "3", "<<", "i", ")", ")", ")", "{", "while", "(", "(", "i", "<", "32", ")", "&&", "!", "(", "val", "&", "(", "3", "<<", "i", ")", ")", ")", "{", "consecutive_zeros", "+=", "2", ";", "i", "+=", "2", ";", "}", "if", "(", "consecutive_zeros", ">", "best_consecutive_zeros", ")", "{", "best_consecutive_zeros", "=", "consecutive_zeros", ";", "best_start", "=", "i", "-", "consecutive_zeros", ";", "}", "i", "-=", "2", ";", "}", "}", "}", "insns1", "=", "optimal_immediate_sequence_1", "(", "code", ",", "val", ",", "return_sequence", ",", "best_start", ")", ";", "if", "(", "best_start", "!=", "0", "&&", "(", "(", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "1", ")", "<<", "best_start", ")", "<", "val", ")", ")", "{", "insns2", "=", "optimal_immediate_sequence_1", "(", "code", ",", "val", ",", "&", "tmp_sequence", ",", "0", ")", ";", "if", "(", "insns2", "<=", "insns1", ")", "{", "*", "return_sequence", "=", "tmp_sequence", ";", "insns1", "=", "insns2", ";", "}", "}", "return", "insns1", ";", "}", ""], "natrual_language": ["Return", "a", "sequence", "of", "integers", ",", "in", "RETURN_SEQUENCE", "that", "fit", "into", "ARM/THUMB2", "immediates", ",", "and", "add", "up", "to", "VAL", ".", "Thr", "function", "return", "value", "gives", "the", "number", "of", "insns", "required", "."], "TS_V_token": ["arm", "0", "0", "0", "32", "2", "0", "3", "32", "3", "2", "2", "2", "0", "1", "0"], "File": "arm4", "Func": "optimal_immediate_sequence", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44722, "Length": 205}
{"ground_truth": ["", "const", "char", "*", "output_call_mem", "(", "rtx", "*", "operands", ")", "{", "gcc_assert", "(", "!", "arm_arch5", ")", ";", "if", "(", "TARGET_INTERWORK", ")", "{", "output_asm_insn", "(", "\"ldr%?\\t%|ip, %0\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"bx%?\\t%|ip\"", ",", "operands", ")", ";", "}", "else", "if", "(", "regno_use_in", "(", "LR_REGNUM", ",", "operands", "[", "0", "]", ")", ")", "{", "output_asm_insn", "(", "\"ldr%?\\t%|ip, %0\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "if", "(", "arm_arch4t", ")", "output_asm_insn", "(", "\"bx%?\\t%|ip\"", ",", "operands", ")", ";", "else", "output_asm_insn", "(", "\"mov%?\\t%|pc, %|ip\"", ",", "operands", ")", ";", "}", "else", "{", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr%?\\t%|pc, %0\"", ",", "operands", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "'call", "'", "insn", "that", "is", "a", "reference", "in", "memory", ".", "This", "is", "disabled", "for", "ARMv5", "and", "we", "prefer", "a", "blx", "instead", "because", "otherwise", "there", "'s", "a", "significant", "performance", "overhead", "."], "TS_V_token": ["arm", "\"ldr%?\\t%|ip, %0\"", "\"mov%?\\t%|lr, %|pc\"", "\"bx%?\\t%|ip\"", "0", "\"ldr%?\\t%|ip, %0\"", "\"mov%?\\t%|lr, %|pc\"", "\"bx%?\\t%|ip\"", "\"mov%?\\t%|pc, %|ip\"", "\"mov%?\\t%|lr, %|pc\"", "\"ldr%?\\t%|pc, %0\"", "\"\""], "File": "arm4", "Func": "output_call_mem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44723, "Length": 112}
{"ground_truth": ["", "const", "char", "*", "output_move_quad", "(", "rtx", "*", "operands", ")", "{", "if", "(", "REG_P", "(", "operands", "[", "0", "]", ")", ")", "{", "if", "(", "MEM_P", "(", "operands", "[", "1", "]", ")", ")", "{", "switch", "(", "GET_CODE", "(", "XEXP", "(", "operands", "[", "1", "]", ",", "0", ")", ")", ")", "{", "case", "REG", ":", "output_asm_insn", "(", "\"ldm%(ia%)\\t%m1, %M0\"", ",", "operands", ")", ";", "break", ";", "case", "LABEL_REF", ":", "case", "CONST", ":", "output_asm_insn", "(", "\"adr%?\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldm%(ia%)\\t%0, %M0\"", ",", "operands", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "else", "{", "rtx", "ops", "[", "2", "]", ";", "int", "dest", ",", "src", ",", "i", ";", "gcc_assert", "(", "REG_P", "(", "operands", "[", "1", "]", ")", ")", ";", "dest", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "src", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "if", "(", "dest", "<", "src", ")", "for", "(", "i", "=", "0", ";", "i", "<", "4", ";", "i", "++", ")", "{", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "dest", "+", "i", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "src", "+", "i", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %1\"", ",", "ops", ")", ";", "}", "else", "for", "(", "i", "=", "3", ";", "i", ">=", "0", ";", "i", "--", ")", "{", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "dest", "+", "i", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "src", "+", "i", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %1\"", ",", "ops", ")", ";", "}", "}", "}", "else", "{", "gcc_assert", "(", "MEM_P", "(", "operands", "[", "0", "]", ")", ")", ";", "gcc_assert", "(", "REG_P", "(", "operands", "[", "1", "]", ")", ")", ";", "gcc_assert", "(", "!", "reg_overlap_mentioned_p", "(", "operands", "[", "1", "]", ",", "operands", "[", "0", "]", ")", ")", ";", "switch", "(", "GET_CODE", "(", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ")", ")", "{", "case", "REG", ":", "output_asm_insn", "(", "\"stm%(ia%)\\t%m0, %M1\"", ",", "operands", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "assembler", "code", "to", "perform", "a", "quadword", "move", "insn", "with", "operands", "OPERANDS", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "\"ldm%(ia%)\\t%m1, %M0\"", "\"adr%?\\t%0, %1\"", "\"ldm%(ia%)\\t%0, %M0\"", "2", "1", "0", "1", "0", "4", "0", "1", "\"mov%?\\t%0, %1\"", "3", "0", "0", "1", "\"mov%?\\t%0, %1\"", "0", "1", "1", "0", "0", "0", "\"stm%(ia%)\\t%m0, %M1\"", "\"\""], "File": "arm4", "Func": "output_move_quad", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44724, "Length": 326}
{"ground_truth": ["", "const", "char", "*", "output_move_vfp", "(", "rtx", "*", "operands", ")", "{", "rtx", "reg", ",", "mem", ",", "addr", ",", "ops", "[", "2", "]", ";", "int", "load", "=", "REG_P", "(", "operands", "[", "0", "]", ")", ";", "int", "dp", "=", "GET_MODE_SIZE", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ")", "==", "8", ";", "int", "integer_p", "=", "GET_MODE_CLASS", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ")", "==", "MODE_INT", ";", "const", "char", "*", "templ", ";", "char", "buff", "[", "50", "]", ";", "machine_mode", "mode", ";", "reg", "=", "operands", "[", "!", "load", "]", ";", "mem", "=", "operands", "[", "load", "]", ";", "mode", "=", "GET_MODE", "(", "reg", ")", ";", "gcc_assert", "(", "REG_P", "(", "reg", ")", ")", ";", "gcc_assert", "(", "IS_VFP_REGNUM", "(", "REGNO", "(", "reg", ")", ")", ")", ";", "gcc_assert", "(", "mode", "==", "SFmode", "||", "mode", "==", "DFmode", "||", "mode", "==", "SImode", "||", "mode", "==", "DImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_DREG_MODE", "(", "mode", ")", ")", ")", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "switch", "(", "GET_CODE", "(", "addr", ")", ")", "{", "case", "PRE_DEC", ":", "templ", "=", "\"v%smdb%%?.%s\\t%%0!, {%%%s1}%s\"", ";", "ops", "[", "0", "]", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "ops", "[", "1", "]", "=", "reg", ";", "break", ";", "case", "POST_INC", ":", "templ", "=", "\"v%smia%%?.%s\\t%%0!, {%%%s1}%s\"", ";", "ops", "[", "0", "]", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "ops", "[", "1", "]", "=", "reg", ";", "break", ";", "default", ":", "templ", "=", "\"v%sr%%?.%s\\t%%%s0, %%1%s\"", ";", "ops", "[", "0", "]", "=", "reg", ";", "ops", "[", "1", "]", "=", "mem", ";", "break", ";", "}", "sprintf", "(", "buff", ",", "templ", ",", "load", "?", "\"ld\"", ":", "\"st\"", ",", "dp", "?", "\"64\"", ":", "\"32\"", ",", "dp", "?", "\"P\"", ":", "\"\"", ",", "integer_p", "?", "\"\\t%@ int\"", ":", "\"\"", ")", ";", "output_asm_insn", "(", "buff", ",", "ops", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "VFP", "load", "or", "store", "instruction", "."], "TS_V_token": ["arm", "2", "0", "0", "8", "0", "50", "0", "\"v%smdb%%?.%s\\t%%0!, {%%%s1}%s\"", "0", "0", "1", "\"v%smia%%?.%s\\t%%0!, {%%%s1}%s\"", "0", "0", "1", "\"v%sr%%?.%s\\t%%%s0, %%1%s\"", "0", "1", "\"ld\"", "\"st\"", "\"64\"", "\"32\"", "\"P\"", "\"\"", "\"\\t%@ int\"", "\"\"", "\"\""], "File": "arm4", "Func": "output_move_vfp", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44725, "Length": 294}
{"ground_truth": ["", "static", "void", "push_minipool_fix", "(", "rtx_insn", "*", "insn", ",", "HOST_WIDE_INT", "address", ",", "rtx", "*", "loc", ",", "machine_mode", "mode", ",", "rtx", "value", ")", "{", "Mfix", "*", "fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "fix", ")", ")", ";", "fix", "->", "insn", "=", "insn", ";", "fix", "->", "address", "=", "address", ";", "fix", "->", "loc", "=", "loc", ";", "fix", "->", "mode", "=", "mode", ";", "fix", "->", "fix_size", "=", "MINIPOOL_FIX_SIZE", "(", "mode", ")", ";", "fix", "->", "value", "=", "value", ";", "fix", "->", "forwards", "=", "get_attr_pool_range", "(", "insn", ")", ";", "fix", "->", "backwards", "=", "get_attr_neg_pool_range", "(", "insn", ")", ";", "fix", "->", "minipool", "=", "NULL", ";", "gcc_assert", "(", "fix", "->", "forwards", "||", "fix", "->", "backwards", ")", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", "&&", "fix", "->", "fix_size", ">=", "8", ")", "minipool_pad", "=", "4", ";", "if", "(", "dump_file", ")", "{", "fprintf", "(", "dump_file", ",", "\";; %smode fixup for i%d; addr %lu, range (%ld,%ld): \"", ",", "GET_MODE_NAME", "(", "mode", ")", ",", "INSN_UID", "(", "insn", ")", ",", "(", "unsigned", "long", ")", "address", ",", "-", "1", "*", "(", "long", ")", "fix", "->", "backwards", ",", "(", "long", ")", "fix", "->", "forwards", ")", ";", "arm_print_value", "(", "dump_file", ",", "fix", "->", "value", ")", ";", "fprintf", "(", "dump_file", ",", "\"\\n\"", ")", ";", "}", "fix", "->", "next", "=", "NULL", ";", "if", "(", "minipool_fix_head", "!=", "NULL", ")", "minipool_fix_tail", "->", "next", "=", "fix", ";", "else", "minipool_fix_head", "=", "fix", ";", "minipool_fix_tail", "=", "fix", ";", "}", ""], "natrual_language": ["Record", "INSN", ",", "which", "will", "need", "fixing", "up", "to", "load", "a", "value", "from", "the", "minipool", ".", "ADDRESS", "is", "the", "offset", "of", "the", "insn", "since", "the", "start", "of", "the", "function", ";", "LOC", "is", "a", "pointer", "to", "the", "part", "of", "the", "insn", "which", "requires", "fixing", ";", "VALUE", "is", "the", "constant", "that", "must", "be", "loaded", ",", "which", "is", "of", "type", "MODE", "."], "TS_V_token": ["arm", "8", "4", "\";; %smode fixup for i%d; addr %lu, range (%ld,%ld): \"", "1", "\"\\n\""], "File": "arm4", "Func": "push_minipool_fix", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44726, "Length": 220}
{"ground_truth": ["", "static", "void", "require_pic_register", "(", "void", ")", "{", "if", "(", "!", "crtl", "->", "uses_pic_offset_table", ")", "{", "gcc_assert", "(", "can_create_pseudo_p", "(", ")", ")", ";", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "!", "(", "TARGET_THUMB1", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", ")", ")", "{", "if", "(", "!", "cfun", "->", "machine", "->", "pic_reg", ")", "cfun", "->", "machine", "->", "pic_reg", "=", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ";", "if", "(", "current_ir_type", "(", ")", "!=", "IR_GIMPLE", "||", "currently_expanding_to_rtl", ")", "crtl", "->", "uses_pic_offset_table", "=", "1", ";", "}", "else", "{", "rtx_insn", "*", "seq", ",", "*", "insn", ";", "if", "(", "!", "cfun", "->", "machine", "->", "pic_reg", ")", "cfun", "->", "machine", "->", "pic_reg", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "if", "(", "current_ir_type", "(", ")", "!=", "IR_GIMPLE", "||", "currently_expanding_to_rtl", ")", "{", "crtl", "->", "uses_pic_offset_table", "=", "1", ";", "start_sequence", "(", ")", ";", "if", "(", "TARGET_THUMB1", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", ")", "emit_move_insn", "(", "cfun", "->", "machine", "->", "pic_reg", ",", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ")", ";", "else", "arm_load_pic_register", "(", "0UL", ")", ";", "seq", "=", "get_insns", "(", ")", ";", "end_sequence", "(", ")", ";", "for", "(", "insn", "=", "seq", ";", "insn", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "if", "(", "INSN_P", "(", "insn", ")", ")", "INSN_LOCATION", "(", "insn", ")", "=", "prologue_location", ";", "insert_insn_on_edge", "(", "seq", ",", "single_succ_edge", "(", "ENTRY_BLOCK_PTR_FOR_FN", "(", "cfun", ")", ")", ")", ";", "}", "}", "}", "}", ""], "natrual_language": ["Record", "that", "the", "current", "function", "needs", "a", "PIC", "register", ".", "Initialize", "cfun-", ">", "machine-", ">", "pic_reg", "if", "we", "have", "not", "already", "done", "so", "."], "TS_V_token": ["arm", "1", "1", "0UL"], "File": "arm4", "Func": "require_pic_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44727, "Length": 217}
{"ground_truth": ["", "static", "const", "char", "*", "shift_op", "(", "rtx", "op", ",", "HOST_WIDE_INT", "*", "amountp", ")", "{", "const", "char", "*", "mnem", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "op", ")", ";", "switch", "(", "code", ")", "{", "case", "ROTATE", ":", "if", "(", "!", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "code", "=", "ROTATERT", ";", "*", "amountp", "=", "32", "-", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ";", "mnem", "=", "\"ror\"", ";", "break", ";", "case", "ASHIFT", ":", "case", "ASHIFTRT", ":", "case", "LSHIFTRT", ":", "case", "ROTATERT", ":", "mnem", "=", "arm_shift_nmem", "(", "code", ")", ";", "if", "(", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "*", "amountp", "=", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ";", "}", "else", "if", "(", "REG_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "*", "amountp", "=", "-", "1", ";", "return", "mnem", ";", "}", "else", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "break", ";", "case", "MULT", ":", "if", "(", "!", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "*", "amountp", "=", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", "&", "0xFFFFFFFF", ";", "if", "(", "*", "amountp", "&", "(", "*", "amountp", "-", "1", ")", ")", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "*", "amountp", "=", "int_log2", "(", "*", "amountp", ")", ";", "return", "ARM_LSL_NAME", ";", "default", ":", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "if", "(", "code", "==", "ROTATERT", ")", "*", "amountp", "&=", "31", ";", "else", "if", "(", "*", "amountp", "!=", "(", "*", "amountp", "&", "31", ")", ")", "{", "if", "(", "code", "==", "ASHIFT", ")", "mnem", "=", "\"lsr\"", ";", "*", "amountp", "=", "32", ";", "}", "if", "(", "*", "amountp", "==", "0", ")", "return", "NULL", ";", "return", "mnem", ";", "}", ""], "natrual_language": ["Ensure", "valid", "constant", "shifts", "and", "return", "the", "appropriate", "shift", "mnemonic", "for", "the", "operation", "code", ".", "The", "returned", "result", "should", "not", "be", "overwritten", ".", "OP", "is", "the", "rtx", "code", "of", "the", "shift", ".", "On", "exit", ",", "*", "AMOUNTP", "will", "be", "-1", "if", "the", "shift", "is", "by", "a", "register", ",", "or", "a", "constant", "shift", "."], "TS_V_token": ["arm", "1", "\"invalid shift operand\"", "32", "1", "\"ror\"", "1", "1", "1", "1", "\"invalid shift operand\"", "1", "\"invalid shift operand\"", "1", "0xFFFFFFFF", "1", "\"invalid shift operand\"", "\"invalid shift operand\"", "31", "31", "\"lsr\"", "32", "0"], "File": "arm4", "Func": "shift_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44728, "Length": 308}
{"ground_truth": ["", "static", "unsigned", "long", "thumb1_compute_save_reg_mask", "(", "void", ")", "{", "unsigned", "long", "mask", ";", "unsigned", "reg", ";", "mask", "=", "0", ";", "for", "(", "reg", "=", "0", ";", "reg", "<", "12", ";", "reg", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "crtl", "->", "uses_pic_offset_table", ")", "mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "if", "(", "!", "frame_pointer_needed", "&&", "CALLER_INTERWORKING_SLOT_SIZE", ">", "0", ")", "mask", "|=", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "mask", "&", "0xff", "||", "thumb_force_lr_save", "(", ")", ")", "mask", "|=", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "(", "mask", "&", "0xff", ")", "==", "0", "&&", "(", "(", "mask", "&", "0x0f00", ")", "||", "TARGET_BACKTRACE", ")", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "LAST_LO_REGNUM", ")", ";", "if", "(", "reg", "*", "UNITS_PER_WORD", "<=", "(", "unsigned", ")", "arm_size_return_regs", "(", ")", ")", "reg", "=", "LAST_LO_REGNUM", ";", "if", "(", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "}", "if", "(", "(", "CALLER_INTERWORKING_SLOT_SIZE", "+", "ROUND_UP_WORD", "(", "get_frame_size", "(", ")", ")", "+", "crtl", "->", "outgoing_args_size", ")", ">=", "504", ")", "{", "for", "(", "reg", "=", "LAST_ARG_REGNUM", "+", "1", ";", "reg", "<=", "LAST_LO_REGNUM", ";", "reg", "++", ")", "if", "(", "mask", "&", "(", "1", "<<", "reg", ")", ")", "break", ";", "if", "(", "reg", ">", "LAST_LO_REGNUM", ")", "{", "mask", "|=", "1", "<<", "LAST_LO_REGNUM", ";", "}", "}", "return", "mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "0", "12", "1", "1", "0", "1", "0xff", "1", "0xff", "0", "0x0f00", "1", "1", "504", "1", "1", "1"], "File": "arm4", "Func": "thumb1_compute_save_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44729, "Length": 231}
{"ground_truth": ["", "static", "rtx_insn", "*", "thumb1_emit_multi_reg_push", "(", "unsigned", "long", "mask", ",", "unsigned", "long", "real_regs", ")", "{", "unsigned", "long", "regno", ";", "rtx", "par", "[", "10", "]", ",", "tmp", ",", "reg", ";", "rtx_insn", "*", "insn", ";", "int", "i", ",", "j", ";", "for", "(", "i", "=", "0", ";", "mask", ";", "++", "i", ",", "mask", "&=", "mask", "-", "1", ")", "{", "regno", "=", "ctz_hwi", "(", "mask", ")", ";", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ";", "if", "(", "i", "==", "0", ")", "tmp", "=", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ";", "else", "tmp", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "par", "[", "i", "]", "=", "tmp", ";", "}", "tmp", "=", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "i", ")", ";", "tmp", "=", "gen_rtx_PRE_MODIFY", "(", "Pmode", ",", "stack_pointer_rtx", ",", "tmp", ")", ";", "tmp", "=", "gen_frame_mem", "(", "BLKmode", ",", "tmp", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "tmp", ",", "par", "[", "0", "]", ")", ";", "par", "[", "0", "]", "=", "tmp", ";", "tmp", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec_v", "(", "i", ",", "par", ")", ")", ";", "insn", "=", "emit_insn", "(", "tmp", ")", ";", "tmp", "=", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "i", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "stack_pointer_rtx", ",", "tmp", ")", ";", "par", "[", "0", "]", "=", "tmp", ";", "for", "(", "j", "=", "0", ";", "real_regs", ";", "++", "j", ",", "real_regs", "&=", "real_regs", "-", "1", ")", "{", "regno", "=", "ctz_hwi", "(", "real_regs", ")", ";", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ";", "tmp", "=", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "j", "*", "4", ")", ";", "tmp", "=", "gen_frame_mem", "(", "SImode", ",", "tmp", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "tmp", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "par", "[", "j", "+", "1", "]", "=", "tmp", ";", "}", "if", "(", "j", "==", "0", ")", "tmp", "=", "par", "[", "0", "]", ";", "else", "{", "RTX_FRAME_RELATED_P", "(", "par", "[", "0", "]", ")", "=", "1", ";", "tmp", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "gen_rtvec_v", "(", "j", "+", "1", ",", "par", ")", ")", ";", "}", "add_reg_note", "(", "insn", ",", "REG_FRAME_RELATED_EXPR", ",", "tmp", ")", ";", "return", "insn", ";", "}", ""], "natrual_language": ["Like", "emit_multi_reg_push", ",", "but", "allowing", "for", "a", "different", "set", "of", "registers", "to", "be", "described", "as", "saved", ".", "MASK", "is", "the", "set", "of", "registers", "to", "be", "saved", ";", "REAL_REGS", "is", "the", "set", "of", "registers", "to", "be", "described", "as", "saved", ".", "If", "REAL_REGS", "is", "0", ",", "only", "describe", "the", "stack", "adjustment", "."], "TS_V_token": ["arm", "10", "0", "1", "0", "1", "4", "0", "0", "4", "0", "0", "1", "4", "1", "1", "0", "0", "0", "1", "1"], "File": "arm4", "Func": "thumb1_emit_multi_reg_push", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44730, "Length": 358}
{"ground_truth": ["", "static", "int", "thumb1_extra_regs_pushed", "(", "arm_stack_offsets", "*", "offsets", ",", "bool", "for_prologue", ")", "{", "HOST_WIDE_INT", "amount", ";", "unsigned", "long", "live_regs_mask", "=", "offsets", "->", "saved_regs_mask", ";", "unsigned", "long", "l_mask", "=", "live_regs_mask", "&", "(", "for_prologue", "?", "0x40ff", ":", "0xff", ")", ";", "unsigned", "long", "high_regs_pushed", "=", "bit_count", "(", "live_regs_mask", "&", "0x0f00", ")", ";", "int", "n_free", ",", "reg_base", ",", "size", ";", "if", "(", "!", "for_prologue", "&&", "frame_pointer_needed", ")", "amount", "=", "offsets", "->", "locals_base", "-", "offsets", "->", "saved_regs", ";", "else", "amount", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "!", "optimize_size", "&&", "amount", "!=", "512", ")", "return", "0", ";", "if", "(", "high_regs_pushed", "!=", "0", ")", "return", "0", ";", "if", "(", "l_mask", "==", "0", "&&", "(", "for_prologue", "||", "TARGET_BACKTRACE", "||", "(", "live_regs_mask", "&", "1", "<<", "LR_REGNUM", ")", "==", "0", "||", "TARGET_INTERWORK", "||", "crtl", "->", "args", ".", "pretend_args_size", "!=", "0", ")", ")", "return", "0", ";", "if", "(", "for_prologue", "&&", "(", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", ")", "||", "(", "!", "frame_pointer_needed", "&&", "CALLER_INTERWORKING_SLOT_SIZE", ">", "0", ")", ")", ")", "return", "0", ";", "reg_base", "=", "0", ";", "n_free", "=", "0", ";", "if", "(", "!", "for_prologue", ")", "{", "size", "=", "arm_size_return_regs", "(", ")", ";", "reg_base", "=", "ARM_NUM_INTS", "(", "size", ")", ";", "live_regs_mask", ">>=", "reg_base", ";", "}", "while", "(", "reg_base", "+", "n_free", "<", "8", "&&", "!", "(", "live_regs_mask", "&", "1", ")", "&&", "(", "for_prologue", "||", "call_used_regs", "[", "reg_base", "+", "n_free", "]", ")", ")", "{", "live_regs_mask", ">>=", "1", ";", "n_free", "++", ";", "}", "if", "(", "n_free", "==", "0", ")", "return", "0", ";", "gcc_assert", "(", "amount", "/", "4", "*", "4", "==", "amount", ")", ";", "if", "(", "amount", ">=", "512", "&&", "(", "amount", "-", "n_free", "*", "4", ")", "<", "512", ")", "return", "(", "amount", "-", "508", ")", "/", "4", ";", "if", "(", "amount", "<=", "n_free", "*", "4", ")", "return", "amount", "/", "4", ";", "return", "0", ";", "}", ""], "natrual_language": ["Given", "the", "stack", "offsets", "and", "register", "mask", "in", "OFFSETS", ",", "decide", "how", "many", "additional", "registers", "to", "push", "instead", "of", "subtracting", "a", "constant", "from", "SP", ".", "For", "epilogues", "the", "principle", "is", "the", "same", "except", "we", "use", "pop", ".", "FOR_PROLOGUE", "indicates", "which", "we", "'re", "generating", "."], "TS_V_token": ["arm", "0x40ff", "0xff", "0x0f00", "512", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "8", "1", "1", "0", "0", "4", "4", "512", "4", "512", "508", "4", "4", "4", "0"], "File": "arm4", "Func": "thumb1_extra_regs_pushed", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44731, "Length": 294}
{"ground_truth": ["", "void", "thumb1_final_prescan_insn", "(", "rtx_insn", "*", "insn", ")", "{", "if", "(", "flag_print_asm_name", ")", "asm_fprintf", "(", "asm_out_file", ",", "\"%@ 0x%04x\\n\"", ",", "INSN_ADDRESSES", "(", "INSN_UID", "(", "insn", ")", ")", ")", ";", "if", "(", "INSN_CODE", "(", "insn", ")", "!=", "CODE_FOR_cbranchsi4_insn", ")", "{", "enum", "attr_conds", "conds", ";", "if", "(", "cfun", "->", "machine", "->", "thumb1_cc_insn", ")", "{", "if", "(", "modified_in_p", "(", "cfun", "->", "machine", "->", "thumb1_cc_op0", ",", "insn", ")", "||", "modified_in_p", "(", "cfun", "->", "machine", "->", "thumb1_cc_op1", ",", "insn", ")", ")", "CC_STATUS_INIT", ";", "}", "conds", "=", "get_attr_conds", "(", "insn", ")", ";", "if", "(", "conds", "==", "CONDS_SET", ")", "{", "rtx", "set", "=", "single_set", "(", "insn", ")", ";", "cfun", "->", "machine", "->", "thumb1_cc_insn", "=", "insn", ";", "cfun", "->", "machine", "->", "thumb1_cc_op0", "=", "SET_DEST", "(", "set", ")", ";", "cfun", "->", "machine", "->", "thumb1_cc_op1", "=", "const0_rtx", ";", "cfun", "->", "machine", "->", "thumb1_cc_mode", "=", "CC_NOOVmode", ";", "if", "(", "INSN_CODE", "(", "insn", ")", "==", "CODE_FOR_thumb1_subsi3_insn", ")", "{", "rtx", "src1", "=", "XEXP", "(", "SET_SRC", "(", "set", ")", ",", "1", ")", ";", "if", "(", "src1", "==", "const0_rtx", ")", "cfun", "->", "machine", "->", "thumb1_cc_mode", "=", "CCmode", ";", "}", "else", "if", "(", "REG_P", "(", "SET_DEST", "(", "set", ")", ")", "&&", "REG_P", "(", "SET_SRC", "(", "set", ")", ")", ")", "{", "cfun", "->", "machine", "->", "thumb1_cc_op0", "=", "SET_SRC", "(", "set", ")", ";", "}", "}", "else", "if", "(", "conds", "!=", "CONDS_NOCOND", ")", "cfun", "->", "machine", "->", "thumb1_cc_insn", "=", "NULL_RTX", ";", "}", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", "&&", "get_attr_far_jump", "(", "insn", ")", "==", "FAR_JUMP_YES", ")", "internal_error", "(", "\"Unexpected thumb1 far jump\"", ")", ";", "}", ""], "natrual_language": ["Scan", "INSN", "just", "before", "assembler", "is", "output", "for", "it", ".", "For", "Thumb-1", ",", "we", "track", "the", "status", "of", "the", "condition", "codes", ";", "this", "information", "is", "used", "in", "the", "cbranchsi4_insn", "pattern", "."], "TS_V_token": ["arm", "\"%@ 0x%04x\\n\"", "1", "\"Unexpected thumb1 far jump\""], "File": "arm4", "Func": "thumb1_final_prescan_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44732, "Length": 242}
{"ground_truth": ["", "const", "char", "*", "thumb1_output_casesi", "(", "rtx", "*", "operands", ")", "{", "rtx", "diff_vec", "=", "PATTERN", "(", "NEXT_INSN", "(", "as_a", "<", "rtx_insn", "*", ">", "(", "operands", "[", "0", "]", ")", ")", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "diff_vec", ")", "==", "ADDR_DIFF_VEC", ")", ";", "switch", "(", "GET_MODE", "(", "diff_vec", ")", ")", "{", "case", "QImode", ":", "return", "(", "ADDR_DIFF_VEC_FLAGS", "(", "diff_vec", ")", ".", "offset_unsigned", "?", "\"bl\\t%___gnu_thumb1_case_uqi\"", ":", "\"bl\\t%___gnu_thumb1_case_sqi\"", ")", ";", "case", "HImode", ":", "return", "(", "ADDR_DIFF_VEC_FLAGS", "(", "diff_vec", ")", ".", "offset_unsigned", "?", "\"bl\\t%___gnu_thumb1_case_uhi\"", ":", "\"bl\\t%___gnu_thumb1_case_shi\"", ")", ";", "case", "SImode", ":", "return", "\"bl\\t%___gnu_thumb1_case_si\"", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Output", "a", "Thumb-1", "casesi", "dispatch", "sequence", "."], "TS_V_token": ["arm", "0", "\"bl\\t%___gnu_thumb1_case_uqi\"", "\"bl\\t%___gnu_thumb1_case_sqi\"", "\"bl\\t%___gnu_thumb1_case_uhi\"", "\"bl\\t%___gnu_thumb1_case_shi\"", "\"bl\\t%___gnu_thumb1_case_si\""], "File": "arm4", "Func": "thumb1_output_casesi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44733, "Length": 97}
{"ground_truth": ["", "static", "void", "thumb1_reorg", "(", "void", ")", "{", "basic_block", "bb", ";", "FOR_EACH_BB_FN", "(", "bb", ",", "cfun", ")", "{", "rtx", "dest", ",", "src", ";", "rtx", "pat", ",", "op0", ",", "set", "=", "NULL", ";", "rtx_insn", "*", "prev", ",", "*", "insn", "=", "BB_END", "(", "bb", ")", ";", "bool", "insn_clobbered", "=", "false", ";", "while", "(", "insn", "!=", "BB_HEAD", "(", "bb", ")", "&&", "!", "NONDEBUG_INSN_P", "(", "insn", ")", ")", "insn", "=", "PREV_INSN", "(", "insn", ")", ";", "if", "(", "insn", "==", "BB_HEAD", "(", "bb", ")", "||", "INSN_CODE", "(", "insn", ")", "!=", "CODE_FOR_cbranchsi4_insn", ")", "continue", ";", "pat", "=", "PATTERN", "(", "insn", ")", ";", "op0", "=", "XEXP", "(", "XEXP", "(", "SET_SRC", "(", "pat", ")", ",", "0", ")", ",", "0", ")", ";", "gcc_assert", "(", "insn", "!=", "BB_HEAD", "(", "bb", ")", ")", ";", "for", "(", "prev", "=", "PREV_INSN", "(", "insn", ")", ";", "(", "!", "insn_clobbered", "&&", "prev", "!=", "BB_HEAD", "(", "bb", ")", "&&", "(", "NOTE_P", "(", "prev", ")", "||", "DEBUG_INSN_P", "(", "prev", ")", "||", "(", "(", "set", "=", "single_set", "(", "prev", ")", ")", "!=", "NULL", "&&", "get_attr_conds", "(", "prev", ")", "==", "CONDS_NOCOND", ")", ")", ")", ";", "prev", "=", "PREV_INSN", "(", "prev", ")", ")", "{", "if", "(", "reg_set_p", "(", "op0", ",", "prev", ")", ")", "insn_clobbered", "=", "true", ";", "}", "if", "(", "insn_clobbered", ")", "continue", ";", "if", "(", "!", "set", ")", "continue", ";", "dest", "=", "SET_DEST", "(", "set", ")", ";", "src", "=", "SET_SRC", "(", "set", ")", ";", "if", "(", "!", "low_register_operand", "(", "dest", ",", "SImode", ")", "||", "!", "low_register_operand", "(", "src", ",", "SImode", ")", ")", "continue", ";", "if", "(", "REGNO", "(", "op0", ")", "==", "REGNO", "(", "src", ")", "||", "REGNO", "(", "op0", ")", "==", "REGNO", "(", "dest", ")", ")", "{", "dest", "=", "copy_rtx", "(", "dest", ")", ";", "src", "=", "copy_rtx", "(", "src", ")", ";", "src", "=", "gen_rtx_MINUS", "(", "SImode", ",", "src", ",", "const0_rtx", ")", ";", "PATTERN", "(", "prev", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "dest", ",", "src", ")", ";", "INSN_CODE", "(", "prev", ")", "=", "-", "1", ";", "XEXP", "(", "XEXP", "(", "SET_SRC", "(", "pat", ")", ",", "0", ")", ",", "0", ")", "=", "copy_rtx", "(", "dest", ")", ";", "INSN_CODE", "(", "insn", ")", "=", "-", "1", ";", "}", "}", "}", ""], "natrual_language": ["Rewrite", "move", "insn", "into", "subtract", "of", "0", "if", "the", "condition", "codes", "will", "be", "useful", "in", "next", "conditional", "jump", "insn", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "0", "1"], "File": "arm4", "Func": "thumb1_reorg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44734, "Length": 345}
{"ground_truth": ["", "void", "thumb2_expand_return", "(", "bool", "simple_return", ")", "{", "int", "i", ",", "num_regs", ";", "unsigned", "long", "saved_regs_mask", ";", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "saved_regs_mask", "=", "offsets", "->", "saved_regs_mask", ";", "for", "(", "i", "=", "0", ",", "num_regs", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "if", "(", "!", "simple_return", "&&", "saved_regs_mask", ")", "{", "if", "(", "num_regs", "==", "1", ")", "{", "rtx", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "2", ")", ")", ";", "rtx", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ";", "rtx", "addr", "=", "gen_rtx_MEM", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "SImode", ",", "stack_pointer_rtx", ")", ")", ";", "set_mem_alias_set", "(", "addr", ",", "get_frame_alias_set", "(", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", "=", "gen_rtx_SET", "(", "SImode", ",", "reg", ",", "addr", ")", ";", "RTX_FRAME_RELATED_P", "(", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", ")", "=", "1", ";", "emit_jump_insn", "(", "par", ")", ";", "}", "else", "{", "saved_regs_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "saved_regs_mask", "|=", "(", "1", "<<", "PC_REGNUM", ")", ";", "arm_emit_multi_reg_pop", "(", "saved_regs_mask", ")", ";", "}", "}", "else", "{", "emit_jump_insn", "(", "simple_return_rtx", ")", ";", "}", "}", ""], "natrual_language": ["Generate", "pattern", "*", "pop_multiple_with_stack_update_and_return", "if", "single", "POP", "instruction", "can", "be", "generated", ".", "LR", "should", "be", "replaced", "by", "PC", ".", "All", "the", "checks", "required", "are", "already", "done", "by", "USE_RETURN_INSN", "(", ")", ".", "Hence", ",", "all", "we", "really", "need", "to", "check", "here", "is", "if", "single", "register", "is", "to", "be", "returned", ",", "or", "multiple", "register", "return", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "2", "0", "0", "0", "1", "0", "1", "1", "1", "1"], "File": "arm4", "Func": "thumb2_expand_return", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44735, "Length": 208}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_address_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "(", "mode", "==", "DFmode", "&&", "(", "TARGET_SOFT_FLOAT", "||", "TARGET_VFP", ")", ")", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", ";", "if", "(", "!", "CONST_INT_P", "(", "addend", ")", ")", "return", "0", ";", "offset", "=", "INTVAL", "(", "addend", ")", ";", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "return", "(", "offset", ">", "-", "256", "&&", "offset", "<", "256", ")", ";", "return", "(", "use_ldrd", "&&", "offset", ">", "-", "1024", "&&", "offset", "<", "1024", "&&", "(", "offset", "&", "3", ")", "==", "0", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "(", "thumb2_legitimate_index_p", "(", "mode", ",", "xop1", ",", "strict_p", ")", "||", "(", "!", "strict_p", "&&", "will_be_in_index_register", "(", "xop1", ")", ")", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "thumb2_legitimate_index_p", "(", "mode", ",", "xop0", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "arm_disable_literal_pool", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", ")", "return", "0", ";", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "Thumb-2", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "256", "256", "1024", "1024", "3", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "0"], "File": "arm4", "Func": "thumb2_legitimate_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44736, "Length": 476}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_index_p", "(", "machine_mode", "mode", ",", "rtx", "index", ",", "int", "strict_p", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "index", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", "&&", "(", "mode", "==", "SFmode", "||", "mode", "==", "DFmode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ")", "{", "if", "(", "!", "TARGET_LDRD", "||", "mode", "!=", "DImode", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "}", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_QREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1016", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_DREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "index", ",", "strict_p", ")", "&&", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", "return", "1", ";", "if", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", "{", "if", "(", "code", "==", "CONST_INT", ")", "{", "HOST_WIDE_INT", "val", "=", "INTVAL", "(", "index", ")", ";", "return", "val", ">", "-", "256", "&&", "val", "<", "256", "&&", "(", "val", "&", "3", ")", "==", "0", ";", "}", "else", "return", "0", ";", "}", "if", "(", "code", "==", "MULT", ")", "{", "rtx", "xiop0", "=", "XEXP", "(", "index", ",", "0", ")", ";", "rtx", "xiop1", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xiop0", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop1", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xiop1", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop0", ")", ")", ")", ";", "}", "else", "if", "(", "code", "==", "ASHIFT", ")", "{", "rtx", "op", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "XEXP", "(", "index", ",", "0", ")", ",", "strict_p", ")", "&&", "CONST_INT_P", "(", "op", ")", "&&", "INTVAL", "(", "op", ")", ">", "0", "&&", "INTVAL", "(", "op", ")", "<=", "3", ")", ";", "}", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "4096", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "INDEX", "is", "a", "valid", "Thumb-2", "address", "index", "operand", "."], "TS_V_token": ["arm", "1024", "256", "3", "0", "1024", "1024", "3", "0", "1016", "1024", "3", "0", "1024", "1024", "3", "0", "4", "1", "256", "256", "3", "0", "0", "0", "1", "1", "0", "0", "3", "4096", "256"], "File": "arm4", "Func": "thumb2_legitimate_index_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44737, "Length": 415}
{"ground_truth": ["", "const", "char", "*", "thumb2_output_casesi", "(", "rtx", "*", "operands", ")", "{", "rtx", "diff_vec", "=", "PATTERN", "(", "NEXT_INSN", "(", "as_a", "<", "rtx_insn", "*", ">", "(", "operands", "[", "2", "]", ")", ")", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "diff_vec", ")", "==", "ADDR_DIFF_VEC", ")", ";", "output_asm_insn", "(", "\"cmp\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"bhi\\t%l3\"", ",", "operands", ")", ";", "switch", "(", "GET_MODE", "(", "diff_vec", ")", ")", "{", "case", "QImode", ":", "return", "\"tbb\\t[%|pc, %0]\"", ";", "case", "HImode", ":", "return", "\"tbh\\t[%|pc, %0, lsl #1]\"", ";", "case", "SImode", ":", "if", "(", "flag_pic", ")", "{", "output_asm_insn", "(", "\"adr\\t%4, %l2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%5, [%4, %0, lsl #2]\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"add\\t%4, %4, %5\"", ",", "operands", ")", ";", "return", "\"bx\\t%4\"", ";", "}", "else", "{", "output_asm_insn", "(", "\"adr\\t%4, %l2\"", ",", "operands", ")", ";", "return", "\"ldr\\t%|pc, [%4, %0, lsl #2]\"", ";", "}", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Output", "a", "Thumb-2", "casesi", "instruction", "."], "TS_V_token": ["arm", "2", "\"cmp\\t%0, %1\"", "\"bhi\\t%l3\"", "\"tbb\\t[%|pc, %0]\"", "\"tbh\\t[%|pc, %0, lsl #1]\"", "\"adr\\t%4, %l2\"", "\"ldr\\t%5, [%4, %0, lsl #2]\"", "\"add\\t%4, %4, %5\"", "\"bx\\t%4\"", "\"adr\\t%4, %l2\"", "\"ldr\\t%|pc, [%4, %0, lsl #2]\""], "File": "arm4", "Func": "thumb2_output_casesi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44738, "Length": 129}
{"ground_truth": ["", "void", "thumb_expand_movmemqi", "(", "rtx", "*", "operands", ")", "{", "rtx", "out", "=", "copy_to_mode_reg", "(", "SImode", ",", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ")", ";", "rtx", "in", "=", "copy_to_mode_reg", "(", "SImode", ",", "XEXP", "(", "operands", "[", "1", "]", ",", "0", ")", ")", ";", "HOST_WIDE_INT", "len", "=", "INTVAL", "(", "operands", "[", "2", "]", ")", ";", "HOST_WIDE_INT", "offset", "=", "0", ";", "while", "(", "len", ">=", "12", ")", "{", "emit_insn", "(", "gen_movmem12b", "(", "out", ",", "in", ",", "out", ",", "in", ")", ")", ";", "len", "-=", "12", ";", "}", "if", "(", "len", ">=", "8", ")", "{", "emit_insn", "(", "gen_movmem8b", "(", "out", ",", "in", ",", "out", ",", "in", ")", ")", ";", "len", "-=", "8", ";", "}", "if", "(", "len", ">=", "4", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "emit_insn", "(", "gen_movsi", "(", "reg", ",", "gen_rtx_MEM", "(", "SImode", ",", "in", ")", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "gen_rtx_MEM", "(", "SImode", ",", "out", ")", ",", "reg", ")", ")", ";", "len", "-=", "4", ";", "offset", "+=", "4", ";", "}", "if", "(", "len", ">=", "2", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "HImode", ")", ";", "emit_insn", "(", "gen_movhi", "(", "reg", ",", "gen_rtx_MEM", "(", "HImode", ",", "plus_constant", "(", "Pmode", ",", "in", ",", "offset", ")", ")", ")", ")", ";", "emit_insn", "(", "gen_movhi", "(", "gen_rtx_MEM", "(", "HImode", ",", "plus_constant", "(", "Pmode", ",", "out", ",", "offset", ")", ")", ",", "reg", ")", ")", ";", "len", "-=", "2", ";", "offset", "+=", "2", ";", "}", "if", "(", "len", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "QImode", ")", ";", "emit_insn", "(", "gen_movqi", "(", "reg", ",", "gen_rtx_MEM", "(", "QImode", ",", "plus_constant", "(", "Pmode", ",", "in", ",", "offset", ")", ")", ")", ")", ";", "emit_insn", "(", "gen_movqi", "(", "gen_rtx_MEM", "(", "QImode", ",", "plus_constant", "(", "Pmode", ",", "out", ",", "offset", ")", ")", ",", "reg", ")", ")", ";", "}", "}", ""], "natrual_language": ["Routines", "for", "generating", "rtl", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "2", "0", "12", "12", "8", "8", "4", "4", "4", "2", "2", "2"], "File": "arm4", "Func": "thumb_expand_movmemqi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44739, "Length": 293}
{"ground_truth": ["", "static", "int", "thumb_find_work_register", "(", "unsigned", "long", "pushed_regs_mask", ")", "{", "int", "reg", ";", "for", "(", "reg", "=", "LAST_ARG_REGNUM", ";", "reg", ">=", "0", ";", "reg", "--", ")", "if", "(", "!", "df_regs_ever_live_p", "(", "reg", ")", ")", "return", "reg", ";", "if", "(", "cfun", "->", "machine", "->", "uses_anonymous_args", "&&", "crtl", "->", "args", ".", "pretend_args_size", ">", "0", ")", "return", "LAST_ARG_REGNUM", ";", "if", "(", "!", "cfun", "->", "machine", "->", "uses_anonymous_args", "&&", "crtl", "->", "args", ".", "size", ">=", "0", "&&", "crtl", "->", "args", ".", "size", "<=", "(", "LAST_ARG_REGNUM", "*", "UNITS_PER_WORD", ")", "&&", "(", "TARGET_AAPCS_BASED", "?", "crtl", "->", "args", ".", "info", ".", "aapcs_ncrn", "<", "4", ":", "crtl", "->", "args", ".", "info", ".", "nregs", "<", "4", ")", ")", "return", "LAST_ARG_REGNUM", ";", "for", "(", "reg", "=", "LAST_LO_REGNUM", ";", "reg", ">", "LAST_ARG_REGNUM", ";", "reg", "--", ")", "if", "(", "pushed_regs_mask", "&", "(", "1", "<<", "reg", ")", ")", "return", "reg", ";", "if", "(", "TARGET_THUMB2", ")", "{", "for", "(", "reg", "=", "FIRST_HI_REGNUM", ";", "reg", "<", "15", ";", "reg", "++", ")", "if", "(", "pushed_regs_mask", "&", "(", "1", "<<", "reg", ")", ")", "return", "reg", ";", "}", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Find", "a", "spare", "low", "register", "to", "use", "during", "the", "prolog", "of", "a", "function", "."], "TS_V_token": ["arm", "0", "0", "0", "4", "4", "1", "15", "1"], "File": "arm4", "Func": "thumb_find_work_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44740, "Length": 174}
{"ground_truth": ["", "static", "bool", "thumb_force_lr_save", "(", "void", ")", "{", "return", "!", "cfun", "->", "machine", "->", "lr_save_eliminated", "&&", "(", "!", "leaf_function_p", "(", ")", "||", "thumb_far_jump_used_p", "(", ")", "||", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "the", "current", "function", "needs", "to", "save/restore", "LR", "."], "TS_V_token": ["arm"], "File": "arm4", "Func": "thumb_force_lr_save", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44741, "Length": 32}
{"ground_truth": ["", "rtx", "thumb_legitimize_address", "(", "rtx", "x", ",", "rtx", "orig_x", ",", "machine_mode", "mode", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "==", "PLUS", "&&", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&&", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", ">=", "32", "*", "GET_MODE_SIZE", "(", "mode", ")", "||", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "<", "0", ")", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", "=", "INTVAL", "(", "xop1", ")", ";", "if", "(", "optimize_size", "&&", "offset", ">=", "0", "&&", "offset", "<", "256", "+", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ")", "{", "HOST_WIDE_INT", "delta", ";", "if", "(", "offset", ">=", "256", ")", "delta", "=", "offset", "-", "(", "256", "-", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "else", "if", "(", "offset", "<", "32", "*", "GET_MODE_SIZE", "(", "mode", ")", "+", "8", ")", "delta", "=", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ";", "else", "delta", "=", "offset", "&", "(", "~", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "xop0", "=", "force_operand", "(", "plus_constant", "(", "Pmode", ",", "xop0", ",", "offset", "-", "delta", ")", ",", "NULL_RTX", ")", ";", "x", "=", "plus_constant", "(", "Pmode", ",", "xop0", ",", "delta", ")", ";", "}", "else", "if", "(", "offset", "<", "0", "&&", "offset", ">", "-", "256", ")", "x", "=", "force_operand", "(", "x", ",", "NULL_RTX", ")", ";", "else", "{", "xop1", "=", "force_reg", "(", "SImode", ",", "xop1", ")", ";", "x", "=", "gen_rtx_PLUS", "(", "SImode", ",", "xop0", ",", "xop1", ")", ";", "}", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "PLUS", "&&", "s_register_operand", "(", "XEXP", "(", "x", ",", "1", ")", ",", "SImode", ")", "&&", "!", "s_register_operand", "(", "XEXP", "(", "x", ",", "0", ")", ",", "SImode", ")", ")", "{", "rtx", "xop0", "=", "force_operand", "(", "XEXP", "(", "x", ",", "0", ")", ",", "NULL_RTX", ")", ";", "x", "=", "gen_rtx_PLUS", "(", "SImode", ",", "xop0", ",", "XEXP", "(", "x", ",", "1", ")", ")", ";", "}", "if", "(", "flag_pic", ")", "{", "rtx", "new_x", "=", "legitimize_pic_address", "(", "orig_x", ",", "mode", ",", "NULL_RTX", ")", ";", "if", "(", "new_x", "!=", "orig_x", ")", "x", "=", "new_x", ";", "}", "return", "x", ";", "}", ""], "natrual_language": ["Try", "machine-dependent", "ways", "of", "modifying", "an", "illegitimate", "Thumb", "address", "to", "be", "legitimate", ".", "If", "we", "find", "one", ",", "return", "the", "new", ",", "valid", "address", "."], "TS_V_token": ["arm", "1", "1", "32", "1", "0", "0", "1", "0", "256", "31", "256", "256", "32", "8", "31", "31", "0", "256", "1", "0", "0", "1"], "File": "arm4", "Func": "thumb_legitimize_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44742, "Length": 347}
{"ground_truth": ["", "static", "void", "thumb_pop", "(", "FILE", "*", "f", ",", "unsigned", "long", "mask", ")", "{", "int", "regno", ";", "int", "lo_mask", "=", "mask", "&", "0xFF", ";", "int", "pushed_words", "=", "0", ";", "gcc_assert", "(", "mask", ")", ";", "if", "(", "lo_mask", "==", "0", "&&", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", ")", "{", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "fprintf", "(", "f", ",", "\"\\tpop\\t{\"", ")", ";", "for", "(", "regno", "=", "0", ";", "regno", "<=", "LAST_LO_REGNUM", ";", "regno", "++", ",", "lo_mask", ">>=", "1", ")", "{", "if", "(", "lo_mask", "&", "1", ")", "{", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "regno", ")", ";", "if", "(", "(", "lo_mask", "&", "~", "1", ")", "!=", "0", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "pushed_words", "++", ";", "}", "}", "if", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", "{", "if", "(", "TARGET_INTERWORK", "||", "TARGET_BACKTRACE", "||", "crtl", "->", "calls_eh_return", ")", "{", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "else", "{", "if", "(", "mask", "&", "0xFF", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "PC_REGNUM", ")", ";", "}", "}", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "}", ""], "natrual_language": ["Emit", "code", "to", "push", "or", "pop", "registers", "to", "or", "from", "the", "stack", ".", "F", "is", "the", "assembly", "file", ".", "MASK", "is", "the", "registers", "to", "pop", "."], "TS_V_token": ["arm", "0xFF", "0", "0", "1", "1", "\"\\tpop\\t{\"", "0", "1", "1", "\"%r\"", "1", "0", "\", \"", "1", "\"}\\n\"", "1", "0xFF", "\", \"", "\"%r\"", "\"}\\n\""], "File": "arm4", "Func": "thumb_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44743, "Length": 199}
{"ground_truth": ["", "static", "void", "thumb_set_frame_pointer", "(", "arm_stack_offsets", "*", "offsets", ")", "{", "HOST_WIDE_INT", "amount", ";", "rtx", "insn", ",", "dwarf", ";", "amount", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "locals_base", ";", "if", "(", "amount", "<", "1024", ")", "insn", "=", "emit_insn", "(", "gen_addsi3", "(", "hard_frame_pointer_rtx", ",", "stack_pointer_rtx", ",", "GEN_INT", "(", "amount", ")", ")", ")", ";", "else", "{", "emit_insn", "(", "gen_movsi", "(", "hard_frame_pointer_rtx", ",", "GEN_INT", "(", "amount", ")", ")", ")", ";", "if", "(", "TARGET_THUMB2", ")", "{", "insn", "=", "emit_insn", "(", "gen_addsi3", "(", "hard_frame_pointer_rtx", ",", "stack_pointer_rtx", ",", "hard_frame_pointer_rtx", ")", ")", ";", "}", "else", "{", "insn", "=", "emit_insn", "(", "gen_addsi3", "(", "hard_frame_pointer_rtx", ",", "hard_frame_pointer_rtx", ",", "stack_pointer_rtx", ")", ")", ";", "}", "dwarf", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "hard_frame_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "amount", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "dwarf", ")", "=", "1", ";", "add_reg_note", "(", "insn", ",", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ")", ";", "}", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "}", ""], "natrual_language": ["Set", "the", "Thumb", "frame", "pointer", "from", "the", "stack", "pointer", "."], "TS_V_token": ["arm", "1024", "1", "1"], "File": "arm4", "Func": "thumb_set_frame_pointer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44744, "Length": 145}
{"ground_truth": ["", "int", "use_return_insn", "(", "int", "iscond", ",", "rtx", "sibling", ")", "{", "int", "regno", ";", "unsigned", "int", "func_type", ";", "unsigned", "long", "saved_int_regs", ";", "unsigned", "HOST_WIDE_INT", "stack_adjust", ";", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "func_type", "&", "(", "ARM_FT_VOLATILE", "|", "ARM_FT_NAKED", "|", "ARM_FT_STACKALIGN", ")", ")", "return", "0", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", "&&", "(", "frame_pointer_needed", "||", "TARGET_THUMB", ")", ")", "return", "0", ";", "if", "(", "TARGET_LDRD", "&&", "current_tune", "->", "prefer_ldrd_strd", "&&", "!", "optimize_function_for_size_p", "(", "cfun", ")", ")", "return", "0", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "stack_adjust", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "crtl", "->", "args", ".", "pretend_args_size", "||", "cfun", "->", "machine", "->", "uses_anonymous_args", "||", "crtl", "->", "calls_eh_return", "||", "cfun", "->", "calls_alloca", "||", "!", "(", "stack_adjust", "==", "0", "||", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "stack_adjust", "==", "4", ")", ")", ")", "return", "0", ";", "saved_int_regs", "=", "offsets", "->", "saved_regs_mask", ";", "if", "(", "stack_adjust", "==", "4", "&&", "!", "arm_arch5", "&&", "TARGET_ARM", ")", "{", "if", "(", "!", "call_used_regs", "[", "3", "]", ")", "return", "0", ";", "if", "(", "arm_size_return_regs", "(", ")", ">=", "(", "4", "*", "UNITS_PER_WORD", ")", ")", "return", "0", ";", "if", "(", "sibling", ")", "{", "gcc_assert", "(", "CALL_P", "(", "sibling", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "sibling", ",", "USE", ",", "3", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&", "0x7", ")", "return", "0", ";", "}", "if", "(", "TARGET_INTERWORK", "&&", "saved_int_regs", "!=", "0", "&&", "!", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "iscond", "&&", "arm_tune_strongarm", ")", "{", "if", "(", "saved_int_regs", "!=", "0", "&&", "saved_int_regs", "!=", "(", "1", "<<", "LR_REGNUM", ")", ")", "return", "0", ";", "if", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&&", "!", "(", "saved_int_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "return", "0", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", ")", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<=", "LAST_VFP_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "'s", "epilogue", "can", "be", "output", "as", "RTL", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "4", "0", "4", "3", "0", "4", "0", "3", "0", "0x7", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "0", "1"], "File": "arm4", "Func": "use_return_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44745, "Length": 379}
{"ground_truth": ["", "bool", "use_simple_return_p", "(", "void", ")", "{", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "return", "offsets", "->", "outgoing_args", "!=", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "we", "should", "try", "to", "use", "a", "simple_return", "insn", ",", "i.e", ".", "perform", "shrink-wrapping", "if", "possible", ".", "This", "is", "the", "case", "if", "we", "need", "to", "emit", "a", "prologue", ",", "which", "we", "can", "test", "by", "looking", "at", "the", "offsets", "."], "TS_V_token": ["arm", "0"], "File": "arm4", "Func": "use_simple_return_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44746, "Length": 24}
{"ground_truth": ["", "static", "bool", "use_vfp_abi", "(", "enum", "arm_pcs", "pcs_variant", ",", "bool", "is_double", ")", "{", "if", "(", "pcs_variant", "==", "ARM_PCS_AAPCS_VFP", ")", "{", "static", "bool", "seen_thumb1_vfp", "=", "false", ";", "if", "(", "TARGET_THUMB1", "&&", "!", "seen_thumb1_vfp", ")", "{", "sorry", "(", "\"Thumb-1 hard-float VFP ABI\"", ")", ";", "seen_thumb1_vfp", "=", "true", ";", "}", "return", "true", ";", "}", "if", "(", "pcs_variant", "!=", "ARM_PCS_AAPCS_LOCAL", ")", "return", "false", ";", "return", "(", "TARGET_32BIT", "&&", "TARGET_VFP", "&&", "TARGET_HARD_FLOAT", "&&", "(", "TARGET_VFP_DOUBLE", "||", "!", "is_double", ")", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "PCS_VARIANT", "should", "use", "VFP", "registers", "."], "TS_V_token": ["arm", "\"Thumb-1 hard-float VFP ABI\""], "File": "arm4", "Func": "use_vfp_abi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44747, "Length": 73}
{"ground_truth": ["", "int", "vfp3_const_double_for_bits", "(", "rtx", "operand", ")", "{", "REAL_VALUE_TYPE", "r0", ";", "if", "(", "!", "CONST_DOUBLE_P", "(", "operand", ")", ")", "return", "0", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "r0", ",", "operand", ")", ";", "if", "(", "exact_real_truncate", "(", "DFmode", ",", "&", "r0", ")", ")", "{", "HOST_WIDE_INT", "value", "=", "real_to_integer", "(", "&", "r0", ")", ";", "value", "=", "value", "&", "0xffffffff", ";", "if", "(", "(", "value", "!=", "0", ")", "&&", "(", "(", "value", "&", "(", "value", "-", "1", ")", ")", "==", "0", ")", ")", "return", "int_log2", "(", "value", ")", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["If", "X", "is", "a", "CONST_DOUBLE", "with", "a", "value", "that", "is", "a", "power", "of", "2", "whose", "log2", "is", "in", "[", "1", ",", "32", "]", ",", "return", "that", "log2", ".", "Otherwise", "return", "-1", ".", "This", "is", "used", "in", "the", "patterns", "for", "vcvt.s32.f32", "floating-point", "to", "fixed-point", "conversions", "."], "TS_V_token": ["arm", "0", "0xffffffff", "0", "1", "0", "0"], "File": "arm4", "Func": "vfp3_const_double_for_bits", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44748, "Length": 87}
{"ground_truth": ["", "static", "int", "vfp3_const_double_index", "(", "rtx", "x", ")", "{", "REAL_VALUE_TYPE", "r", ",", "m", ";", "int", "sign", ",", "exponent", ";", "unsigned", "HOST_WIDE_INT", "mantissa", ",", "mant_hi", ";", "unsigned", "HOST_WIDE_INT", "mask", ";", "int", "point_pos", "=", "2", "*", "HOST_BITS_PER_WIDE_INT", "-", "1", ";", "bool", "fail", ";", "if", "(", "!", "TARGET_VFP3", "||", "!", "CONST_DOUBLE_P", "(", "x", ")", ")", "return", "-", "1", ";", "REAL_VALUE_FROM_CONST_DOUBLE", "(", "r", ",", "x", ")", ";", "if", "(", "REAL_VALUE_ISINF", "(", "r", ")", "||", "REAL_VALUE_ISNAN", "(", "r", ")", "||", "REAL_VALUE_MINUS_ZERO", "(", "r", ")", ")", "return", "-", "1", ";", "sign", "=", "REAL_VALUE_NEGATIVE", "(", "r", ")", "?", "1", ":", "0", ";", "r", "=", "real_value_abs", "(", "&", "r", ")", ";", "exponent", "=", "REAL_EXP", "(", "&", "r", ")", ";", "real_ldexp", "(", "&", "m", ",", "&", "r", ",", "point_pos", "-", "exponent", ")", ";", "wide_int", "w", "=", "real_to_integer", "(", "&", "m", ",", "&", "fail", ",", "HOST_BITS_PER_WIDE_INT", "*", "2", ")", ";", "mantissa", "=", "w", ".", "elt", "(", "0", ")", ";", "mant_hi", "=", "w", ".", "elt", "(", "1", ")", ";", "if", "(", "mantissa", "!=", "0", ")", "return", "-", "1", ";", "point_pos", "-=", "HOST_BITS_PER_WIDE_INT", ";", "mantissa", "=", "mant_hi", ";", "mask", "=", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "1", "<<", "(", "point_pos", "-", "5", ")", ")", "-", "1", ";", "if", "(", "(", "mantissa", "&", "mask", ")", "!=", "0", ")", "return", "-", "1", ";", "mantissa", ">>=", "point_pos", "-", "5", ";", "if", "(", "mantissa", "==", "0", ")", "return", "-", "1", ";", "gcc_assert", "(", "mantissa", ">=", "16", "&&", "mantissa", "<=", "31", ")", ";", "exponent", "=", "5", "-", "exponent", ";", "if", "(", "exponent", "<", "0", "||", "exponent", ">", "7", ")", "return", "-", "1", ";", "return", "(", "sign", "<<", "7", ")", "|", "(", "(", "exponent", "^", "3", ")", "<<", "4", ")", "|", "(", "mantissa", "-", "16", ")", ";", "}", ""], "natrual_language": ["Return", "an", "integer", "index", "for", "a", "VFPv3", "immediate", "operand", "X", "suitable", "for", "the", "fconst", "[", "sd", "]", "instruction", ",", "or", "-1", "if", "X", "is", "n't", "suitable", "."], "TS_V_token": ["arm", "2", "1", "1", "1", "1", "0", "2", "0", "1", "0", "1", "1", "5", "1", "0", "1", "5", "0", "1", "16", "31", "5", "0", "7", "1", "7", "3", "4", "16"], "File": "arm4", "Func": "vfp3_const_double_index", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44749, "Length": 278}
{"ground_truth": ["", "static", "int", "vfp_emit_fstmd", "(", "int", "base_reg", ",", "int", "count", ")", "{", "rtx", "par", ";", "rtx", "dwarf", ";", "rtx", "tmp", ",", "reg", ";", "int", "i", ";", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "{", "if", "(", "base_reg", "==", "LAST_VFP_REGNUM", "-", "3", ")", "base_reg", "-=", "2", ";", "count", "++", ";", "}", "if", "(", "count", ">", "16", ")", "{", "int", "saved", ";", "saved", "=", "vfp_emit_fstmd", "(", "base_reg", "+", "32", ",", "count", "-", "16", ")", ";", "saved", "+=", "vfp_emit_fstmd", "(", "base_reg", ",", "16", ")", ";", "return", "saved", ";", "}", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", ")", ")", ";", "dwarf", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "1", ")", ")", ";", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "base_reg", ")", ";", "base_reg", "+=", "2", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "BLKmode", ",", "gen_rtx_PRE_MODIFY", "(", "Pmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "(", "count", "*", "8", ")", ")", ")", ")", ",", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "(", "count", "*", "8", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "0", ")", "=", "tmp", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "DFmode", ",", "stack_pointer_rtx", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "1", ")", "=", "tmp", ";", "for", "(", "i", "=", "1", ";", "i", "<", "count", ";", "i", "++", ")", "{", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "base_reg", ")", ";", "base_reg", "+=", "2", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "VOIDmode", ",", "gen_frame_mem", "(", "DFmode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "i", "*", "8", ")", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "i", "+", "1", ")", "=", "tmp", ";", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "add_reg_note", "(", "par", ",", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ")", ";", "RTX_FRAME_RELATED_P", "(", "par", ")", "=", "1", ";", "return", "count", "*", "8", ";", "}", ""], "natrual_language": ["Emit", "RTL", "to", "save", "block", "of", "VFP", "register", "pairs", "to", "the", "stack", ".", "Returns", "the", "number", "of", "bytes", "pushed", "."], "TS_V_token": ["arm", "2", "3", "2", "16", "32", "16", "16", "1", "2", "0", "0", "8", "1", "8", "1", "0", "0", "1", "0", "1", "1", "2", "0", "8", "1", "0", "1", "1", "8"], "File": "arm4", "Func": "vfp_emit_fstmd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44750, "Length": 373}
{"ground_truth": ["", "static", "bool", "xscale_sched_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "rtx", "link", ",", "rtx_insn", "*", "dep", ",", "int", "*", "cost", ")", "{", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "0", "&&", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", ")", "{", "int", "shift_opnum", "=", "get_attr_shift", "(", "insn", ")", ";", "enum", "attr_type", "attr_type", "=", "get_attr_type", "(", "dep", ")", ";", "if", "(", "shift_opnum", "!=", "0", "&&", "(", "attr_type", "==", "TYPE_ALU_SHIFT_IMM", "||", "attr_type", "==", "TYPE_ALUS_SHIFT_IMM", "||", "attr_type", "==", "TYPE_LOGIC_SHIFT_IMM", "||", "attr_type", "==", "TYPE_LOGICS_SHIFT_IMM", "||", "attr_type", "==", "TYPE_ALU_SHIFT_REG", "||", "attr_type", "==", "TYPE_ALUS_SHIFT_REG", "||", "attr_type", "==", "TYPE_LOGIC_SHIFT_REG", "||", "attr_type", "==", "TYPE_LOGICS_SHIFT_REG", "||", "attr_type", "==", "TYPE_MOV_SHIFT", "||", "attr_type", "==", "TYPE_MVN_SHIFT", "||", "attr_type", "==", "TYPE_MOV_SHIFT_REG", "||", "attr_type", "==", "TYPE_MVN_SHIFT_REG", ")", ")", "{", "rtx", "shifted_operand", ";", "int", "opno", ";", "extract_insn", "(", "insn", ")", ";", "shifted_operand", "=", "recog_data", ".", "operand", "[", "shift_opnum", "]", ";", "extract_insn", "(", "dep", ")", ";", "preprocess_constraints", "(", "dep", ")", ";", "for", "(", "opno", "=", "0", ";", "opno", "<", "recog_data", ".", "n_operands", ";", "opno", "++", ")", "{", "if", "(", "recog_data", ".", "operand_type", "[", "opno", "]", "==", "OP_IN", ")", "continue", ";", "if", "(", "reg_overlap_mentioned_p", "(", "recog_data", ".", "operand", "[", "opno", "]", ",", "shifted_operand", ")", ")", "{", "*", "cost", "=", "2", ";", "return", "false", ";", "}", "}", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Adjust", "cost", "hook", "for", "XScale", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "2"], "File": "arm4", "Func": "xscale_sched_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44751, "Length": 208}
{"ground_truth": ["", "static", "rtx", "aapcs_vfp_allocate_return_reg", "(", "enum", "arm_pcs", "pcs_variant", "ATTRIBUTE_UNUSED", ",", "machine_mode", "mode", ",", "const_tree", "type", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "!", "use_vfp_abi", "(", "pcs_variant", ",", "false", ")", ")", "return", "NULL", ";", "if", "(", "mode", "==", "BLKmode", "||", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">=", "GET_MODE_SIZE", "(", "TImode", ")", "&&", "!", "TARGET_NEON", ")", ")", "{", "int", "count", ";", "machine_mode", "ag_mode", ";", "int", "i", ";", "rtx", "par", ";", "int", "shift", ";", "aapcs_vfp_is_call_or_return_candidate", "(", "pcs_variant", ",", "mode", ",", "type", ",", "&", "ag_mode", ",", "&", "count", ")", ";", "if", "(", "!", "TARGET_NEON", ")", "{", "if", "(", "ag_mode", "==", "V2SImode", ")", "ag_mode", "=", "DImode", ";", "else", "if", "(", "ag_mode", "==", "V4SImode", ")", "{", "ag_mode", "=", "DImode", ";", "count", "*=", "2", ";", "}", "}", "shift", "=", "GET_MODE_SIZE", "(", "ag_mode", ")", "/", "GET_MODE_SIZE", "(", "SFmode", ")", ";", "par", "=", "gen_rtx_PARALLEL", "(", "mode", ",", "rtvec_alloc", "(", "count", ")", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "{", "rtx", "tmp", "=", "gen_rtx_REG", "(", "ag_mode", ",", "FIRST_VFP_REGNUM", "+", "i", "*", "shift", ")", ";", "tmp", "=", "gen_rtx_EXPR_LIST", "(", "VOIDmode", ",", "tmp", ",", "GEN_INT", "(", "i", "*", "GET_MODE_SIZE", "(", "ag_mode", ")", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "tmp", ";", "}", "return", "par", ";", "}", "return", "gen_rtx_REG", "(", "mode", ",", "FIRST_VFP_REGNUM", ")", ";", "}", ""], "natrual_language": ["Implement", "the", "allocate_return_reg", "field", "in", "aapcs_cp_arg_layout", ".", "See", "the", "comment", "there", "for", "the", "behaviour", "of", "this", "function", "."], "TS_V_token": ["arm", "2", "0", "0"], "File": "arm5", "Func": "aapcs_vfp_allocate_return_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44752, "Length": 219}
{"ground_truth": ["", "static", "bool", "aarch_macro_fusion_pair_p", "(", "rtx_insn", "*", "prev", ",", "rtx_insn", "*", "curr", ")", "{", "rtx", "set_dest", ";", "rtx", "prev_set", "=", "single_set", "(", "prev", ")", ";", "rtx", "curr_set", "=", "single_set", "(", "curr", ")", ";", "if", "(", "!", "prev_set", "||", "!", "curr_set", ")", "return", "false", ";", "if", "(", "any_condjump_p", "(", "curr", ")", ")", "return", "false", ";", "if", "(", "!", "arm_macro_fusion_p", "(", ")", ")", "return", "false", ";", "if", "(", "current_tune", "->", "fusible_ops", "&", "tune_params", "::", "FUSE_AES_AESMC", "&&", "aarch_crypto_can_dual_issue", "(", "prev", ",", "curr", ")", ")", "return", "true", ";", "if", "(", "current_tune", "->", "fusible_ops", "&", "tune_params", "::", "FUSE_MOVW_MOVT", ")", "{", "set_dest", "=", "SET_DEST", "(", "curr_set", ")", ";", "if", "(", "GET_MODE", "(", "set_dest", ")", "!=", "SImode", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "set_dest", ")", "==", "ZERO_EXTRACT", ")", "{", "if", "(", "CONST_INT_P", "(", "SET_SRC", "(", "curr_set", ")", ")", "&&", "CONST_INT_P", "(", "SET_SRC", "(", "prev_set", ")", ")", "&&", "REG_P", "(", "XEXP", "(", "set_dest", ",", "0", ")", ")", "&&", "REG_P", "(", "SET_DEST", "(", "prev_set", ")", ")", "&&", "REGNO", "(", "XEXP", "(", "set_dest", ",", "0", ")", ")", "==", "REGNO", "(", "SET_DEST", "(", "prev_set", ")", ")", ")", "return", "true", ";", "}", "else", "if", "(", "GET_CODE", "(", "SET_SRC", "(", "curr_set", ")", ")", "==", "LO_SUM", "&&", "REG_P", "(", "SET_DEST", "(", "curr_set", ")", ")", "&&", "REG_P", "(", "SET_DEST", "(", "prev_set", ")", ")", "&&", "GET_CODE", "(", "SET_SRC", "(", "prev_set", ")", ")", "==", "HIGH", "&&", "REGNO", "(", "SET_DEST", "(", "curr_set", ")", ")", "==", "REGNO", "(", "SET_DEST", "(", "prev_set", ")", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_MACRO_FUSION_PAIR_P", ".", "Return", "true", "if", "PREV", "and", "CURR", "should", "be", "kept", "together", "during", "scheduling", "."], "TS_V_token": ["arm", "0", "0"], "File": "arm5", "Func": "aarch_macro_fusion_pair_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44753, "Length": 244}
{"ground_truth": ["", "static", "void", "arm_asm_trampoline_template", "(", "FILE", "*", "f", ")", "{", "fprintf", "(", "f", ",", "\"\\t.syntax unified\\n\"", ")", ";", "if", "(", "TARGET_ARM", ")", "{", "fprintf", "(", "f", ",", "\"\\t.arm\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #0]\\n\"", ",", "STATIC_CHAIN_REGNUM", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #0]\\n\"", ",", "PC_REGNUM", ",", "PC_REGNUM", ")", ";", "}", "else", "if", "(", "TARGET_THUMB2", ")", "{", "fprintf", "(", "f", ",", "\"\\t.thumb\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", ",", "STATIC_CHAIN_REGNUM", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", ",", "PC_REGNUM", ",", "PC_REGNUM", ")", ";", "}", "else", "{", "ASM_OUTPUT_ALIGN", "(", "f", ",", "2", ")", ";", "fprintf", "(", "f", ",", "\"\\t.code\\t16\\n\"", ")", ";", "fprintf", "(", "f", ",", "\".Ltrampoline_start:\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tpush\\t{r0, r1}\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\tr0, [%r, #8]\\n\"", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tmov\\t%r, r0\\n\"", ",", "STATIC_CHAIN_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\tr0, [%r, #8]\\n\"", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tstr\\tr0, [%r, #4]\\n\"", ",", "SP_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tpop\\t{r0, %r}\\n\"", ",", "PC_REGNUM", ")", ";", "}", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "}", ""], "natrual_language": ["Output", "assembler", "code", "for", "a", "block", "containing", "the", "constant", "parts", "of", "a", "trampoline", ",", "leaving", "space", "for", "the", "variable", "parts", ".", "On", "the", "ARM", ",", "(", "if", "r8", "is", "the", "static", "chain", "regnum", ",", "and", "remembering", "that", "referencing", "pc", "adds", "an", "offset", "of", "8", ")", "the", "trampoline", "looks", "like", ":", "ldr", "r8", ",", "[", "pc", ",", "#", "0", "]", "ldr", "pc", ",", "[", "pc", "]", ".word", "static", "chain", "value", ".word", "function", "'s", "address", "XXX", "FIXME", ":", "When", "the", "trampoline", "returns", ",", "r8", "will", "be", "clobbered", "."], "TS_V_token": ["arm", "\"\\t.syntax unified\\n\"", "\"\\t.arm\\n\"", "\"\\tldr\\t%r, [%r, #0]\\n\"", "\"\\tldr\\t%r, [%r, #0]\\n\"", "\"\\t.thumb\\n\"", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", "2", "\"\\t.code\\t16\\n\"", "\".Ltrampoline_start:\\n\"", "\"\\tpush\\t{r0, r1}\\n\"", "\"\\tldr\\tr0, [%r, #8]\\n\"", "\"\\tmov\\t%r, r0\\n\"", "\"\\tldr\\tr0, [%r, #8]\\n\"", "\"\\tstr\\tr0, [%r, #4]\\n\"", "\"\\tpop\\t{r0, %r}\\n\""], "File": "arm5", "Func": "arm_asm_trampoline_template", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44754, "Length": 178}
{"ground_truth": ["", "static", "bool", "arm_assemble_integer", "(", "rtx", "x", ",", "unsigned", "int", "size", ",", "int", "aligned_p", ")", "{", "machine_mode", "mode", ";", "if", "(", "size", "==", "UNITS_PER_WORD", "&&", "aligned_p", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "NEED_GOT_RELOC", "&&", "flag_pic", "&&", "making_const_table", "&&", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "||", "GET_CODE", "(", "x", ")", "==", "LABEL_REF", ")", ")", "{", "if", "(", "!", "arm_pic_data_is_text_relative", "||", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "&&", "!", "SYMBOL_REF_LOCAL_P", "(", "x", ")", ")", ")", "fputs", "(", "\"(GOT)\"", ",", "asm_out_file", ")", ";", "else", "fputs", "(", "\"(GOTOFF)\"", ",", "asm_out_file", ")", ";", "}", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "true", ";", "}", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "arm_vector_mode_supported_p", "(", "mode", ")", ")", "{", "int", "i", ",", "units", ";", "gcc_assert", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", ";", "units", "=", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "size", "=", "GET_MODE_UNIT_SIZE", "(", "mode", ")", ";", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", ")", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_integer", "(", "elt", ",", "size", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ",", "1", ")", ";", "}", "else", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_real", "(", "*", "CONST_DOUBLE_REAL_VALUE", "(", "elt", ")", ",", "GET_MODE_INNER", "(", "mode", ")", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ")", ";", "}", "return", "true", ";", "}", "return", "default_assemble_integer", "(", "x", ",", "size", ",", "aligned_p", ")", ";", "}", ""], "natrual_language": ["Target", "hook", "for", "assembling", "integer", "objects", ".", "The", "ARM", "version", "needs", "to", "handle", "word-sized", "values", "specially", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "\"(GOT)\"", "\"(GOTOFF)\"", "0", "0", "1", "0", "0"], "File": "arm5", "Func": "arm_assemble_integer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44755, "Length": 275}
{"ground_truth": ["", "static", "bool", "arm_can_inline_p", "(", "tree", "caller", ",", "tree", "callee", ")", "{", "tree", "caller_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "caller", ")", ";", "tree", "callee_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "callee", ")", ";", "struct", "cl_target_option", "*", "caller_opts", "=", "TREE_TARGET_OPTION", "(", "caller_tree", "?", "caller_tree", ":", "target_option_default_node", ")", ";", "struct", "cl_target_option", "*", "callee_opts", "=", "TREE_TARGET_OPTION", "(", "callee_tree", "?", "callee_tree", ":", "target_option_default_node", ")", ";", "const", "struct", "arm_fpu_desc", "*", "caller_fpu", "=", "&", "all_fpus", "[", "caller_opts", "->", "x_arm_fpu_index", "]", ";", "const", "struct", "arm_fpu_desc", "*", "callee_fpu", "=", "&", "all_fpus", "[", "callee_opts", "->", "x_arm_fpu_index", "]", ";", "if", "(", "(", "caller_fpu", "->", "features", "&", "callee_fpu", "->", "features", ")", "!=", "callee_fpu", "->", "features", ")", "return", "false", ";", "if", "(", "callee_fpu", "->", "model", "!=", "caller_fpu", "->", "model", "||", "callee_fpu", "->", "regs", "!=", "callee_fpu", "->", "regs", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Hook", "to", "determine", "if", "one", "function", "can", "safely", "inline", "another", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "arm_can_inline_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44756, "Length": 127}
{"ground_truth": ["", "static", "int", "arm_compute_static_chain_stack_bytes", "(", "void", ")", "{", "if", "(", "IS_NESTED", "(", "arm_current_func_type", "(", ")", ")", "&&", "(", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "TARGET_ARM", ")", "||", "(", "flag_stack_check", "==", "STATIC_BUILTIN_STACK_CHECK", "&&", "!", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", ")", ")", "&&", "arm_r3_live_at_start_p", "(", ")", "&&", "crtl", "->", "args", ".", "pretend_args_size", "==", "0", ")", "return", "4", ";", "return", "0", ";", "}", ""], "natrual_language": ["Compute", "the", "number", "of", "bytes", "used", "to", "store", "the", "static", "chain", "register", "on", "the", "stack", ",", "above", "the", "stack", "frame", ".", "We", "need", "to", "know", "this", "accurately", "to", "get", "the", "alignment", "of", "the", "rest", "of", "the", "stack", "frame", "correct", "."], "TS_V_token": ["arm", "0", "4", "0"], "File": "arm5", "Func": "arm_compute_static_chain_stack_bytes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44757, "Length": 57}
{"ground_truth": ["", "void", "arm_declare_function_name", "(", "FILE", "*", "stream", ",", "const", "char", "*", "name", ",", "tree", "decl", ")", "{", "fprintf", "(", "stream", ",", "\"\\t.syntax unified\\n\"", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "if", "(", "is_called_in_ARM_mode", "(", "decl", ")", "||", "(", "TARGET_THUMB1", "&&", "!", "TARGET_THUMB1_ONLY", "&&", "cfun", "->", "is_thunk", ")", ")", "fprintf", "(", "stream", ",", "\"\\t.code 32\\n\"", ")", ";", "else", "if", "(", "TARGET_THUMB1", ")", "fprintf", "(", "stream", ",", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", ")", ";", "else", "fprintf", "(", "stream", ",", "\"\\t.thumb\\n\\t.thumb_func\\n\"", ")", ";", "}", "else", "fprintf", "(", "stream", ",", "\"\\t.arm\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.fpu %s\\n\"", ",", "TARGET_SOFT_FLOAT", "?", "\"softvfp\"", ":", "TARGET_FPU_NAME", ")", ";", "if", "(", "TARGET_POKE_FUNCTION_NAME", ")", "arm_poke_function_name", "(", "stream", ",", "(", "const", "char", "*", ")", "name", ")", ";", "}", ""], "natrual_language": ["Implement", "ASM_DECLARE_FUNCTION_NAME", ".", "Output", "the", "ISA", "features", "used", "by", "the", "function", "fndecl", "."], "TS_V_token": ["arm", "\"\\t.syntax unified\\n\"", "\"\\t.code 32\\n\"", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", "\"\\t.thumb\\n\\t.thumb_func\\n\"", "\"\\t.arm\\n\"", "\"\\t.fpu %s\\n\"", "\"softvfp\""], "File": "arm5", "Func": "arm_declare_function_name", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44758, "Length": 112}
{"ground_truth": ["", "static", "void", "arm_emit_vfp_multi_reg_pop", "(", "int", "first_reg", ",", "int", "num_regs", ",", "rtx", "base_reg", ")", "{", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "reg", ";", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "32", ")", ";", "if", "(", "num_regs", "==", "2", "&&", "!", "arm_arch6", ")", "{", "if", "(", "first_reg", "==", "15", ")", "first_reg", "--", ";", "num_regs", "++", ";", "}", "if", "(", "num_regs", ">", "16", ")", "{", "arm_emit_vfp_multi_reg_pop", "(", "first_reg", ",", "16", ",", "base_reg", ")", ";", "arm_emit_vfp_multi_reg_pop", "(", "first_reg", "+", "16", ",", "num_regs", "-", "16", ",", "base_reg", ")", ";", "return", ";", "}", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", "+", "1", ")", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "base_reg", ",", "plus_constant", "(", "Pmode", ",", "base_reg", ",", "8", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "tmp", ";", "for", "(", "j", "=", "0", ",", "i", "=", "first_reg", ";", "j", "<", "num_regs", ";", "i", "+=", "2", ")", "{", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "i", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "reg", ",", "gen_frame_mem", "(", "DFmode", ",", "plus_constant", "(", "Pmode", ",", "base_reg", ",", "8", "*", "j", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", "+", "1", ")", "=", "tmp", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "reg", ",", "dwarf", ")", ";", "j", "++", ";", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "if", "(", "TARGET_VFP", "&&", "REGNO", "(", "base_reg", ")", "==", "IP_REGNUM", ")", "{", "RTX_FRAME_RELATED_P", "(", "par", ")", "=", "1", ";", "add_reg_note", "(", "par", ",", "REG_CFA_DEF_CFA", ",", "hard_frame_pointer_rtx", ")", ";", "}", "else", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "2", "*", "UNITS_PER_WORD", "*", "num_regs", ",", "base_reg", ",", "base_reg", ")", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "pattern", "that", "we", "will", "recognize", "as", "a", "pop_multi", "of", "NUM_REGS", "consecutive", "VFP", "regs", ",", "starting", "at", "FIRST_REG", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "32", "2", "15", "16", "16", "16", "16", "1", "8", "1", "0", "0", "0", "2", "8", "1", "0", "1", "1", "2"], "File": "arm5", "Func": "arm_emit_vfp_multi_reg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44759, "Length": 292}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vtrn", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "0", ")", "odd", "=", "0", ";", "else", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "1", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "2", ")", "{", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "i", "+", "odd", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "1", "]", "!=", "(", "(", "i", "+", "nelt", "+", "odd", ")", "&", "mask", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vtrnv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vtrnv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vtrnv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vtrnv4hi_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vtrnv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vtrnv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vtrnv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vtrnv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "odd", "=", "!", "odd", ";", "}", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VTRN", "insns", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "1"], "File": "arm5", "Func": "arm_evpc_neon_vtrn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44760, "Length": 346}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vuzp", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "int", "first_elem", ";", "int", "swap_nelt", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "swap_nelt", "=", "BYTES_BIG_ENDIAN", "&&", "!", "d", "->", "one_vector_p", "&&", "GET_MODE_SIZE", "(", "d", "->", "vmode", ")", "==", "8", "?", "d", "->", "nelt", ":", "0", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "]", "^", "swap_nelt", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "odd", "=", "0", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "1", ")", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "(", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", ")", "*", "2", "+", "odd", ")", "&", "mask", ";", "if", "(", "(", "d", "->", "perm", "[", "i", "]", "^", "swap_nelt", ")", "!=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "elt", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vuzpv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vuzpv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vuzpv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vuzpv4hi_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vuzpv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vuzpv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vuzpv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vuzpv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "swap_nelt", "!=", "0", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VUZP", "insns", "."], "TS_V_token": ["arm", "8", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "0"], "File": "arm5", "Func": "arm_evpc_neon_vuzp", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44761, "Length": 395}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vzip", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "high", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "int", "first_elem", ";", "bool", "is_swapped", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "is_swapped", "=", "BYTES_BIG_ENDIAN", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "^", "is_swapped", "]", ";", "high", "=", "nelt", "/", "2", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "high", ")", ")", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "high", "=", "0", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", "/", "2", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "nelt", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "!", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vzipv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vzipv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vzipv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vzipv4hi_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vzipv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vzipv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vzipv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vzipv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "is_swapped", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "high", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VZIP", "insns", "."], "TS_V_token": ["arm", "8", "0", "2", "0", "0", "1", "2", "1", "0", "2", "2", "2"], "File": "arm5", "Func": "arm_evpc_neon_vzip", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44762, "Length": 417}
{"ground_truth": ["", "void", "arm_expand_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "bval", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ",", "x", ";", "machine_mode", "mode", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "bval", "=", "operands", "[", "0", "]", ";", "rval", "=", "operands", "[", "1", "]", ";", "mem", "=", "operands", "[", "2", "]", ";", "oldval", "=", "operands", "[", "3", "]", ";", "newval", "=", "operands", "[", "4", "]", ";", "is_weak", "=", "operands", "[", "5", "]", ";", "mod_s", "=", "operands", "[", "6", "]", ";", "mod_f", "=", "operands", "[", "7", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "if", "(", "TARGET_HAVE_LDACQ", "&&", "is_mm_acquire", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_f", ")", ")", ")", "&&", "is_mm_release", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_s", ")", ")", ")", ")", "mod_s", "=", "GEN_INT", "(", "MEMMODEL_ACQ_REL", ")", ";", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "case", "HImode", ":", "rval", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "oldval", "=", "convert_modes", "(", "SImode", ",", "mode", ",", "oldval", ",", "true", ")", ";", "case", "SImode", ":", "if", "(", "!", "arm_add_operand", "(", "oldval", ",", "SImode", ")", ")", "oldval", "=", "force_reg", "(", "SImode", ",", "oldval", ")", ";", "break", ";", "case", "DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "oldval", ",", "mode", ")", ")", "oldval", "=", "force_reg", "(", "mode", ",", "oldval", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "gen", "=", "gen_atomic_compare_and_swapqi_1", ";", "break", ";", "case", "HImode", ":", "gen", "=", "gen_atomic_compare_and_swaphi_1", ";", "break", ";", "case", "SImode", ":", "gen", "=", "gen_atomic_compare_and_swapsi_1", ";", "break", ";", "case", "DImode", ":", "gen", "=", "gen_atomic_compare_and_swapdi_1", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "emit_insn", "(", "gen", "(", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ")", ")", ";", "if", "(", "mode", "==", "QImode", "||", "mode", "==", "HImode", ")", "emit_move_insn", "(", "operands", "[", "1", "]", ",", "gen_lowpart", "(", "mode", ",", "rval", ")", ")", ";", "x", "=", "gen_rtx_REG", "(", "CCmode", ",", "CC_REGNUM", ")", ";", "x", "=", "gen_rtx_EQ", "(", "SImode", ",", "x", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "bval", ",", "x", ")", ")", ";", "}", ""], "natrual_language": ["Expand", "a", "compare", "and", "swap", "pattern", "."], "TS_V_token": ["arm", "0", "1", "2", "3", "4", "5", "6", "7", "1"], "File": "arm5", "Func": "arm_expand_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44763, "Length": 358}
{"ground_truth": ["", "bool", "arm_frame_pointer_required", "(", "void", ")", "{", "if", "(", "SUBTARGET_FRAME_POINTER_REQUIRED", ")", "return", "true", ";", "if", "(", "cfun", "->", "has_nonlocal_label", ")", "return", "true", ";", "if", "(", "TARGET_ARM", "&&", "TARGET_APCS_FRAME", "&&", "!", "leaf_function_p", "(", ")", ")", "return", "true", ";", "if", "(", "!", "IS_INTERRUPT", "(", "arm_current_func_type", "(", ")", ")", "&&", "flag_stack_check", "==", "STATIC_BUILTIN_STACK_CHECK", "&&", "arm_except_unwind_info", "(", "&", "global_options", ")", "==", "UI_TARGET", "&&", "cfun", "->", "can_throw_non_call_exceptions", ")", "{", "HOST_WIDE_INT", "size", "=", "get_frame_size", "(", ")", ";", "if", "(", "size", "<=", "0", ")", "return", "false", ";", "if", "(", "crtl", "->", "is_leaf", "&&", "!", "cfun", "->", "calls_alloca", ")", "{", "size", "+=", "32", "*", "UNITS_PER_WORD", ";", "if", "(", "size", ">", "PROBE_INTERVAL", "&&", "size", ">", "STACK_CHECK_PROTECT", ")", "return", "true", ";", "}", "else", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FRAME_POINTER_REQUIRED", "."], "TS_V_token": ["arm", "0", "32"], "File": "arm5", "Func": "arm_frame_pointer_required", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44764, "Length": 120}
{"ground_truth": ["", "static", "bool", "arm_function_ok_for_sibcall", "(", "tree", "decl", ",", "tree", "exp", ")", "{", "unsigned", "long", "func_type", ";", "if", "(", "cfun", "->", "machine", "->", "sibcall_blocked", ")", "return", "false", ";", "if", "(", "TARGET_THUMB1", ")", "return", "false", ";", "if", "(", "TARGET_VXWORKS_RTP", "&&", "flag_pic", "&&", "!", "targetm", ".", "binds_local_p", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "TARGET_INTERWORK", "&&", "decl", "&&", "TREE_PUBLIC", "(", "decl", ")", "&&", "!", "TREE_ASM_WRITTEN", "(", "decl", ")", ")", "return", "false", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "!", "VOID_TYPE_P", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ")", ")", "{", "rtx", "a", ",", "b", ";", "tree", "decl_or_type", "=", "decl", ";", "if", "(", "!", "decl", ")", "decl_or_type", "=", "TREE_TYPE", "(", "TREE_TYPE", "(", "CALL_EXPR_FN", "(", "exp", ")", ")", ")", ";", "a", "=", "arm_function_value", "(", "TREE_TYPE", "(", "exp", ")", ",", "decl_or_type", ",", "false", ")", ";", "b", "=", "arm_function_value", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ",", "cfun", "->", "decl", ",", "false", ")", ";", "if", "(", "!", "rtx_equal_p", "(", "a", ",", "b", ")", ")", "return", "false", ";", "}", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "TARGET_AAPCS_BASED", "&&", "arm_abi", "==", "ARM_ABI_AAPCS", "&&", "decl", "&&", "DECL_WEAK", "(", "decl", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "it", "is", "ok", "to", "make", "a", "tail-call", "to", "DECL", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "arm_function_ok_for_sibcall", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44765, "Length": 212}
{"ground_truth": ["", "rtx", "arm_gen_compare_reg", "(", "enum", "rtx_code", "code", ",", "rtx", "x", ",", "rtx", "y", ",", "rtx", "scratch", ")", "{", "machine_mode", "mode", ";", "rtx", "cc_reg", ";", "int", "dimode_comparison", "=", "GET_MODE", "(", "x", ")", "==", "DImode", "||", "GET_MODE", "(", "y", ")", "==", "DImode", ";", "if", "(", "dimode_comparison", "&&", "!", "REG_P", "(", "x", ")", ")", "x", "=", "force_reg", "(", "DImode", ",", "x", ")", ";", "mode", "=", "SELECT_CC_MODE", "(", "code", ",", "x", ",", "y", ")", ";", "cc_reg", "=", "gen_rtx_REG", "(", "mode", ",", "CC_REGNUM", ")", ";", "if", "(", "dimode_comparison", "&&", "mode", "!=", "CC_CZmode", ")", "{", "rtx", "clobber", ",", "set", ";", "if", "(", "mode", "==", "CC_Zmode", "&&", "y", "!=", "const0_rtx", ")", "{", "gcc_assert", "(", "!", "reload_completed", ")", ";", "x", "=", "expand_binop", "(", "DImode", ",", "xor_optab", ",", "x", ",", "y", ",", "NULL_RTX", ",", "0", ",", "OPTAB_WIDEN", ")", ";", "y", "=", "const0_rtx", ";", "}", "if", "(", "reload_completed", ")", "gcc_assert", "(", "scratch", "!=", "NULL", "&&", "GET_MODE", "(", "scratch", ")", "==", "SImode", ")", ";", "else", "scratch", "=", "gen_rtx_SCRATCH", "(", "SImode", ")", ";", "clobber", "=", "gen_rtx_CLOBBER", "(", "VOIDmode", ",", "scratch", ")", ";", "set", "=", "gen_rtx_SET", "(", "cc_reg", ",", "gen_rtx_COMPARE", "(", "mode", ",", "x", ",", "y", ")", ")", ";", "emit_insn", "(", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec", "(", "2", ",", "set", ",", "clobber", ")", ")", ")", ";", "}", "else", "emit_set_insn", "(", "cc_reg", ",", "gen_rtx_COMPARE", "(", "mode", ",", "x", ",", "y", ")", ")", ";", "return", "cc_reg", ";", "}", ""], "natrual_language": ["X", "and", "Y", "are", "two", "things", "to", "compare", "using", "CODE", ".", "Emit", "the", "compare", "insn", "and", "return", "the", "rtx", "for", "register", "0", "in", "the", "proper", "mode", ".", "FP", "means", "this", "is", "a", "floating", "point", "compare", ":", "I", "do", "n't", "think", "that", "it", "is", "needed", "on", "the", "arm", "."], "TS_V_token": ["arm", "0", "2"], "File": "arm5", "Func": "arm_gen_compare_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44766, "Length": 222}
{"ground_truth": ["", "static", "void", "arm_insert_attributes", "(", "tree", "fndecl", ",", "tree", "*", "attributes", ")", "{", "const", "char", "*", "mode", ";", "if", "(", "!", "TARGET_FLIP_THUMB", ")", "return", ";", "if", "(", "TREE_CODE", "(", "fndecl", ")", "!=", "FUNCTION_DECL", "||", "DECL_EXTERNAL", "(", "fndecl", ")", "||", "DECL_BUILT_IN", "(", "fndecl", ")", "||", "DECL_ARTIFICIAL", "(", "fndecl", ")", ")", "return", ";", "if", "(", "current_function_decl", ")", "{", "mode", "=", "TARGET_THUMB", "?", "\"thumb\"", ":", "\"arm\"", ";", "add_attribute", "(", "mode", ",", "attributes", ")", ";", "return", ";", "}", "if", "(", "lookup_attribute", "(", "\"target\"", ",", "*", "attributes", ")", "!=", "NULL", ")", "return", ";", "mode", "=", "thumb_flipper", "?", "\"thumb\"", ":", "\"arm\"", ";", "add_attribute", "(", "mode", ",", "attributes", ")", ";", "thumb_flipper", "=", "!", "thumb_flipper", ";", "}", ""], "natrual_language": ["For", "testing", ".", "Insert", "thumb", "or", "arm", "modes", "alternatively", "on", "functions", "."], "TS_V_token": ["arm", "\"thumb\"", "\"arm\"", "\"target\"", "\"thumb\"", "\"arm\""], "File": "arm5", "Func": "arm_insert_attributes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44767, "Length": 108}
{"ground_truth": ["", "void", "arm_load_pic_register", "(", "unsigned", "long", "saved_regs", "ATTRIBUTE_UNUSED", ")", "{", "rtx", "l1", ",", "labelno", ",", "pic_tmp", ",", "pic_rtx", ",", "pic_reg", ";", "if", "(", "crtl", "->", "uses_pic_offset_table", "==", "0", "||", "TARGET_SINGLE_PIC_BASE", ")", "return", ";", "gcc_assert", "(", "flag_pic", ")", ";", "pic_reg", "=", "cfun", "->", "machine", "->", "pic_reg", ";", "if", "(", "TARGET_VXWORKS_RTP", ")", "{", "pic_rtx", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_BASE", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "emit_insn", "(", "gen_pic_load_addr_32bit", "(", "pic_reg", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "pic_reg", ",", "gen_rtx_MEM", "(", "Pmode", ",", "pic_reg", ")", ")", ")", ";", "pic_tmp", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_INDEX", ")", ";", "emit_insn", "(", "gen_pic_offset_arm", "(", "pic_reg", ",", "pic_reg", ",", "pic_tmp", ")", ")", ";", "}", "else", "{", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "pic_rtx", "=", "plus_constant", "(", "Pmode", ",", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "pic_rtx", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "pic_rtx", ")", ",", "UNSPEC_GOTSYM_OFF", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "else", "{", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", ">", "LAST_LO_REGNUM", ")", "{", "pic_tmp", "=", "gen_rtx_REG", "(", "SImode", ",", "thumb_find_work_register", "(", "saved_regs", ")", ")", ";", "emit_insn", "(", "gen_pic_load_addr_thumb1", "(", "pic_tmp", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "pic_offset_table_rtx", ",", "pic_tmp", ")", ")", ";", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "pic_reg", ",", "pic_reg", ",", "labelno", ")", ")", ";", "}", "else", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", "<=", "LAST_LO_REGNUM", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "emit_move_insn", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ",", "pic_reg", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ")", ";", "}", "else", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "}", "emit_use", "(", "pic_reg", ")", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "PIC", "register", ".", "In", "thumb", "mode", "SCRATCH", "is", "a", "low", "register", "."], "TS_V_token": ["arm", "0", "1", "8", "4", "1"], "File": "arm5", "Func": "arm_load_pic_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44768, "Length": 344}
{"ground_truth": ["", "static", "bool", "arm_needs_doubleword_align", "(", "machine_mode", "mode", ",", "const_tree", "type", ")", "{", "if", "(", "!", "type", ")", "return", "PARM_BOUNDARY", "<", "GET_MODE_ALIGNMENT", "(", "mode", ")", ";", "if", "(", "!", "AGGREGATE_TYPE_P", "(", "type", ")", ")", "return", "TYPE_ALIGN", "(", "TYPE_MAIN_VARIANT", "(", "type", ")", ")", ">", "PARM_BOUNDARY", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "ARRAY_TYPE", ")", "return", "TYPE_ALIGN", "(", "TREE_TYPE", "(", "type", ")", ")", ">", "PARM_BOUNDARY", ";", "for", "(", "tree", "field", "=", "TYPE_FIELDS", "(", "type", ")", ";", "field", ";", "field", "=", "DECL_CHAIN", "(", "field", ")", ")", "if", "(", "DECL_ALIGN", "(", "field", ")", ">", "PARM_BOUNDARY", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Return", "1", "if", "double", "word", "alignment", "is", "required", "for", "argument", "passing", ".", "Return", "-1", "if", "double", "word", "alignment", "used", "to", "be", "required", "for", "argument", "passing", "before", "PR77728", "ABI", "fix", ",", "but", "is", "not", "required", "anymore", ".", "Return", "0", "if", "double", "word", "alignment", "is", "not", "required", "and", "was", "n't", "requried", "before", "either", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "arm_needs_doubleword_align", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44769, "Length": 98}
{"ground_truth": ["", "static", "void", "arm_option_check_internal", "(", "struct", "gcc_options", "*", "opts", ")", "{", "int", "flags", "=", "opts", "->", "x_target_flags", ";", "const", "struct", "arm_fpu_desc", "*", "fpu_desc", "=", "&", "all_fpus", "[", "opts", "->", "x_arm_fpu_index", "]", ";", "if", "(", "TARGET_IWMMXT", "&&", "TARGET_VFP", "&&", "ARM_FPU_FSET_HAS", "(", "fpu_desc", "->", "features", ",", "FPU_FL_NEON", ")", ")", "error", "(", "\"iWMMXt and NEON are incompatible\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "!", "ARM_FSET_HAS_CPU1", "(", "insn_flags", ",", "FL_NOTM", ")", ")", "error", "(", "\"target CPU does not support ARM mode\"", ")", ";", "if", "(", "(", "TARGET_TPCS_FRAME", "||", "TARGET_TPCS_LEAF_FRAME", ")", "&&", "TARGET_ARM_P", "(", "flags", ")", ")", "warning", "(", "0", ",", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "warning", "(", "0", ",", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "write_symbols", "!=", "NO_DEBUG", "&&", "!", "TARGET_APCS_FRAME", "&&", "(", "TARGET_DEFAULT", "&", "MASK_APCS_FRAME", ")", ")", "warning", "(", "0", ",", "\"-g with -mno-apcs-frame may not give sensible debugging\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_IWMMXT", ")", "error", "(", "\"iWMMXt unsupported under Thumb mode\"", ")", ";", "if", "(", "TARGET_HARD_TP", "&&", "TARGET_THUMB1_P", "(", "flags", ")", ")", "error", "(", "\"can not use -mtp=cp15 with 16-bit Thumb\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_VXWORKS_RTP", "&&", "flag_pic", ")", "{", "error", "(", "\"RTP PIC is incompatible with Thumb\"", ")", ";", "flag_pic", "=", "0", ";", "}", "if", "(", "target_slow_flash_data", "&&", "(", "(", "!", "(", "arm_arch7", "&&", "!", "arm_arch_notm", ")", "&&", "!", "arm_arch7em", ")", "||", "(", "TARGET_THUMB1_P", "(", "flags", ")", "||", "flag_pic", "||", "TARGET_NEON", ")", ")", ")", "error", "(", "\"-mslow-flash-data only supports non-pic code on armv7-m targets\"", ")", ";", "}", ""], "natrual_language": ["Check", "any", "incompatible", "options", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "\"iWMMXt and NEON are incompatible\"", "\"target CPU does not support ARM mode\"", "0", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", "0", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", "0", "\"-g with -mno-apcs-frame may not give sensible debugging\"", "\"iWMMXt unsupported under Thumb mode\"", "\"can not use -mtp=cp15 with 16-bit Thumb\"", "\"RTP PIC is incompatible with Thumb\"", "0", "\"-mslow-flash-data only supports non-pic code on armv7-m targets\""], "File": "arm5", "Func": "arm_option_check_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44770, "Length": 220}
{"ground_truth": ["", "static", "void", "arm_option_override_internal", "(", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "arm_override_options_after_change_1", "(", "opts", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "ARM_FSET_HAS_CPU1", "(", "insn_flags", ",", "FL_THUMB", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "!", "(", "ARM_FSET_HAS_CPU1", "(", "insn_flags", ",", "FL_THUMB", ")", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support THUMB instructions\"", ")", ";", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "}", "if", "(", "TARGET_APCS_FRAME", "&&", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_APCS_FRAME", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "opts", "->", "x_target_flags", "|=", "MASK_INTERWORK", ";", "cl_optimization", "*", "to", "=", "TREE_OPTIMIZATION", "(", "init_optimize", ")", ";", "if", "(", "!", "opts_set", "->", "x_arm_restrict_it", ")", "opts", "->", "x_arm_restrict_it", "=", "arm_arch8", ";", "if", "(", "!", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_arm_restrict_it", "=", "0", ";", "if", "(", "!", "opts_set", "->", "x_unaligned_access", ")", "{", "opts", "->", "x_unaligned_access", "=", "(", "TARGET_32BIT_P", "(", "opts", "->", "x_target_flags", ")", "&&", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ";", "}", "else", "if", "(", "opts", "->", "x_unaligned_access", "==", "1", "&&", "!", "(", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support unaligned accesses\"", ")", ";", "opts", "->", "x_unaligned_access", "=", "0", ";", "}", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_schedule_insns", "=", "0", ";", "else", "opts", "->", "x_flag_schedule_insns", "=", "to", "->", "x_flag_schedule_insns", ";", "if", "(", "optimize_function_for_size_p", "(", "cfun", ")", "&&", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_shrink_wrap", "=", "false", ";", "else", "opts", "->", "x_flag_shrink_wrap", "=", "to", "->", "x_flag_shrink_wrap", ";", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_ipa_ra", "=", "0", ";", "else", "opts", "->", "x_flag_ipa_ra", "=", "to", "->", "x_flag_ipa_ra", ";", "opts", "->", "x_inline_asm_unified", "=", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ";", "SUBTARGET_OVERRIDE_INTERNAL_OPTIONS", ";", "}", ""], "natrual_language": ["Reset", "options", "between", "modes", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "0", "\"target CPU does not support THUMB instructions\"", "0", "1", "0", "\"target CPU does not support unaligned accesses\"", "0", "0", "0"], "File": "arm5", "Func": "arm_option_override_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44771, "Length": 307}
{"ground_truth": ["", "static", "void", "arm_option_params_internal", "(", "void", ")", "{", "if", "(", "TARGET_THUMB1", ")", "{", "targetm", ".", "min_anchor_offset", "=", "0", ";", "targetm", ".", "max_anchor_offset", "=", "127", ";", "}", "else", "if", "(", "TARGET_THUMB2", ")", "{", "targetm", ".", "min_anchor_offset", "=", "-", "248", ";", "targetm", ".", "max_anchor_offset", "=", "4095", ";", "}", "else", "{", "targetm", ".", "min_anchor_offset", "=", "TARGET_MIN_ANCHOR_OFFSET", ";", "targetm", ".", "max_anchor_offset", "=", "TARGET_MAX_ANCHOR_OFFSET", ";", "}", "if", "(", "optimize_size", ")", "{", "max_insns_skipped", "=", "6", ";", "if", "(", "TARGET_THUMB2", ")", "max_insns_skipped", "=", "arm_restrict_it", "?", "1", ":", "4", ";", "}", "else", "max_insns_skipped", "=", "(", "TARGET_THUMB2", "&&", "arm_restrict_it", ")", "?", "1", ":", "current_tune", "->", "max_insns_skipped", ";", "}", ""], "natrual_language": ["Recompute", "the", "global", "settings", "depending", "on", "target", "attribute", "options", "."], "TS_V_token": ["arm", "0", "127", "248", "4095", "6", "1", "4", "1"], "File": "arm5", "Func": "arm_option_params_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44772, "Length": 98}
{"ground_truth": ["", "static", "void", "arm_option_print", "(", "FILE", "*", "file", ",", "int", "indent", ",", "struct", "cl_target_option", "*", "ptr", ")", "{", "int", "flags", "=", "ptr", "->", "x_target_flags", ";", "const", "struct", "arm_fpu_desc", "*", "fpu_desc", "=", "&", "all_fpus", "[", "ptr", "->", "x_arm_fpu_index", "]", ";", "fprintf", "(", "file", ",", "\"%*sselected arch %s\\n\"", ",", "indent", ",", "\"\"", ",", "TARGET_THUMB2_P", "(", "flags", ")", "?", "\"thumb2\"", ":", "TARGET_THUMB_P", "(", "flags", ")", "?", "\"thumb1\"", ":", "\"arm\"", ")", ";", "fprintf", "(", "file", ",", "\"%*sselected fpu %s\\n\"", ",", "indent", ",", "\"\"", ",", "fpu_desc", "->", "name", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_OPTION_PRINT", "."], "TS_V_token": ["arm", "\"%*sselected arch %s\\n\"", "\"\"", "\"thumb2\"", "\"thumb1\"", "\"arm\"", "\"%*sselected fpu %s\\n\"", "\"\""], "File": "arm5", "Func": "arm_option_print", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44773, "Length": 81}
{"ground_truth": ["", "void", "arm_output_multireg_pop", "(", "rtx", "*", "operands", ",", "bool", "return_pc", ",", "rtx", "cond", ",", "bool", "reverse", ",", "bool", "update", ")", "{", "int", "i", ";", "char", "pattern", "[", "100", "]", ";", "int", "offset", ";", "const", "char", "*", "conditional", ";", "int", "num_saves", "=", "XVECLEN", "(", "operands", "[", "0", "]", ",", "0", ")", ";", "unsigned", "int", "regno", ";", "unsigned", "int", "regno_base", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "offset", "=", "0", ";", "offset", "+=", "update", "?", "1", ":", "0", ";", "offset", "+=", "return_pc", "?", "1", ":", "0", ";", "for", "(", "i", "=", "offset", ";", "i", "<", "num_saves", ";", "i", "++", ")", "{", "regno", "=", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "i", ")", ",", "0", ")", ")", ";", "gcc_assert", "(", "(", "regno", "!=", "SP_REGNUM", ")", "||", "(", "regno_base", "==", "SP_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "regno_base", ")", "gcc_assert", "(", "!", "update", ")", ";", "}", "conditional", "=", "reverse", "?", "\"%?%D0\"", ":", "\"%?%d0\"", ";", "if", "(", "(", "regno_base", "==", "SP_REGNUM", ")", "&&", "update", ")", "{", "sprintf", "(", "pattern", ",", "\"pop%s\\t{\"", ",", "conditional", ")", ";", "}", "else", "{", "if", "(", "regno_base", "==", "SP_REGNUM", ")", "sprintf", "(", "pattern", ",", "\"ldmfd%s\"", ",", "conditional", ")", ";", "if", "(", "update", ")", "sprintf", "(", "pattern", ",", "\"ldmia%s\\t\"", ",", "conditional", ")", ";", "else", "sprintf", "(", "pattern", ",", "\"ldm%s\\t\"", ",", "conditional", ")", ";", "strcat", "(", "pattern", ",", "reg_names", "[", "regno_base", "]", ")", ";", "if", "(", "update", ")", "strcat", "(", "pattern", ",", "\"!, {\"", ")", ";", "else", "strcat", "(", "pattern", ",", "\", {\"", ")", ";", "}", "strcat", "(", "pattern", ",", "reg_names", "[", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "offset", ")", ",", "0", ")", ")", "]", ")", ";", "for", "(", "i", "=", "offset", "+", "1", ";", "i", "<", "num_saves", ";", "i", "++", ")", "{", "strcat", "(", "pattern", ",", "\", \"", ")", ";", "strcat", "(", "pattern", ",", "reg_names", "[", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "i", ")", ",", "0", ")", ")", "]", ")", ";", "}", "strcat", "(", "pattern", ",", "\"}\"", ")", ";", "if", "(", "IS_INTERRUPT", "(", "arm_current_func_type", "(", ")", ")", "&&", "return_pc", ")", "strcat", "(", "pattern", ",", "\"^\"", ")", ";", "output_asm_insn", "(", "pattern", ",", "&", "cond", ")", ";", "}", ""], "natrual_language": ["OPERANDS", "[", "0", "]", "is", "the", "entire", "list", "of", "insns", "that", "constitute", "pop", ",", "OPERANDS", "[", "1", "]", "is", "the", "base", "register", ",", "RETURN_PC", "is", "true", "iff", "return", "insn", "is", "in", "the", "list", ",", "UPDATE", "is", "true", "iff", "the", "list", "contains", "explicit", "update", "of", "base", "register", "."], "TS_V_token": ["arm", "100", "0", "0", "1", "0", "1", "0", "1", "0", "0", "0", "0", "\"%?%D0\"", "\"%?%d0\"", "\"pop%s\\t{\"", "\"ldmfd%s\"", "\"ldmia%s\\t\"", "\"ldm%s\\t\"", "\"!, {\"", "\", {\"", "0", "0", "0", "1", "\", \"", "0", "0", "0", "\"}\"", "\"^\""], "File": "arm5", "Func": "arm_output_multireg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44774, "Length": 363}
{"ground_truth": ["", "static", "void", "arm_override_options_after_change", "(", "void", ")", "{", "arm_override_options_after_change_1", "(", "&", "global_options", ")", ";", "}", ""], "natrual_language": ["Implement", "targetm.override_options_after_change", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "arm_override_options_after_change", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44775, "Length": 14}
{"ground_truth": ["", "void", "arm_print_tune_info", "(", "void", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t@.tune parameters\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@constant_limit:\\t%d\\n\"", ",", "current_tune", "->", "constant_limit", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@max_insns_skipped:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_skipped", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefetch.num_slots:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "num_slots", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefetch.l1_cache_size:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "l1_cache_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefetch.l1_cache_line_size:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "l1_cache_line_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefer_constant_pool:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_constant_pool", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@branch_cost:\\t(s:speed, p:predictable)\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\ts&p\\tcost\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t00\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t01\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t10\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\\t\\t11\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefer_ldrd_strd:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_ldrd_strd", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@logical_op_non_short_circuit:\\t[%d,%d]\\n\"", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit_thumb", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit_arm", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@prefer_neon_for_64bits:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_neon_for_64bits", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@disparage_flag_setting_t16_encodings:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "disparage_flag_setting_t16_encodings", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@string_ops_prefer_neon:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "string_ops_prefer_neon", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@max_insns_inline_memset:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_inline_memset", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@fusible_ops:\\t%u\\n\"", ",", "current_tune", "->", "fusible_ops", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t@sched_autopref:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "sched_autopref", ")", ";", "}", ""], "natrual_language": ["This", "function", "is", "used", "to", "print", "CPU", "tuning", "information", "as", "comment", "in", "assembler", "file", ".", "Pointers", "are", "not", "printed", "for", "now", "."], "TS_V_token": ["arm", "\"\\t@.tune parameters\\n\"", "\"\\t\\t@constant_limit:\\t%d\\n\"", "\"\\t\\t@max_insns_skipped:\\t%d\\n\"", "\"\\t\\t@prefetch.num_slots:\\t%d\\n\"", "\"\\t\\t@prefetch.l1_cache_size:\\t%d\\n\"", "\"\\t\\t@prefetch.l1_cache_line_size:\\t%d\\n\"", "\"\\t\\t@prefer_constant_pool:\\t%d\\n\"", "\"\\t\\t@branch_cost:\\t(s:speed, p:predictable)\\n\"", "\"\\t\\t\\t\\ts&p\\tcost\\n\"", "\"\\t\\t\\t\\t00\\t%d\\n\"", "\"\\t\\t\\t\\t01\\t%d\\n\"", "\"\\t\\t\\t\\t10\\t%d\\n\"", "\"\\t\\t\\t\\t11\\t%d\\n\"", "\"\\t\\t@prefer_ldrd_strd:\\t%d\\n\"", "\"\\t\\t@logical_op_non_short_circuit:\\t[%d,%d]\\n\"", "\"\\t\\t@prefer_neon_for_64bits:\\t%d\\n\"", "\"\\t\\t@disparage_flag_setting_t16_encodings:\\t%d\\n\"", "\"\\t\\t@string_ops_prefer_neon:\\t%d\\n\"", "\"\\t\\t@max_insns_inline_memset:\\t%d\\n\"", "\"\\t\\t@fusible_ops:\\t%u\\n\"", "\"\\t\\t@sched_autopref:\\t%d\\n\""], "File": "arm5", "Func": "arm_print_tune_info", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44776, "Length": 280}
{"ground_truth": ["", "static", "void", "arm_relayout_function", "(", "tree", "fndecl", ")", "{", "if", "(", "DECL_USER_ALIGN", "(", "fndecl", ")", ")", "return", ";", "tree", "callee_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "fndecl", ")", ";", "if", "(", "!", "callee_tree", ")", "callee_tree", "=", "target_option_default_node", ";", "DECL_ALIGN", "(", "fndecl", ")", "=", "FUNCTION_BOUNDARY_P", "(", "TREE_TARGET_OPTION", "(", "callee_tree", ")", "->", "x_target_flags", ")", ";", "}", ""], "natrual_language": ["Hook", "to", "fix", "function", "'s", "alignment", "affected", "by", "target", "attribute", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "arm_relayout_function", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44777, "Length": 50}
{"ground_truth": ["", "static", "bool", "arm_rtx_costs", "(", "rtx", "x", ",", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "int", "outer_code", ",", "int", "opno", "ATTRIBUTE_UNUSED", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "bool", "result", ";", "int", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "TARGET_OLD_RTX_COSTS", "||", "(", "!", "current_tune", "->", "insn_extra_cost", "&&", "!", "TARGET_NEW_GENERIC_COSTS", ")", ")", "{", "if", "(", "!", "speed", ")", "result", "=", "arm_size_rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "total", ")", ";", "else", "result", "=", "current_tune", "->", "rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "total", ",", "speed", ")", ";", "}", "else", "{", "if", "(", "current_tune", "->", "insn_extra_cost", ")", "result", "=", "arm_new_rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "current_tune", "->", "insn_extra_cost", ",", "total", ",", "speed", ")", ";", "else", "result", "=", "arm_new_rtx_costs", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "&", "generic_extra_costs", ",", "total", ",", "speed", ")", ";", "}", "if", "(", "dump_file", "&&", "(", "dump_flags", "&", "TDF_DETAILS", ")", ")", "{", "print_rtl_single", "(", "dump_file", ",", "x", ")", ";", "fprintf", "(", "dump_file", ",", "\"\\n%s cost: %d (%s)\\n\"", ",", "speed", "?", "\"Hot\"", ":", "\"Cold\"", ",", "*", "total", ",", "result", "?", "\"final\"", ":", "\"partial\"", ")", ";", "}", "return", "result", ";", "}", ""], "natrual_language": ["RTX", "costs", "when", "optimizing", "for", "size", "."], "TS_V_token": ["arm", "\"\\n%s cost: %d (%s)\\n\"", "\"Hot\"", "\"Cold\"", "\"final\"", "\"partial\""], "File": "arm5", "Func": "arm_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44778, "Length": 213}
{"ground_truth": ["", "static", "bool", "arm_slowmul_rtx_costs", "(", "rtx", "x", ",", "enum", "rtx_code", "code", ",", "enum", "rtx_code", "outer_code", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "*", "total", "=", "thumb1_rtx_costs", "(", "x", ",", "code", ",", "outer_code", ")", ";", "return", "true", ";", "}", "switch", "(", "code", ")", "{", "case", "MULT", ":", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "mode", "==", "DImode", ")", "{", "*", "total", "=", "COSTS_N_INSNS", "(", "20", ")", ";", "return", "false", ";", "}", "if", "(", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "{", "unsigned", "HOST_WIDE_INT", "i", "=", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ";", "int", "cost", ",", "const_ok", "=", "const_ok_for_arm", "(", "i", ")", ";", "int", "j", ",", "booth_unit_size", ";", "cost", "=", "const_ok", "?", "4", ":", "8", ";", "booth_unit_size", "=", "2", ";", "for", "(", "j", "=", "0", ";", "i", "&&", "j", "<", "32", ";", "j", "+=", "booth_unit_size", ")", "{", "i", ">>=", "booth_unit_size", ";", "cost", "++", ";", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "cost", ")", ";", "*", "total", "+=", "rtx_cost", "(", "XEXP", "(", "x", ",", "0", ")", ",", "mode", ",", "code", ",", "0", ",", "speed", ")", ";", "return", "true", ";", "}", "*", "total", "=", "COSTS_N_INSNS", "(", "20", ")", ";", "return", "false", ";", "default", ":", "return", "arm_rtx_costs_1", "(", "x", ",", "outer_code", ",", "total", ",", "speed", ")", ";", ";", "}", "}", ""], "natrual_language": ["RTX", "costs", "for", "cores", "with", "a", "slow", "MUL", "implementation", ".", "Thumb-2", "is", "not", "supported", "on", "any", "``", "slowmul", "''", "cores", ",", "so", "it", "can", "be", "ignored", "."], "TS_V_token": ["arm", "20", "1", "1", "0xffffffff", "4", "8", "2", "0", "32", "0", "0", "20"], "File": "arm5", "Func": "arm_slowmul_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44779, "Length": 234}
{"ground_truth": ["", "void", "arm_split_atomic_op", "(", "enum", "rtx_code", "code", ",", "rtx", "old_out", ",", "rtx", "new_out", ",", "rtx", "mem", ",", "rtx", "value", ",", "rtx", "model_rtx", ",", "rtx", "cond", ")", "{", "enum", "memmodel", "model", "=", "memmodel_from_int", "(", "INTVAL", "(", "model_rtx", ")", ")", ";", "machine_mode", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "machine_mode", "wmode", "=", "(", "mode", "==", "DImode", "?", "DImode", ":", "SImode", ")", ";", "rtx_code_label", "*", "label", ";", "rtx", "x", ";", "bool", "is_armv8_sync", "=", "arm_arch8", "&&", "is_mm_sync", "(", "model", ")", ";", "bool", "use_acquire", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "is_mm_relaxed", "(", "model", ")", "||", "is_mm_consume", "(", "model", ")", "||", "is_mm_release", "(", "model", ")", ")", ";", "bool", "use_release", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "is_mm_relaxed", "(", "model", ")", "||", "is_mm_consume", "(", "model", ")", "||", "is_mm_acquire", "(", "model", ")", ")", ";", "if", "(", "is_armv8_sync", ")", "use_acquire", "=", "false", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_pre_atomic_barrier", "(", "model", ")", ";", "label", "=", "gen_label_rtx", "(", ")", ";", "emit_label", "(", "label", ")", ";", "if", "(", "new_out", ")", "new_out", "=", "gen_lowpart", "(", "wmode", ",", "new_out", ")", ";", "if", "(", "old_out", ")", "old_out", "=", "gen_lowpart", "(", "wmode", ",", "old_out", ")", ";", "else", "old_out", "=", "new_out", ";", "value", "=", "simplify_gen_subreg", "(", "wmode", ",", "value", ",", "mode", ",", "0", ")", ";", "arm_emit_load_exclusive", "(", "mode", ",", "old_out", ",", "mem", ",", "use_acquire", ")", ";", "switch", "(", "code", ")", "{", "case", "SET", ":", "new_out", "=", "value", ";", "break", ";", "case", "NOT", ":", "x", "=", "gen_rtx_AND", "(", "wmode", ",", "old_out", ",", "value", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "new_out", ",", "x", ")", ")", ";", "x", "=", "gen_rtx_NOT", "(", "wmode", ",", "new_out", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "new_out", ",", "x", ")", ")", ";", "break", ";", "case", "MINUS", ":", "if", "(", "CONST_INT_P", "(", "value", ")", ")", "{", "value", "=", "GEN_INT", "(", "-", "INTVAL", "(", "value", ")", ")", ";", "code", "=", "PLUS", ";", "}", "case", "PLUS", ":", "if", "(", "mode", "==", "DImode", ")", "{", "emit_move_insn", "(", "new_out", ",", "old_out", ")", ";", "if", "(", "code", "==", "PLUS", ")", "x", "=", "gen_adddi3", "(", "new_out", ",", "new_out", ",", "value", ")", ";", "else", "x", "=", "gen_subdi3", "(", "new_out", ",", "new_out", ",", "value", ")", ";", "emit_insn", "(", "x", ")", ";", "break", ";", "}", "default", ":", "x", "=", "gen_rtx_fmt_ee", "(", "code", ",", "wmode", ",", "old_out", ",", "value", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "new_out", ",", "x", ")", ")", ";", "break", ";", "}", "arm_emit_store_exclusive", "(", "mode", ",", "cond", ",", "mem", ",", "gen_lowpart", "(", "mode", ",", "new_out", ")", ",", "use_release", ")", ";", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_cbranchsi4", "(", "x", ",", "cond", ",", "const0_rtx", ",", "label", ")", ")", ";", "if", "(", "is_armv8_sync", "||", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_post_atomic_barrier", "(", "model", ")", ";", "}", ""], "natrual_language": ["Split", "an", "atomic", "operation", "pattern", ".", "Operation", "is", "given", "by", "CODE", "and", "is", "one", "of", "PLUS", ",", "MINUS", ",", "IOR", ",", "XOR", ",", "SET", "(", "for", "an", "exchange", "operation", ")", "or", "NOT", "(", "for", "a", "nand", "operation", ")", ".", "Operation", "is", "performed", "on", "the", "content", "at", "MEM", "and", "on", "VALUE", "following", "the", "memory", "model", "MODEL_RTX", ".", "The", "content", "at", "MEM", "before", "and", "after", "the", "operation", "is", "returned", "in", "OLD_OUT", "and", "NEW_OUT", "respectively", "while", "the", "success", "of", "the", "operation", "is", "returned", "in", "COND", ".", "Using", "a", "scratch", "register", "or", "an", "operand", "register", "for", "these", "determines", "what", "result", "is", "returned", "for", "that", "pattern", "."], "TS_V_token": ["arm", "0"], "File": "arm5", "Func": "arm_split_atomic_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44780, "Length": 438}
{"ground_truth": ["", "void", "arm_split_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "scratch", ";", "machine_mode", "mode", ";", "enum", "memmodel", "mod_s", ",", "mod_f", ";", "bool", "is_weak", ";", "rtx_code_label", "*", "label1", ",", "*", "label2", ";", "rtx", "x", ",", "cond", ";", "rval", "=", "operands", "[", "0", "]", ";", "mem", "=", "operands", "[", "1", "]", ";", "oldval", "=", "operands", "[", "2", "]", ";", "newval", "=", "operands", "[", "3", "]", ";", "is_weak", "=", "(", "operands", "[", "4", "]", "!=", "const0_rtx", ")", ";", "mod_s", "=", "memmodel_from_int", "(", "INTVAL", "(", "operands", "[", "5", "]", ")", ")", ";", "mod_f", "=", "memmodel_from_int", "(", "INTVAL", "(", "operands", "[", "6", "]", ")", ")", ";", "scratch", "=", "operands", "[", "7", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "bool", "is_armv8_sync", "=", "arm_arch8", "&&", "is_mm_sync", "(", "mod_s", ")", ";", "bool", "use_acquire", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "is_mm_relaxed", "(", "mod_s", ")", "||", "is_mm_consume", "(", "mod_s", ")", "||", "is_mm_release", "(", "mod_s", ")", ")", ";", "bool", "use_release", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "is_mm_relaxed", "(", "mod_s", ")", "||", "is_mm_consume", "(", "mod_s", ")", "||", "is_mm_acquire", "(", "mod_s", ")", ")", ";", "if", "(", "is_armv8_sync", ")", "use_acquire", "=", "false", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_pre_atomic_barrier", "(", "mod_s", ")", ";", "label1", "=", "NULL", ";", "if", "(", "!", "is_weak", ")", "{", "label1", "=", "gen_label_rtx", "(", ")", ";", "emit_label", "(", "label1", ")", ";", "}", "label2", "=", "gen_label_rtx", "(", ")", ";", "arm_emit_load_exclusive", "(", "mode", ",", "rval", ",", "mem", ",", "use_acquire", ")", ";", "cond", "=", "arm_gen_compare_reg", "(", "NE", ",", "rval", ",", "oldval", ",", "scratch", ")", ";", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "x", "=", "gen_rtx_IF_THEN_ELSE", "(", "VOIDmode", ",", "x", ",", "gen_rtx_LABEL_REF", "(", "Pmode", ",", "label2", ")", ",", "pc_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_rtx_SET", "(", "pc_rtx", ",", "x", ")", ")", ";", "arm_emit_store_exclusive", "(", "mode", ",", "scratch", ",", "mem", ",", "newval", ",", "use_release", ")", ";", "cond", "=", "gen_rtx_REG", "(", "CCmode", ",", "CC_REGNUM", ")", ";", "x", "=", "gen_rtx_COMPARE", "(", "CCmode", ",", "scratch", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "cond", ",", "x", ")", ")", ";", "if", "(", "!", "is_weak", ")", "{", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "x", "=", "gen_rtx_IF_THEN_ELSE", "(", "VOIDmode", ",", "x", ",", "gen_rtx_LABEL_REF", "(", "Pmode", ",", "label1", ")", ",", "pc_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_rtx_SET", "(", "pc_rtx", ",", "x", ")", ")", ";", "}", "if", "(", "!", "is_mm_relaxed", "(", "mod_f", ")", ")", "emit_label", "(", "label2", ")", ";", "if", "(", "is_armv8_sync", "||", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_post_atomic_barrier", "(", "mod_s", ")", ";", "if", "(", "is_mm_relaxed", "(", "mod_f", ")", ")", "emit_label", "(", "label2", ")", ";", "}", ""], "natrual_language": ["Split", "a", "compare", "and", "swap", "pattern", ".", "It", "is", "IMPLEMENTATION", "DEFINED", "whether", "another", "memory", "store", "between", "the", "load-exclusive", "and", "store-exclusive", "can", "reset", "the", "monitor", "from", "Exclusive", "to", "Open", "state", ".", "This", "means", "we", "must", "wait", "until", "after", "reload", "to", "split", "the", "pattern", ",", "lest", "we", "get", "a", "register", "spill", "in", "the", "middle", "of", "the", "atomic", "sequence", "."], "TS_V_token": ["arm", "0", "1", "2", "3", "4", "5", "6", "7"], "File": "arm5", "Func": "arm_split_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44781, "Length": 423}
{"ground_truth": ["", "bool", "arm_valid_symbolic_address_p", "(", "rtx", "addr", ")", "{", "rtx", "xop0", ",", "xop1", "=", "NULL_RTX", ";", "rtx", "tmp", "=", "addr", ";", "if", "(", "GET_CODE", "(", "tmp", ")", "==", "SYMBOL_REF", "||", "GET_CODE", "(", "tmp", ")", "==", "LABEL_REF", ")", "return", "true", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "CONST", ")", "tmp", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "tmp", ")", "==", "PLUS", ")", "{", "xop0", "=", "XEXP", "(", "tmp", ",", "0", ")", ";", "xop1", "=", "XEXP", "(", "tmp", ",", "1", ")", ";", "if", "(", "GET_CODE", "(", "xop0", ")", "==", "SYMBOL_REF", "&&", "CONST_INT_P", "(", "xop1", ")", ")", "return", "IN_RANGE", "(", "INTVAL", "(", "xop1", ")", ",", "-", "0x8000", ",", "0x7fff", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "the", "pattern", "is", "a", "valid", "symbolic", "address", ",", "which", "is", "either", "a", "symbol_ref", "or", "(", "symbol_ref", "+", "addend", ")", ".", "According", "to", "the", "ARM", "ELF", "ABI", ",", "the", "initial", "addend", "of", "REL-type", "relocations", "processing", "MOVW", "and", "MOVT", "instructions", "is", "formed", "by", "interpreting", "the", "16-bit", "literal", "field", "of", "the", "instruction", "as", "a", "16-bit", "signed", "value", "in", "the", "range", "-32768", "<", "=", "A", "<", "32768", ".", "In", "Thumb-1", "mode", ",", "we", "use", "upper/lower", "relocations", "which", "have", "an", "8-bit", "unsigned", "range", "of", "0", "<", "=", "A", "<", "256", "as", "described", "in", "the", "AAELF32", "relocation", "handling", "documentation", ":", "REL-type", "relocations", "are", "encoded", "as", "unsigned", "in", "this", "case", "."], "TS_V_token": ["arm", "0", "0", "1", "0x8000", "0x7fff"], "File": "arm5", "Func": "arm_valid_symbolic_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44782, "Length": 117}
{"ground_truth": ["", "static", "bool", "arm_valid_target_attribute_p", "(", "tree", "fndecl", ",", "tree", "ARG_UNUSED", "(", "name", ")", ",", "tree", "args", ",", "int", "ARG_UNUSED", "(", "flags", ")", ")", "{", "bool", "ret", "=", "true", ";", "struct", "gcc_options", "func_options", ";", "tree", "cur_tree", ",", "new_optimize", ";", "gcc_assert", "(", "(", "fndecl", "!=", "NULL_TREE", ")", "&&", "(", "args", "!=", "NULL_TREE", ")", ")", ";", "tree", "func_optimize", "=", "DECL_FUNCTION_SPECIFIC_OPTIMIZATION", "(", "fndecl", ")", ";", "if", "(", "!", "func_optimize", ")", "func_optimize", "=", "optimization_default_node", ";", "memset", "(", "&", "func_options", ",", "0", ",", "sizeof", "(", "func_options", ")", ")", ";", "init_options_struct", "(", "&", "func_options", ",", "NULL", ")", ";", "lang_hooks", ".", "init_options_struct", "(", "&", "func_options", ")", ";", "cl_optimization_restore", "(", "&", "func_options", ",", "TREE_OPTIMIZATION", "(", "func_optimize", ")", ")", ";", "cl_target_option_restore", "(", "&", "func_options", ",", "TREE_TARGET_OPTION", "(", "target_option_default_node", ")", ")", ";", "cur_tree", "=", "arm_valid_target_attribute_tree", "(", "args", ",", "&", "func_options", ",", "&", "global_options_set", ")", ";", "if", "(", "cur_tree", "==", "NULL_TREE", ")", "ret", "=", "false", ";", "new_optimize", "=", "build_optimization_node", "(", "&", "func_options", ")", ";", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "fndecl", ")", "=", "cur_tree", ";", "DECL_FUNCTION_SPECIFIC_OPTIMIZATION", "(", "fndecl", ")", "=", "new_optimize", ";", "finalize_options_struct", "(", "&", "func_options", ")", ";", "return", "ret", ";", "}", ""], "natrual_language": ["Hook", "to", "validate", "attribute", "(", "(", "target", "(", "``", "string", "''", ")", ")", ")", "."], "TS_V_token": ["arm", "0"], "File": "arm5", "Func": "arm_valid_target_attribute_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44783, "Length": 175}
{"ground_truth": ["", "static", "bool", "arm_valid_target_attribute_rec", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ")", "{", "if", "(", "TREE_CODE", "(", "args", ")", "==", "TREE_LIST", ")", "{", "bool", "ret", "=", "true", ";", "for", "(", ";", "args", ";", "args", "=", "TREE_CHAIN", "(", "args", ")", ")", "if", "(", "TREE_VALUE", "(", "args", ")", "&&", "!", "arm_valid_target_attribute_rec", "(", "TREE_VALUE", "(", "args", ")", ",", "opts", ")", ")", "ret", "=", "false", ";", "return", "ret", ";", "}", "else", "if", "(", "TREE_CODE", "(", "args", ")", "!=", "STRING_CST", ")", "{", "error", "(", "\"attribute % argument not a string\"", ")", ";", "return", "false", ";", "}", "char", "*", "argstr", "=", "ASTRDUP", "(", "TREE_STRING_POINTER", "(", "args", ")", ")", ";", "char", "*", "q", ";", "while", "(", "(", "q", "=", "strtok", "(", "argstr", ",", "\",\"", ")", ")", "!=", "NULL", ")", "{", "while", "(", "ISSPACE", "(", "*", "q", ")", ")", "++", "q", ";", "argstr", "=", "NULL", ";", "if", "(", "!", "strncmp", "(", "q", ",", "\"thumb\"", ",", "5", ")", ")", "opts", "->", "x_target_flags", "|=", "MASK_THUMB", ";", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"arm\"", ",", "3", ")", ")", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"fpu=\"", ",", "4", ")", ")", "{", "if", "(", "!", "opt_enum_arg_to_value", "(", "OPT_mfpu_", ",", "q", "+", "4", ",", "&", "opts", "->", "x_arm_fpu_index", ",", "CL_TARGET", ")", ")", "{", "error", "(", "\"invalid fpu for attribute(target(\\\"%s\\\"))\"", ",", "q", ")", ";", "return", "false", ";", "}", "}", "else", "{", "error", "(", "\"attribute(target(\\\"%s\\\")) is unknown\"", ",", "q", ")", ";", "return", "false", ";", "}", "arm_option_check_internal", "(", "opts", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Inner", "function", "to", "process", "the", "attribute", "(", "(", "target", "(", "...", ")", ")", ")", ",", "take", "an", "argument", "and", "set", "the", "current", "options", "from", "the", "argument", ".", "If", "we", "have", "a", "list", ",", "recursively", "go", "over", "the", "list", "."], "TS_V_token": ["arm", "\"attribute % argument not a string\"", "\",\"", "\"thumb\"", "5", "\"arm\"", "3", "\"fpu=\"", "4", "4", "\"invalid fpu for attribute(target(\\\"%s\\\"))\"", "\"attribute(target(\\\"%s\\\")) is unknown\""], "File": "arm5", "Func": "arm_valid_target_attribute_rec", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44784, "Length": 240}
{"ground_truth": ["", "tree", "arm_valid_target_attribute_tree", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "if", "(", "!", "arm_valid_target_attribute_rec", "(", "args", ",", "opts", ")", ")", "return", "NULL_TREE", ";", "arm_option_override_internal", "(", "opts", ",", "opts_set", ")", ";", "return", "build_target_option_node", "(", "opts", ")", ";", "}", ""], "natrual_language": ["Return", "a", "TARGET_OPTION_NODE", "tree", "of", "the", "target", "options", "listed", "or", "NULL", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "arm_valid_target_attribute_tree", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44785, "Length": 44}
{"ground_truth": ["", "bool", "arm_vector_mode_supported_p", "(", "machine_mode", "mode", ")", "{", "if", "(", "TARGET_NEON", "&&", "(", "mode", "==", "V2SFmode", "||", "mode", "==", "V4SImode", "||", "mode", "==", "V8HImode", "||", "mode", "==", "V4HFmode", "||", "mode", "==", "V16QImode", "||", "mode", "==", "V4SFmode", "||", "mode", "==", "V2DImode", "||", "mode", "==", "V8HFmode", ")", ")", "return", "true", ";", "if", "(", "(", "TARGET_NEON", "||", "TARGET_IWMMXT", ")", "&&", "(", "(", "mode", "==", "V2SImode", ")", "||", "(", "mode", "==", "V4HImode", ")", "||", "(", "mode", "==", "V8QImode", ")", ")", ")", "return", "true", ";", "if", "(", "TARGET_INT_SIMD", "&&", "(", "mode", "==", "V4UQQmode", "||", "mode", "==", "V4QQmode", "||", "mode", "==", "V2UHQmode", "||", "mode", "==", "V2HQmode", "||", "mode", "==", "V2UHAmode", "||", "mode", "==", "V2HAmode", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "vector_mode_supported_p", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "arm_vector_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44786, "Length": 116}
{"ground_truth": ["", "static", "bool", "cortex_a9_sched_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "rtx", "link", ",", "rtx_insn", "*", "dep", ",", "int", "*", "cost", ")", "{", "switch", "(", "REG_NOTE_KIND", "(", "link", ")", ")", "{", "case", "REG_DEP_ANTI", ":", "*", "cost", "=", "0", ";", "return", "false", ";", "case", "REG_DEP_TRUE", ":", "case", "REG_DEP_OUTPUT", ":", "if", "(", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", ")", "{", "if", "(", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "SET", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "GET_MODE", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ")", ")", "==", "MODE_FLOAT", "||", "GET_MODE_CLASS", "(", "GET_MODE", "(", "SET_SRC", "(", "PATTERN", "(", "insn", ")", ")", ")", ")", "==", "MODE_FLOAT", ")", "{", "enum", "attr_type", "attr_type_insn", "=", "get_attr_type", "(", "insn", ")", ";", "enum", "attr_type", "attr_type_dep", "=", "get_attr_type", "(", "dep", ")", ";", "if", "(", "REG_P", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ")", "&&", "reg_set_p", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ",", "dep", ")", ")", "{", "if", "(", "(", "attr_type_insn", "==", "TYPE_FMACS", "||", "attr_type_insn", "==", "TYPE_FMACD", ")", "&&", "(", "attr_type_dep", "==", "TYPE_FMACS", "||", "attr_type_dep", "==", "TYPE_FMACD", ")", ")", "{", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_OUTPUT", ")", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", "-", "3", ";", "else", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", ";", "return", "false", ";", "}", "else", "{", "if", "(", "REG_NOTE_KIND", "(", "link", ")", "==", "REG_DEP_OUTPUT", ")", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", "+", "1", ";", "else", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", ";", "}", "return", "false", ";", "}", "}", "}", "}", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Adjust", "cost", "hook", "for", "Cortex", "A9", "."], "TS_V_token": ["arm", "0", "0", "0", "3", "1"], "File": "arm5", "Func": "cortex_a9_sched_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44787, "Length": 261}
{"ground_truth": ["", "static", "unsigned", "feature_count", "(", "const", "arm_feature_set", "*", "set", ")", "{", "return", "(", "bit_count", "(", "ARM_FSET_CPU1", "(", "*", "set", ")", ")", "+", "bit_count", "(", "ARM_FSET_CPU2", "(", "*", "set", ")", ")", ")", ";", "}", ""], "natrual_language": ["Return", "the", "number", "of", "features", "in", "feature-set", "SET", "."], "TS_V_token": ["arm"], "File": "arm5", "Func": "feature_count", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44788, "Length": 32}
{"ground_truth": ["", "void", "neon_const_bounds", "(", "rtx", "operand", ",", "HOST_WIDE_INT", "low", ",", "HOST_WIDE_INT", "high", ")", "{", "bounds_check", "(", "operand", ",", "low", ",", "high", ",", "NULL_TREE", ",", "\"constant\"", ")", ";", "}", ""], "natrual_language": ["Bounds-check", "constants", "."], "TS_V_token": ["arm", "\"constant\""], "File": "arm5", "Func": "neon_const_bounds", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44789, "Length": 27}
{"ground_truth": ["", "void", "neon_split_vcombine", "(", "rtx", "operands", "[", "3", "]", ")", "{", "unsigned", "int", "dest", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "unsigned", "int", "src1", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "unsigned", "int", "src2", "=", "REGNO", "(", "operands", "[", "2", "]", ")", ";", "machine_mode", "halfmode", "=", "GET_MODE", "(", "operands", "[", "1", "]", ")", ";", "unsigned", "int", "halfregs", "=", "HARD_REGNO_NREGS", "(", "src1", ",", "halfmode", ")", ";", "rtx", "destlo", ",", "desthi", ";", "if", "(", "src1", "==", "dest", "&&", "src2", "==", "dest", "+", "halfregs", ")", "{", "emit_note", "(", "NOTE_INSN_DELETED", ")", ";", "return", ";", "}", "destlo", "=", "gen_rtx_REG_offset", "(", "operands", "[", "0", "]", ",", "halfmode", ",", "dest", ",", "0", ")", ";", "desthi", "=", "gen_rtx_REG_offset", "(", "operands", "[", "0", "]", ",", "halfmode", ",", "dest", "+", "halfregs", ",", "GET_MODE_SIZE", "(", "halfmode", ")", ")", ";", "if", "(", "src2", "==", "dest", "&&", "src1", "==", "dest", "+", "halfregs", ")", "{", "rtx", "x", "=", "gen_rtx_SET", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "rtx", "y", "=", "gen_rtx_SET", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "emit_insn", "(", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "y", ")", ")", ")", ";", "return", ";", "}", "if", "(", "!", "reg_overlap_mentioned_p", "(", "operands", "[", "2", "]", ",", "destlo", ")", ")", "{", "if", "(", "src1", "!=", "dest", ")", "emit_move_insn", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "if", "(", "src2", "!=", "dest", "+", "halfregs", ")", "emit_move_insn", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "}", "else", "{", "if", "(", "src2", "!=", "dest", "+", "halfregs", ")", "emit_move_insn", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "if", "(", "src1", "!=", "dest", ")", "emit_move_insn", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "}", "}", ""], "natrual_language": ["Split", "operands", "into", "moves", "from", "op", "[", "1", "]", "+", "op", "[", "2", "]", "into", "op", "[", "0", "]", "."], "TS_V_token": ["arm", "3", "0", "1", "2", "1", "0", "0", "0", "1", "2", "2", "2", "1", "2", "2", "1"], "File": "arm5", "Func": "neon_split_vcombine", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44790, "Length": 277}
{"ground_truth": ["", "static", "rtx", "neon_vdup_constant", "(", "rtx", "vals", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "vals", ")", ";", "machine_mode", "inner_mode", "=", "GET_MODE_INNER", "(", "mode", ")", ";", "rtx", "x", ";", "if", "(", "GET_CODE", "(", "vals", ")", "!=", "CONST_VECTOR", "||", "GET_MODE_SIZE", "(", "inner_mode", ")", ">", "4", ")", "return", "NULL_RTX", ";", "if", "(", "!", "const_vec_duplicate_p", "(", "vals", ",", "&", "x", ")", ")", "return", "NULL_RTX", ";", "x", "=", "copy_to_mode_reg", "(", "inner_mode", ",", "x", ")", ";", "return", "gen_rtx_VEC_DUPLICATE", "(", "mode", ",", "x", ")", ";", "}", ""], "natrual_language": ["Return", "a", "non-NULL", "RTX", "iff", "VALS", "is", "a", "vector", "constant", "that", "can", "be", "loaded", "into", "a", "register", "using", "VDUP", ".", "If", "this", "is", "the", "case", ",", "and", "GENERATE", "is", "set", ",", "we", "also", "generate", "instructions", "to", "do", "this", "and", "return", "an", "RTX", "to", "assign", "to", "the", "register", "."], "TS_V_token": ["arm", "4"], "File": "arm5", "Func": "neon_vdup_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44791, "Length": 78}
{"ground_truth": ["", "int", "neon_vector_mem_operand", "(", "rtx", "op", ",", "int", "type", ",", "bool", "strict", ")", "{", "rtx", "ind", ";", "if", "(", "strict", "&&", "!", "(", "reload_in_progress", "||", "reload_completed", ")", "&&", "(", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "arg_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_incoming_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_outgoing_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_dynamic_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_vars_rtx", ",", "op", ")", ")", ")", "return", "FALSE", ";", "if", "(", "!", "MEM_P", "(", "op", ")", ")", "return", "FALSE", ";", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "reload_completed", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "LABEL_REF", "||", "(", "GET_CODE", "(", "ind", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "TRUE", ";", "if", "(", "REG_P", "(", "ind", ")", ")", "return", "arm_address_register_rtx_p", "(", "ind", ",", "0", ")", ";", "if", "(", "(", "type", "!=", "1", "&&", "GET_CODE", "(", "ind", ")", "==", "POST_INC", ")", "||", "(", "type", "==", "0", "&&", "GET_CODE", "(", "ind", ")", "==", "PRE_DEC", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ";", "if", "(", "type", "==", "2", "&&", "GET_CODE", "(", "ind", ")", "==", "POST_MODIFY", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "1", ")", ",", "1", ")", ")", ")", "return", "true", ";", "if", "(", "type", "==", "0", "&&", "GET_CODE", "(", "ind", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "&&", "REG_MODE_OK_FOR_BASE_P", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "VOIDmode", ")", "&&", "CONST_INT_P", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&&", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "<", "(", "VALID_NEON_QREG_MODE", "(", "GET_MODE", "(", "op", ")", ")", "?", "1016", ":", "1024", ")", ")", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&", "3", ")", "==", "0", ")", "return", "TRUE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "memory", "operand", "which", "we", "can", "load", "or", "store", "a", "vector", "to/from", ".", "TYPE", "is", "one", "of", "the", "following", "values", ":", "0", "-", "Vector", "load/stor", "(", "vldr", ")", "1", "-", "Core", "registers", "(", "ldm", ")", "2", "-", "Element/structure", "loads", "(", "vld1", ")"], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "2", "1", "1", "1", "0", "0", "0", "1", "1", "1024", "1", "1016", "1024", "1", "3", "0"], "File": "arm5", "Func": "neon_vector_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44792, "Length": 369}
{"ground_truth": ["", "void", "thumb2_expand_return", "(", "bool", "simple_return", ")", "{", "int", "i", ",", "num_regs", ";", "unsigned", "long", "saved_regs_mask", ";", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "saved_regs_mask", "=", "offsets", "->", "saved_regs_mask", ";", "for", "(", "i", "=", "0", ",", "num_regs", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "if", "(", "!", "simple_return", "&&", "saved_regs_mask", ")", "{", "if", "(", "num_regs", "==", "1", ")", "{", "rtx", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "2", ")", ")", ";", "rtx", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ";", "rtx", "addr", "=", "gen_rtx_MEM", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "SImode", ",", "stack_pointer_rtx", ")", ")", ";", "set_mem_alias_set", "(", "addr", ",", "get_frame_alias_set", "(", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", "=", "gen_rtx_SET", "(", "reg", ",", "addr", ")", ";", "RTX_FRAME_RELATED_P", "(", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", ")", "=", "1", ";", "emit_jump_insn", "(", "par", ")", ";", "}", "else", "{", "saved_regs_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "saved_regs_mask", "|=", "(", "1", "<<", "PC_REGNUM", ")", ";", "arm_emit_multi_reg_pop", "(", "saved_regs_mask", ")", ";", "}", "}", "else", "{", "emit_jump_insn", "(", "simple_return_rtx", ")", ";", "}", "}", ""], "natrual_language": ["Generate", "pattern", "*", "pop_multiple_with_stack_update_and_return", "if", "single", "POP", "instruction", "can", "be", "generated", ".", "LR", "should", "be", "replaced", "by", "PC", ".", "All", "the", "checks", "required", "are", "already", "done", "by", "USE_RETURN_INSN", "(", ")", ".", "Hence", ",", "all", "we", "really", "need", "to", "check", "here", "is", "if", "single", "register", "is", "to", "be", "returned", ",", "or", "multiple", "register", "return", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "2", "0", "0", "0", "1", "0", "1", "1", "1", "1"], "File": "arm5", "Func": "thumb2_expand_return", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44793, "Length": 206}
{"ground_truth": ["", "int", "use_return_insn", "(", "int", "iscond", ",", "rtx", "sibling", ")", "{", "int", "regno", ";", "unsigned", "int", "func_type", ";", "unsigned", "long", "saved_int_regs", ";", "unsigned", "HOST_WIDE_INT", "stack_adjust", ";", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "func_type", "&", "(", "ARM_FT_VOLATILE", "|", "ARM_FT_NAKED", "|", "ARM_FT_STACKALIGN", ")", ")", "return", "0", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", "&&", "(", "frame_pointer_needed", "||", "TARGET_THUMB", ")", ")", "return", "0", ";", "if", "(", "TARGET_LDRD", "&&", "current_tune", "->", "prefer_ldrd_strd", "&&", "!", "optimize_function_for_size_p", "(", "cfun", ")", ")", "return", "0", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "stack_adjust", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "crtl", "->", "args", ".", "pretend_args_size", "||", "cfun", "->", "machine", "->", "uses_anonymous_args", "||", "crtl", "->", "calls_eh_return", "||", "cfun", "->", "calls_alloca", "||", "!", "(", "stack_adjust", "==", "0", "||", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "stack_adjust", "==", "4", ")", ")", "||", "(", "!", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", ")", "&&", "arm_compute_static_chain_stack_bytes", "(", ")", "!=", "0", ")", ")", "return", "0", ";", "saved_int_regs", "=", "offsets", "->", "saved_regs_mask", ";", "if", "(", "stack_adjust", "==", "4", "&&", "!", "arm_arch5", "&&", "TARGET_ARM", ")", "{", "if", "(", "!", "call_used_regs", "[", "3", "]", ")", "return", "0", ";", "if", "(", "arm_size_return_regs", "(", ")", ">=", "(", "4", "*", "UNITS_PER_WORD", ")", ")", "return", "0", ";", "if", "(", "sibling", ")", "{", "gcc_assert", "(", "CALL_P", "(", "sibling", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "sibling", ",", "USE", ",", "3", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&", "0x7", ")", "return", "0", ";", "}", "if", "(", "TARGET_INTERWORK", "&&", "saved_int_regs", "!=", "0", "&&", "!", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "iscond", "&&", "arm_tune_strongarm", ")", "{", "if", "(", "saved_int_regs", "!=", "0", "&&", "saved_int_regs", "!=", "(", "1", "<<", "LR_REGNUM", ")", ")", "return", "0", ";", "if", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&&", "!", "(", "saved_int_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "return", "0", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "TARGET_VFP", ")", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<=", "LAST_VFP_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "'s", "epilogue", "can", "be", "output", "as", "RTL", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "4", "0", "0", "4", "3", "0", "4", "0", "3", "0", "0x7", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "0", "1"], "File": "arm5", "Func": "use_return_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44794, "Length": 394}
{"ground_truth": ["", "static", "int", "vfp3_const_double_index", "(", "rtx", "x", ")", "{", "REAL_VALUE_TYPE", "r", ",", "m", ";", "int", "sign", ",", "exponent", ";", "unsigned", "HOST_WIDE_INT", "mantissa", ",", "mant_hi", ";", "unsigned", "HOST_WIDE_INT", "mask", ";", "int", "point_pos", "=", "2", "*", "HOST_BITS_PER_WIDE_INT", "-", "1", ";", "bool", "fail", ";", "if", "(", "!", "TARGET_VFP3", "||", "!", "CONST_DOUBLE_P", "(", "x", ")", ")", "return", "-", "1", ";", "r", "=", "*", "CONST_DOUBLE_REAL_VALUE", "(", "x", ")", ";", "if", "(", "REAL_VALUE_ISINF", "(", "r", ")", "||", "REAL_VALUE_ISNAN", "(", "r", ")", "||", "REAL_VALUE_MINUS_ZERO", "(", "r", ")", ")", "return", "-", "1", ";", "sign", "=", "REAL_VALUE_NEGATIVE", "(", "r", ")", "?", "1", ":", "0", ";", "r", "=", "real_value_abs", "(", "&", "r", ")", ";", "exponent", "=", "REAL_EXP", "(", "&", "r", ")", ";", "real_ldexp", "(", "&", "m", ",", "&", "r", ",", "point_pos", "-", "exponent", ")", ";", "wide_int", "w", "=", "real_to_integer", "(", "&", "m", ",", "&", "fail", ",", "HOST_BITS_PER_WIDE_INT", "*", "2", ")", ";", "mantissa", "=", "w", ".", "elt", "(", "0", ")", ";", "mant_hi", "=", "w", ".", "elt", "(", "1", ")", ";", "if", "(", "mantissa", "!=", "0", ")", "return", "-", "1", ";", "point_pos", "-=", "HOST_BITS_PER_WIDE_INT", ";", "mantissa", "=", "mant_hi", ";", "mask", "=", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "1", "<<", "(", "point_pos", "-", "5", ")", ")", "-", "1", ";", "if", "(", "(", "mantissa", "&", "mask", ")", "!=", "0", ")", "return", "-", "1", ";", "mantissa", ">>=", "point_pos", "-", "5", ";", "if", "(", "mantissa", "==", "0", ")", "return", "-", "1", ";", "gcc_assert", "(", "mantissa", ">=", "16", "&&", "mantissa", "<=", "31", ")", ";", "exponent", "=", "5", "-", "exponent", ";", "if", "(", "exponent", "<", "0", "||", "exponent", ">", "7", ")", "return", "-", "1", ";", "return", "(", "sign", "<<", "7", ")", "|", "(", "(", "exponent", "^", "3", ")", "<<", "4", ")", "|", "(", "mantissa", "-", "16", ")", ";", "}", ""], "natrual_language": ["Return", "an", "integer", "index", "for", "a", "VFPv3", "immediate", "operand", "X", "suitable", "for", "the", "fconst", "[", "sd", "]", "instruction", ",", "or", "-1", "if", "X", "is", "n't", "suitable", "."], "TS_V_token": ["arm", "2", "1", "1", "1", "1", "0", "2", "0", "1", "0", "1", "1", "5", "1", "0", "1", "5", "0", "1", "16", "31", "5", "0", "7", "1", "7", "3", "4", "16"], "File": "arm5", "Func": "vfp3_const_double_index", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44795, "Length": 279}
{"ground_truth": ["", "static", "bool", "aapcs_vfp_allocate", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "machine_mode", "mode", ",", "const_tree", "type", "ATTRIBUTE_UNUSED", ")", "{", "int", "rmode_size", "=", "MAX", "(", "GET_MODE_SIZE", "(", "pcum", "->", "aapcs_vfp_rmode", ")", ",", "GET_MODE_SIZE", "(", "SFmode", ")", ")", ";", "int", "shift", "=", "rmode_size", "/", "GET_MODE_SIZE", "(", "SFmode", ")", ";", "unsigned", "mask", "=", "(", "1", "<<", "(", "shift", "*", "pcum", "->", "aapcs_vfp_rcount", ")", ")", "-", "1", ";", "int", "regno", ";", "for", "(", "regno", "=", "0", ";", "regno", "<", "NUM_VFP_ARG_REGS", ";", "regno", "+=", "shift", ")", "if", "(", "(", "(", "pcum", "->", "aapcs_vfp_regs_free", ">>", "regno", ")", "&", "mask", ")", "==", "mask", ")", "{", "pcum", "->", "aapcs_vfp_reg_alloc", "=", "mask", "<<", "regno", ";", "if", "(", "mode", "==", "BLKmode", "||", "(", "mode", "==", "TImode", "&&", "!", "TARGET_NEON", ")", "||", "!", "arm_hard_regno_mode_ok", "(", "FIRST_VFP_REGNUM", "+", "regno", ",", "mode", ")", ")", "{", "int", "i", ";", "int", "rcount", "=", "pcum", "->", "aapcs_vfp_rcount", ";", "int", "rshift", "=", "shift", ";", "machine_mode", "rmode", "=", "pcum", "->", "aapcs_vfp_rmode", ";", "rtx", "par", ";", "if", "(", "!", "TARGET_NEON", ")", "{", "if", "(", "rmode", "==", "V2SImode", ")", "rmode", "=", "DImode", ";", "else", "if", "(", "rmode", "==", "V4SImode", ")", "{", "rmode", "=", "DImode", ";", "rcount", "*=", "2", ";", "rshift", "/=", "2", ";", "}", "}", "par", "=", "gen_rtx_PARALLEL", "(", "mode", ",", "rtvec_alloc", "(", "rcount", ")", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "rcount", ";", "i", "++", ")", "{", "rtx", "tmp", "=", "gen_rtx_REG", "(", "rmode", ",", "FIRST_VFP_REGNUM", "+", "regno", "+", "i", "*", "rshift", ")", ";", "tmp", "=", "gen_rtx_EXPR_LIST", "(", "VOIDmode", ",", "tmp", ",", "GEN_INT", "(", "i", "*", "GET_MODE_SIZE", "(", "rmode", ")", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "tmp", ";", "}", "pcum", "->", "aapcs_reg", "=", "par", ";", "}", "else", "pcum", "->", "aapcs_reg", "=", "gen_rtx_REG", "(", "mode", ",", "FIRST_VFP_REGNUM", "+", "regno", ")", ";", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "the", "allocate", "field", "in", "aapcs_cp_arg_layout", ".", "See", "the", "comment", "there", "for", "the", "behaviour", "of", "this", "function", "."], "TS_V_token": ["arm", "1", "1", "0", "2", "2", "0", "0"], "File": "arm6", "Func": "aapcs_vfp_allocate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44796, "Length": 294}
{"ground_truth": ["", "static", "bool", "aarch_macro_fusion_pair_p", "(", "rtx_insn", "*", "prev", ",", "rtx_insn", "*", "curr", ")", "{", "rtx", "prev_set", "=", "single_set", "(", "prev", ")", ";", "rtx", "curr_set", "=", "single_set", "(", "curr", ")", ";", "if", "(", "!", "prev_set", "||", "!", "curr_set", ")", "return", "false", ";", "if", "(", "any_condjump_p", "(", "curr", ")", ")", "return", "false", ";", "if", "(", "!", "arm_macro_fusion_p", "(", ")", ")", "return", "false", ";", "if", "(", "current_tune", "->", "fusible_ops", "&", "tune_params", "::", "FUSE_AES_AESMC", "&&", "aarch_crypto_can_dual_issue", "(", "prev", ",", "curr", ")", ")", "return", "true", ";", "if", "(", "current_tune", "->", "fusible_ops", "&", "tune_params", "::", "FUSE_MOVW_MOVT", "&&", "arm_sets_movw_movt_fusible_p", "(", "prev_set", ",", "curr_set", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_MACRO_FUSION_PAIR_P", ".", "Return", "true", "if", "PREV", "and", "CURR", "should", "be", "kept", "together", "during", "scheduling", "."], "TS_V_token": ["arm"], "File": "arm6", "Func": "aarch_macro_fusion_pair_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44797, "Length": 104}
{"ground_truth": ["", "static", "void", "arm32_output_mi_thunk", "(", "FILE", "*", "file", ",", "tree", ",", "HOST_WIDE_INT", "delta", ",", "HOST_WIDE_INT", "vcall_offset", ",", "tree", "function", ")", "{", "int", "this_regno", "=", "(", "aggregate_value_p", "(", "TREE_TYPE", "(", "TREE_TYPE", "(", "function", ")", ")", ",", "function", ")", "?", "R1_REGNUM", ":", "R0_REGNUM", ")", ";", "rtx", "temp", "=", "gen_rtx_REG", "(", "Pmode", ",", "IP_REGNUM", ")", ";", "rtx", "this_rtx", "=", "gen_rtx_REG", "(", "Pmode", ",", "this_regno", ")", ";", "reload_completed", "=", "1", ";", "emit_note", "(", "NOTE_INSN_PROLOGUE_END", ")", ";", "if", "(", "delta", "!=", "0", ")", "arm_split_constant", "(", "PLUS", ",", "Pmode", ",", "NULL_RTX", ",", "delta", ",", "this_rtx", ",", "this_rtx", ",", "false", ")", ";", "if", "(", "vcall_offset", "!=", "0", ")", "{", "emit_move_insn", "(", "temp", ",", "gen_rtx_MEM", "(", "Pmode", ",", "this_rtx", ")", ")", ";", "arm_split_constant", "(", "PLUS", ",", "Pmode", ",", "NULL_RTX", ",", "vcall_offset", ",", "temp", ",", "temp", ",", "false", ")", ";", "emit_move_insn", "(", "temp", ",", "gen_rtx_MEM", "(", "Pmode", ",", "temp", ")", ")", ";", "emit_insn", "(", "gen_add3_insn", "(", "this_rtx", ",", "this_rtx", ",", "temp", ")", ")", ";", "}", "if", "(", "!", "TREE_USED", "(", "function", ")", ")", "{", "assemble_external", "(", "function", ")", ";", "TREE_USED", "(", "function", ")", "=", "1", ";", "}", "rtx", "funexp", "=", "XEXP", "(", "DECL_RTL", "(", "function", ")", ",", "0", ")", ";", "funexp", "=", "gen_rtx_MEM", "(", "FUNCTION_MODE", ",", "funexp", ")", ";", "rtx_insn", "*", "insn", "=", "emit_call_insn", "(", "gen_sibcall", "(", "funexp", ",", "const0_rtx", ",", "NULL_RTX", ")", ")", ";", "SIBLING_CALL_P", "(", "insn", ")", "=", "1", ";", "insn", "=", "get_insns", "(", ")", ";", "shorten_branches", "(", "insn", ")", ";", "final_start_function", "(", "insn", ",", "file", ",", "1", ")", ";", "final", "(", "insn", ",", "file", ",", "1", ")", ";", "final_end_function", "(", ")", ";", "reload_completed", "=", "0", ";", "}", ""], "natrual_language": ["MI", "thunk", "handling", "for", "TARGET_32BIT", "."], "TS_V_token": ["arm", "1", "0", "0", "1", "0", "1", "1", "1", "0"], "File": "arm6", "Func": "arm32_output_mi_thunk", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44798, "Length": 260}
{"ground_truth": ["", "static", "bool", "arm_assemble_integer", "(", "rtx", "x", ",", "unsigned", "int", "size", ",", "int", "aligned_p", ")", "{", "machine_mode", "mode", ";", "if", "(", "size", "==", "UNITS_PER_WORD", "&&", "aligned_p", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "NEED_GOT_RELOC", "&&", "flag_pic", "&&", "making_const_table", "&&", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "||", "GET_CODE", "(", "x", ")", "==", "LABEL_REF", ")", ")", "{", "if", "(", "!", "arm_pic_data_is_text_relative", "||", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "&&", "(", "!", "SYMBOL_REF_LOCAL_P", "(", "x", ")", "||", "(", "SYMBOL_REF_DECL", "(", "x", ")", "?", "DECL_WEAK", "(", "SYMBOL_REF_DECL", "(", "x", ")", ")", ":", "0", ")", ")", ")", ")", "fputs", "(", "\"(GOT)\"", ",", "asm_out_file", ")", ";", "else", "fputs", "(", "\"(GOTOFF)\"", ",", "asm_out_file", ")", ";", "}", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "true", ";", "}", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "arm_vector_mode_supported_p", "(", "mode", ")", ")", "{", "int", "i", ",", "units", ";", "gcc_assert", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", ";", "units", "=", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "size", "=", "GET_MODE_UNIT_SIZE", "(", "mode", ")", ";", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", ")", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_integer", "(", "elt", ",", "size", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ",", "1", ")", ";", "}", "else", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_real", "(", "*", "CONST_DOUBLE_REAL_VALUE", "(", "elt", ")", ",", "GET_MODE_INNER", "(", "mode", ")", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ")", ";", "}", "return", "true", ";", "}", "return", "default_assemble_integer", "(", "x", ",", "size", ",", "aligned_p", ")", ";", "}", ""], "natrual_language": ["Target", "hook", "for", "assembling", "integer", "objects", ".", "The", "ARM", "version", "needs", "to", "handle", "word-sized", "values", "specially", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "0", "\"(GOT)\"", "\"(GOTOFF)\"", "0", "0", "1", "0", "0"], "File": "arm6", "Func": "arm_assemble_integer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44799, "Length": 294}
{"ground_truth": ["", "static", "bool", "arm_const_not_ok_for_debug_p", "(", "rtx", "p", ")", "{", "tree", "decl_op0", "=", "NULL", ";", "tree", "decl_op1", "=", "NULL", ";", "if", "(", "GET_CODE", "(", "p", ")", "==", "MINUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "p", ",", "1", ")", ")", "==", "SYMBOL_REF", ")", "{", "decl_op1", "=", "SYMBOL_REF_DECL", "(", "XEXP", "(", "p", ",", "1", ")", ")", ";", "if", "(", "decl_op1", "&&", "GET_CODE", "(", "XEXP", "(", "p", ",", "0", ")", ")", "==", "SYMBOL_REF", "&&", "(", "decl_op0", "=", "SYMBOL_REF_DECL", "(", "XEXP", "(", "p", ",", "0", ")", ")", ")", ")", "{", "if", "(", "(", "VAR_P", "(", "decl_op1", ")", "||", "TREE_CODE", "(", "decl_op1", ")", "==", "CONST_DECL", ")", "&&", "(", "VAR_P", "(", "decl_op0", ")", "||", "TREE_CODE", "(", "decl_op0", ")", "==", "CONST_DECL", ")", ")", "return", "(", "get_variable_section", "(", "decl_op1", ",", "false", ")", "!=", "get_variable_section", "(", "decl_op0", ",", "false", ")", ")", ";", "if", "(", "TREE_CODE", "(", "decl_op1", ")", "==", "LABEL_DECL", "&&", "TREE_CODE", "(", "decl_op0", ")", "==", "LABEL_DECL", ")", "return", "(", "DECL_CONTEXT", "(", "decl_op1", ")", "!=", "DECL_CONTEXT", "(", "decl_op0", ")", ")", ";", "}", "return", "true", ";", "}", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "is", "a", "temporary", "fix", "for", "PR60655", ".", "Ideally", "we", "need", "to", "handle", "most", "of", "these", "cases", "in", "the", "generic", "part", "but", "currently", "we", "reject", "minus", "(", "..", ")", "(", "sym_ref", ")", ".", "We", "try", "to", "ameliorate", "the", "case", "with", "minus", "(", "sym_ref1", ")", "(", "sym_ref2", ")", "where", "they", "are", "in", "the", "same", "section", "."], "TS_V_token": ["arm", "1", "1", "0", "0"], "File": "arm6", "Func": "arm_const_not_ok_for_debug_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44800, "Length": 172}
{"ground_truth": ["", "bool", "arm_coproc_builtin_available", "(", "enum", "unspecv", "builtin", ")", "{", "if", "(", "TARGET_THUMB1", ")", "return", "false", ";", "switch", "(", "builtin", ")", "{", "case", "VUNSPEC_CDP", ":", "case", "VUNSPEC_LDC", ":", "case", "VUNSPEC_LDCL", ":", "case", "VUNSPEC_STC", ":", "case", "VUNSPEC_STCL", ":", "case", "VUNSPEC_MCR", ":", "case", "VUNSPEC_MRC", ":", "if", "(", "arm_arch4", ")", "return", "true", ";", "break", ";", "case", "VUNSPEC_CDP2", ":", "case", "VUNSPEC_LDC2", ":", "case", "VUNSPEC_LDC2L", ":", "case", "VUNSPEC_STC2", ":", "case", "VUNSPEC_STC2L", ":", "case", "VUNSPEC_MCR2", ":", "case", "VUNSPEC_MRC2", ":", "if", "(", "arm_arch5", ")", "return", "true", ";", "break", ";", "case", "VUNSPEC_MCRR", ":", "case", "VUNSPEC_MRRC", ":", "if", "(", "arm_arch6", "||", "arm_arch5te", ")", "return", "true", ";", "break", ";", "case", "VUNSPEC_MCRR2", ":", "case", "VUNSPEC_MRRC2", ":", "if", "(", "arm_arch6", ")", "return", "true", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "function", "checks", "for", "the", "availability", "of", "the", "coprocessor", "builtin", "passed", "in", "BUILTIN", "for", "the", "current", "target", ".", "Returns", "true", "if", "it", "is", "available", "and", "false", "otherwise", ".", "If", "a", "BUILTIN", "is", "passed", "for", "which", "this", "function", "has", "not", "been", "implemented", "it", "will", "cause", "an", "exception", "."], "TS_V_token": ["arm"], "File": "arm6", "Func": "arm_coproc_builtin_available", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44801, "Length": 123}
{"ground_truth": ["", "void", "arm_declare_function_name", "(", "FILE", "*", "stream", ",", "const", "char", "*", "name", ",", "tree", "decl", ")", "{", "fprintf", "(", "stream", ",", "\"\\t.syntax unified\\n\"", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "if", "(", "is_called_in_ARM_mode", "(", "decl", ")", "||", "(", "TARGET_THUMB1", "&&", "!", "TARGET_THUMB1_ONLY", "&&", "cfun", "->", "is_thunk", ")", ")", "fprintf", "(", "stream", ",", "\"\\t.code 32\\n\"", ")", ";", "else", "if", "(", "TARGET_THUMB1", ")", "fprintf", "(", "stream", ",", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", ")", ";", "else", "fprintf", "(", "stream", ",", "\"\\t.thumb\\n\\t.thumb_func\\n\"", ")", ";", "}", "else", "fprintf", "(", "stream", ",", "\"\\t.arm\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.fpu %s\\n\"", ",", "(", "TARGET_SOFT_FLOAT", "?", "\"softvfp\"", ":", "arm_identify_fpu_from_isa", "(", "arm_active_target", ".", "isa", ")", ")", ")", ";", "if", "(", "TARGET_POKE_FUNCTION_NAME", ")", "arm_poke_function_name", "(", "stream", ",", "(", "const", "char", "*", ")", "name", ")", ";", "}", ""], "natrual_language": ["Implement", "ASM_DECLARE_FUNCTION_NAME", ".", "Output", "the", "ISA", "features", "used", "by", "the", "function", "fndecl", "."], "TS_V_token": ["arm", "\"\\t.syntax unified\\n\"", "\"\\t.code 32\\n\"", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", "\"\\t.thumb\\n\\t.thumb_func\\n\"", "\"\\t.arm\\n\"", "\"\\t.fpu %s\\n\"", "\"softvfp\""], "File": "arm6", "Func": "arm_declare_function_name", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44802, "Length": 119}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vext", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "rtx", "offset", ";", "unsigned", "int", "location", ";", "unsigned", "int", "next", "=", "d", "->", "perm", "[", "0", "]", "+", "1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "return", "false", ";", "for", "(", "i", "=", "1", ";", "i", "<", "nelt", ";", "next", "++", ",", "i", "++", ")", "{", "if", "(", "next", "==", "2", "*", "nelt", ")", "return", "false", ";", "if", "(", "d", "->", "one_vector_p", "&&", "(", "next", "==", "nelt", ")", ")", "{", "if", "(", "(", "nelt", "==", "2", ")", "&&", "(", "d", "->", "vmode", "!=", "V2DImode", ")", ")", "return", "false", ";", "else", "next", "=", "0", ";", "}", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "next", ")", "return", "false", ";", "}", "location", "=", "d", "->", "perm", "[", "0", "]", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vextv16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vextv8qi", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vextv4hi", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vextv8hi", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vextv2si", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vextv4si", ";", "break", ";", "case", "V4HFmode", ":", "gen", "=", "gen_neon_vextv4hf", ";", "break", ";", "case", "V8HFmode", ":", "gen", "=", "gen_neon_vextv8hf", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vextv2sf", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vextv4sf", ";", "break", ";", "case", "V2DImode", ":", "gen", "=", "gen_neon_vextv2di", ";", "break", ";", "default", ":", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "offset", "=", "GEN_INT", "(", "location", ")", ";", "emit_insn", "(", "gen", "(", "d", "->", "target", ",", "d", "->", "op0", ",", "d", "->", "op1", ",", "offset", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VEXT", "insns", "."], "TS_V_token": ["arm", "0", "1", "1", "2", "2", "0", "0"], "File": "arm6", "Func": "arm_evpc_neon_vext", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44803, "Length": 304}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vrev", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "j", ",", "diff", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ")", ";", "if", "(", "!", "d", "->", "one_vector_p", ")", "return", "false", ";", "diff", "=", "d", "->", "perm", "[", "0", "]", ";", "switch", "(", "diff", ")", "{", "case", "7", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vrev64v16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vrev64v8qi", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "3", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vrev32v16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vrev32v8qi", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vrev64v8hi", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vrev64v4hi", ";", "break", ";", "case", "V8HFmode", ":", "gen", "=", "gen_neon_vrev64v8hf", ";", "break", ";", "case", "V4HFmode", ":", "gen", "=", "gen_neon_vrev64v4hf", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "1", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vrev16v16qi", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vrev16v8qi", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vrev32v8hi", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vrev32v4hi", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vrev64v4si", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vrev64v2si", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vrev64v4sf", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vrev64v2sf", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "default", ":", "return", "false", ";", "}", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "diff", "+", "1", ")", "for", "(", "j", "=", "0", ";", "j", "<=", "diff", ";", "j", "+=", "1", ")", "{", "gcc_assert", "(", "i", "+", "j", "<", "nelt", ")", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "j", "]", "!=", "i", "+", "diff", "-", "j", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "emit_insn", "(", "gen", "(", "d", "->", "target", ",", "d", "->", "op0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VREV", "insns", "."], "TS_V_token": ["arm", "0", "7", "3", "1", "0", "1", "0", "1"], "File": "arm6", "Func": "arm_evpc_neon_vrev", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44804, "Length": 351}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vtrn", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "0", ")", "odd", "=", "0", ";", "else", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "1", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "2", ")", "{", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "i", "+", "odd", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "1", "]", "!=", "(", "(", "i", "+", "nelt", "+", "odd", ")", "&", "mask", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vtrnv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vtrnv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vtrnv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vtrnv4hi_internal", ";", "break", ";", "case", "V8HFmode", ":", "gen", "=", "gen_neon_vtrnv8hf_internal", ";", "break", ";", "case", "V4HFmode", ":", "gen", "=", "gen_neon_vtrnv4hf_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vtrnv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vtrnv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vtrnv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vtrnv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "odd", "=", "!", "odd", ";", "}", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VTRN", "insns", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "1"], "File": "arm6", "Func": "arm_evpc_neon_vtrn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44805, "Length": 364}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vuzp", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "int", "first_elem", ";", "int", "swap_nelt", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "swap_nelt", "=", "BYTES_BIG_ENDIAN", "&&", "!", "d", "->", "one_vector_p", "&&", "GET_MODE_SIZE", "(", "d", "->", "vmode", ")", "==", "8", "?", "d", "->", "nelt", ":", "0", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "]", "^", "swap_nelt", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "odd", "=", "0", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "1", ")", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "(", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", ")", "*", "2", "+", "odd", ")", "&", "mask", ";", "if", "(", "(", "d", "->", "perm", "[", "i", "]", "^", "swap_nelt", ")", "!=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "elt", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vuzpv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vuzpv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vuzpv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vuzpv4hi_internal", ";", "break", ";", "case", "V8HFmode", ":", "gen", "=", "gen_neon_vuzpv8hf_internal", ";", "break", ";", "case", "V4HFmode", ":", "gen", "=", "gen_neon_vuzpv4hf_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vuzpv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vuzpv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vuzpv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vuzpv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "swap_nelt", "!=", "0", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VUZP", "insns", "."], "TS_V_token": ["arm", "8", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "0"], "File": "arm6", "Func": "arm_evpc_neon_vuzp", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44806, "Length": 413}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vzip", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "high", ",", "mask", ",", "nelt", "=", "d", "->", "nelt", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "int", "first_elem", ";", "bool", "is_swapped", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "is_swapped", "=", "BYTES_BIG_ENDIAN", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "^", "is_swapped", "]", ";", "high", "=", "nelt", "/", "2", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "high", ")", ")", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "high", "=", "0", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", "/", "2", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "nelt", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "!", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "V16QImode", ":", "gen", "=", "gen_neon_vzipv16qi_internal", ";", "break", ";", "case", "V8QImode", ":", "gen", "=", "gen_neon_vzipv8qi_internal", ";", "break", ";", "case", "V8HImode", ":", "gen", "=", "gen_neon_vzipv8hi_internal", ";", "break", ";", "case", "V4HImode", ":", "gen", "=", "gen_neon_vzipv4hi_internal", ";", "break", ";", "case", "V8HFmode", ":", "gen", "=", "gen_neon_vzipv8hf_internal", ";", "break", ";", "case", "V4HFmode", ":", "gen", "=", "gen_neon_vzipv4hf_internal", ";", "break", ";", "case", "V4SImode", ":", "gen", "=", "gen_neon_vzipv4si_internal", ";", "break", ";", "case", "V2SImode", ":", "gen", "=", "gen_neon_vzipv2si_internal", ";", "break", ";", "case", "V2SFmode", ":", "gen", "=", "gen_neon_vzipv2sf_internal", ";", "break", ";", "case", "V4SFmode", ":", "gen", "=", "gen_neon_vzipv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "is_swapped", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "high", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VZIP", "insns", "."], "TS_V_token": ["arm", "8", "0", "2", "0", "0", "1", "2", "1", "0", "2", "2", "2"], "File": "arm6", "Func": "arm_evpc_neon_vzip", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44807, "Length": 435}
{"ground_truth": ["", "void", "arm_expand_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "bval", ",", "bdst", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ",", "x", ";", "machine_mode", "mode", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "bval", "=", "operands", "[", "0", "]", ";", "rval", "=", "operands", "[", "1", "]", ";", "mem", "=", "operands", "[", "2", "]", ";", "oldval", "=", "operands", "[", "3", "]", ";", "newval", "=", "operands", "[", "4", "]", ";", "is_weak", "=", "operands", "[", "5", "]", ";", "mod_s", "=", "operands", "[", "6", "]", ";", "mod_f", "=", "operands", "[", "7", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "if", "(", "TARGET_HAVE_LDACQ", "&&", "is_mm_acquire", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_f", ")", ")", ")", "&&", "is_mm_release", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_s", ")", ")", ")", ")", "mod_s", "=", "GEN_INT", "(", "MEMMODEL_ACQ_REL", ")", ";", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "case", "HImode", ":", "rval", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "oldval", "=", "convert_modes", "(", "SImode", ",", "mode", ",", "oldval", ",", "true", ")", ";", "case", "SImode", ":", "if", "(", "!", "arm_add_operand", "(", "oldval", ",", "SImode", ")", ")", "oldval", "=", "force_reg", "(", "SImode", ",", "oldval", ")", ";", "break", ";", "case", "DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "oldval", ",", "mode", ")", ")", "oldval", "=", "force_reg", "(", "mode", ",", "oldval", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "switch", "(", "mode", ")", "{", "case", "QImode", ":", "gen", "=", "gen_atomic_compare_and_swapqi_1", ";", "break", ";", "case", "HImode", ":", "gen", "=", "gen_atomic_compare_and_swaphi_1", ";", "break", ";", "case", "SImode", ":", "gen", "=", "gen_atomic_compare_and_swapsi_1", ";", "break", ";", "case", "DImode", ":", "gen", "=", "gen_atomic_compare_and_swapdi_1", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "bdst", "=", "TARGET_THUMB1", "?", "bval", ":", "gen_rtx_REG", "(", "CCmode", ",", "CC_REGNUM", ")", ";", "emit_insn", "(", "gen", "(", "bdst", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ")", ")", ";", "if", "(", "mode", "==", "QImode", "||", "mode", "==", "HImode", ")", "emit_move_insn", "(", "operands", "[", "1", "]", ",", "gen_lowpart", "(", "mode", ",", "rval", ")", ")", ";", "if", "(", "TARGET_THUMB1", ")", "emit_insn", "(", "gen_cstoresi_eq0_thumb1", "(", "bval", ",", "bdst", ")", ")", ";", "else", "{", "x", "=", "gen_rtx_EQ", "(", "SImode", ",", "bdst", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "bval", ",", "x", ")", ")", ";", "}", "}", ""], "natrual_language": ["Expand", "a", "compare", "and", "swap", "pattern", "."], "TS_V_token": ["arm", "0", "1", "2", "3", "4", "5", "6", "7", "1"], "File": "arm6", "Func": "arm_expand_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44808, "Length": 385}
{"ground_truth": ["", "static", "void", "arm_expand_divmod_libfunc", "(", "rtx", "libfunc", ",", "machine_mode", "mode", ",", "rtx", "op0", ",", "rtx", "op1", ",", "rtx", "*", "quot_p", ",", "rtx", "*", "rem_p", ")", "{", "if", "(", "mode", "==", "SImode", ")", "gcc_assert", "(", "!", "TARGET_IDIV", ")", ";", "machine_mode", "libval_mode", "=", "smallest_mode_for_size", "(", "2", "*", "GET_MODE_BITSIZE", "(", "mode", ")", ",", "MODE_INT", ")", ";", "rtx", "libval", "=", "emit_library_call_value", "(", "libfunc", ",", "NULL_RTX", ",", "LCT_CONST", ",", "libval_mode", ",", "2", ",", "op0", ",", "GET_MODE", "(", "op0", ")", ",", "op1", ",", "GET_MODE", "(", "op1", ")", ")", ";", "rtx", "quotient", "=", "simplify_gen_subreg", "(", "mode", ",", "libval", ",", "libval_mode", ",", "0", ")", ";", "rtx", "remainder", "=", "simplify_gen_subreg", "(", "mode", ",", "libval", ",", "libval_mode", ",", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "gcc_assert", "(", "quotient", ")", ";", "gcc_assert", "(", "remainder", ")", ";", "*", "quot_p", "=", "quotient", ";", "*", "rem_p", "=", "remainder", ";", "}", ""], "natrual_language": ["Generate", "call", "to", "__aeabi_", "[", "mode", "]", "divmod", "(", "op0", ",", "op1", ")", "."], "TS_V_token": ["arm", "2", "2", "0"], "File": "arm6", "Func": "arm_expand_divmod_libfunc", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44809, "Length": 134}
{"ground_truth": ["", "static", "machine_mode", "arm_floatn_mode", "(", "int", "n", ",", "bool", "extended", ")", "{", "if", "(", "!", "extended", "&&", "n", "==", "16", ")", "return", "arm_fp16_format", "==", "ARM_FP16_FORMAT_IEEE", "?", "HFmode", ":", "VOIDmode", ";", "return", "default_floatn_mode", "(", "n", ",", "extended", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FLOATN_MODE", ".", "Make", "very", "sure", "that", "we", "do", "n't", "provide", "_Float16", "if", "we", "are", "using", "anything", "other", "than", "ieee", "format", "for", "16-bit", "floating", "point", ".", "Otherwise", ",", "punt", "to", "the", "default", "implementation", "."], "TS_V_token": ["arm", "16"], "File": "arm6", "Func": "arm_floatn_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44810, "Length": 38}
{"ground_truth": ["", "bool", "arm_frame_pointer_required", "(", "void", ")", "{", "if", "(", "SUBTARGET_FRAME_POINTER_REQUIRED", ")", "return", "true", ";", "if", "(", "cfun", "->", "has_nonlocal_label", ")", "return", "true", ";", "if", "(", "TARGET_ARM", "&&", "TARGET_APCS_FRAME", "&&", "!", "crtl", "->", "is_leaf", ")", "return", "true", ";", "if", "(", "!", "IS_INTERRUPT", "(", "arm_current_func_type", "(", ")", ")", "&&", "flag_stack_check", "==", "STATIC_BUILTIN_STACK_CHECK", "&&", "arm_except_unwind_info", "(", "&", "global_options", ")", "==", "UI_TARGET", "&&", "cfun", "->", "can_throw_non_call_exceptions", ")", "{", "HOST_WIDE_INT", "size", "=", "get_frame_size", "(", ")", ";", "if", "(", "size", "<=", "0", ")", "return", "false", ";", "if", "(", "crtl", "->", "is_leaf", "&&", "!", "cfun", "->", "calls_alloca", ")", "{", "size", "+=", "32", "*", "UNITS_PER_WORD", ";", "if", "(", "size", ">", "PROBE_INTERVAL", "&&", "size", ">", "STACK_CHECK_PROTECT", ")", "return", "true", ";", "}", "else", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FRAME_POINTER_REQUIRED", "."], "TS_V_token": ["arm", "0", "32"], "File": "arm6", "Func": "arm_frame_pointer_required", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44811, "Length": 120}
{"ground_truth": ["", "static", "rtx", "arm_function_arg", "(", "cumulative_args_t", "pcum_v", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "bool", "named", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "if", "(", "mode", "==", "VOIDmode", ")", "return", "const0_rtx", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "aapcs_layout_arg", "(", "pcum", ",", "mode", ",", "type", ",", "named", ")", ";", "return", "pcum", "->", "aapcs_reg", ";", "}", "if", "(", "TARGET_IWMMXT_ABI", "&&", "arm_vector_mode_supported_p", "(", "mode", ")", "&&", "pcum", "->", "named_count", ">", "pcum", "->", "nargs", "+", "1", ")", "{", "if", "(", "pcum", "->", "iwmmxt_nregs", "<=", "9", ")", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "iwmmxt_nregs", "+", "FIRST_IWMMXT_REGNUM", ")", ";", "else", "{", "pcum", "->", "can_split", "=", "false", ";", "return", "NULL_RTX", ";", "}", "}", "if", "(", "(", "pcum", "->", "nregs", "&", "1", ")", "&&", "ARM_DOUBLEWORD_ALIGN", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", ",", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "pcum", "->", "nregs", "++", ";", "}", "if", "(", "pcum", "->", "can_split", ")", "nregs", "=", "1", ";", "else", "nregs", "=", "ARM_NUM_REGS2", "(", "mode", ",", "type", ")", ";", "if", "(", "!", "named", "||", "pcum", "->", "nregs", "+", "nregs", ">", "NUM_ARG_REGS", ")", "return", "NULL_RTX", ";", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "nregs", ")", ";", "}", ""], "natrual_language": ["Determine", "where", "to", "put", "an", "argument", "to", "a", "function", ".", "Value", "is", "zero", "to", "push", "the", "argument", "on", "the", "stack", ",", "or", "a", "hard", "register", "in", "which", "to", "store", "the", "argument", ".", "MODE", "is", "the", "argument", "'s", "machine", "mode", ".", "TYPE", "is", "the", "data", "type", "of", "the", "argument", "(", "as", "a", "tree", ")", ".", "This", "is", "null", "for", "libcalls", "where", "that", "information", "may", "not", "be", "available", ".", "CUM", "is", "a", "variable", "of", "type", "CUMULATIVE_ARGS", "which", "gives", "info", "about", "the", "preceding", "args", "and", "about", "the", "function", "being", "called", ".", "NAMED", "is", "nonzero", "if", "this", "argument", "is", "a", "named", "parameter", "(", "otherwise", "it", "is", "an", "extra", "parameter", "matching", "an", "ellipsis", ")", ".", "On", "the", "ARM", ",", "normally", "the", "first", "16", "bytes", "are", "passed", "in", "registers", "r0-r3", ";", "all", "other", "arguments", "are", "passed", "on", "the", "stack", ".", "If", "(", "NAMED", "==", "0", ")", "(", "which", "happens", "only", "in", "assign_parms", ",", "since", "TARGET_SETUP_INCOMING_VARARGS", "is", "defined", ")", ",", "say", "it", "is", "passed", "in", "the", "stack", "(", "function_prologue", "will", "indeed", "make", "it", "pass", "in", "the", "stack", "if", "necessary", ")", "."], "TS_V_token": ["arm", "1", "9", "1", "0", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", "0", "1"], "File": "arm6", "Func": "arm_function_arg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44812, "Length": 218}
{"ground_truth": ["", "static", "bool", "arm_function_ok_for_sibcall", "(", "tree", "decl", ",", "tree", "exp", ")", "{", "unsigned", "long", "func_type", ";", "if", "(", "cfun", "->", "machine", "->", "sibcall_blocked", ")", "return", "false", ";", "if", "(", "TARGET_THUMB1", ")", "return", "false", ";", "if", "(", "TARGET_VXWORKS_RTP", "&&", "flag_pic", "&&", "decl", "&&", "!", "targetm", ".", "binds_local_p", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "TARGET_APCS_FRAME", "&&", "TARGET_ARM", "&&", "TARGET_HARD_FLOAT", "&&", "decl", "&&", "arm_is_long_call_p", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "TARGET_INTERWORK", "&&", "decl", "&&", "TREE_PUBLIC", "(", "decl", ")", "&&", "!", "TREE_ASM_WRITTEN", "(", "decl", ")", ")", "return", "false", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", "return", "false", ";", "if", "(", "TREE_CODE", "(", "exp", ")", "==", "CALL_EXPR", ")", "{", "tree", "fntype", "=", "TREE_TYPE", "(", "TREE_TYPE", "(", "CALL_EXPR_FN", "(", "exp", ")", ")", ")", ";", "if", "(", "lookup_attribute", "(", "\"cmse_nonsecure_call\"", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ")", "return", "false", ";", "}", "if", "(", "!", "VOID_TYPE_P", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ")", ")", "{", "rtx", "a", ",", "b", ";", "tree", "decl_or_type", "=", "decl", ";", "if", "(", "!", "decl", ")", "decl_or_type", "=", "TREE_TYPE", "(", "TREE_TYPE", "(", "CALL_EXPR_FN", "(", "exp", ")", ")", ")", ";", "a", "=", "arm_function_value", "(", "TREE_TYPE", "(", "exp", ")", ",", "decl_or_type", ",", "false", ")", ";", "b", "=", "arm_function_value", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ",", "cfun", "->", "decl", ",", "false", ")", ";", "if", "(", "!", "rtx_equal_p", "(", "a", ",", "b", ")", ")", "return", "false", ";", "}", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "TARGET_AAPCS_BASED", "&&", "arm_abi", "==", "ARM_ABI_AAPCS", "&&", "decl", "&&", "DECL_WEAK", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "!", "decl", "&&", "CALL_EXPR_BY_DESCRIPTOR", "(", "exp", ")", "&&", "!", "flag_trampolines", ")", "{", "tree", "fntype", "=", "TREE_TYPE", "(", "TREE_TYPE", "(", "CALL_EXPR_FN", "(", "exp", ")", ")", ")", ";", "CUMULATIVE_ARGS", "cum", ";", "cumulative_args_t", "cum_v", ";", "arm_init_cumulative_args", "(", "&", "cum", ",", "fntype", ",", "NULL_RTX", ",", "NULL_TREE", ")", ";", "cum_v", "=", "pack_cumulative_args", "(", "&", "cum", ")", ";", "for", "(", "tree", "t", "=", "TYPE_ARG_TYPES", "(", "fntype", ")", ";", "t", ";", "t", "=", "TREE_CHAIN", "(", "t", ")", ")", "{", "tree", "type", "=", "TREE_VALUE", "(", "t", ")", ";", "if", "(", "!", "VOID_TYPE_P", "(", "type", ")", ")", "arm_function_arg_advance", "(", "cum_v", ",", "TYPE_MODE", "(", "type", ")", ",", "type", ",", "true", ")", ";", "}", "if", "(", "!", "arm_function_arg", "(", "cum_v", ",", "SImode", ",", "integer_type_node", ",", "true", ")", ")", "return", "false", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "it", "is", "ok", "to", "make", "a", "tail-call", "to", "DECL", "."], "TS_V_token": ["arm", "\"cmse_nonsecure_call\""], "File": "arm6", "Func": "arm_function_ok_for_sibcall", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44813, "Length": 407}
{"ground_truth": ["", "static", "int", "arm_get_vfp_saved_size", "(", "void", ")", "{", "unsigned", "int", "regno", ";", "int", "count", ";", "int", "saved", ";", "saved", "=", "0", ";", "if", "(", "TARGET_HARD_FLOAT", ")", "{", "count", "=", "0", ";", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<", "LAST_VFP_REGNUM", ";", "regno", "+=", "2", ")", "{", "if", "(", "(", "!", "df_regs_ever_live_p", "(", "regno", ")", "||", "call_used_regs", "[", "regno", "]", ")", "&&", "(", "!", "df_regs_ever_live_p", "(", "regno", "+", "1", ")", "||", "call_used_regs", "[", "regno", "+", "1", "]", ")", ")", "{", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", ";", "}", "count", "=", "0", ";", "}", "else", "count", "++", ";", "}", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", ";", "}", "}", "return", "saved", ";", "}", ""], "natrual_language": ["Return", "the", "number", "of", "bytes", "required", "to", "save", "VFP", "registers", "."], "TS_V_token": ["arm", "0", "0", "2", "1", "1", "0", "2", "8", "0", "0", "2", "8"], "File": "arm6", "Func": "arm_get_vfp_saved_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44814, "Length": 145}
{"ground_truth": ["", "static", "tree", "arm_handle_cmse_nonsecure_call", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", ",", "int", ",", "bool", "*", "no_add_attrs", ")", "{", "tree", "decl", "=", "NULL_TREE", ",", "fntype", "=", "NULL_TREE", ";", "tree", "type", ";", "if", "(", "!", "use_cmse", ")", "{", "*", "no_add_attrs", "=", "true", ";", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute ignored without -mcmse option.\"", ",", "name", ")", ";", "return", "NULL_TREE", ";", "}", "if", "(", "TREE_CODE", "(", "*", "node", ")", "==", "VAR_DECL", "||", "TREE_CODE", "(", "*", "node", ")", "==", "TYPE_DECL", ")", "{", "decl", "=", "*", "node", ";", "fntype", "=", "TREE_TYPE", "(", "decl", ")", ";", "}", "while", "(", "fntype", "!=", "NULL_TREE", "&&", "TREE_CODE", "(", "fntype", ")", "==", "POINTER_TYPE", ")", "fntype", "=", "TREE_TYPE", "(", "fntype", ")", ";", "if", "(", "!", "decl", "||", "TREE_CODE", "(", "fntype", ")", "!=", "FUNCTION_TYPE", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute only applies to base type of a \"", "\"function pointer\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "return", "NULL_TREE", ";", "}", "*", "no_add_attrs", "|=", "cmse_func_args_or_return_in_stack", "(", "NULL", ",", "name", ",", "fntype", ")", ";", "if", "(", "*", "no_add_attrs", ")", "return", "NULL_TREE", ";", "type", "=", "TREE_TYPE", "(", "decl", ")", ";", "type", "=", "build_distinct_type_copy", "(", "type", ")", ";", "TREE_TYPE", "(", "decl", ")", "=", "type", ";", "fntype", "=", "type", ";", "while", "(", "TREE_CODE", "(", "fntype", ")", "!=", "FUNCTION_TYPE", ")", "{", "type", "=", "fntype", ";", "fntype", "=", "TREE_TYPE", "(", "fntype", ")", ";", "fntype", "=", "build_distinct_type_copy", "(", "fntype", ")", ";", "TREE_TYPE", "(", "type", ")", "=", "fntype", ";", "}", "tree", "attrs", "=", "tree_cons", "(", "get_identifier", "(", "\"cmse_nonsecure_call\"", ")", ",", "NULL_TREE", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ";", "TYPE_ATTRIBUTES", "(", "fntype", ")", "=", "attrs", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Called", "upon", "detection", "of", "the", "use", "of", "the", "cmse_nonsecure_call", "attribute", ",", "this", "function", "will", "check", "whether", "the", "attribute", "is", "allowed", "here", "and", "will", "add", "the", "attribute", "to", "the", "function", "type", "tree", "or", "otherwise", "issue", "a", "diagnostic", ".", "The", "reason", "we", "check", "this", "at", "declaration", "time", "is", "to", "only", "allow", "the", "use", "of", "the", "attribute", "with", "declarations", "of", "function", "pointers", "and", "not", "function", "declarations", ".", "This", "function", "checks", "NODE", "is", "of", "the", "expected", "type", "and", "issues", "diagnostics", "otherwise", "using", "NAME", ".", "If", "it", "is", "not", "of", "the", "expected", "type", "*", "NO_ADD_ATTRS", "will", "be", "set", "to", "true", "."], "TS_V_token": ["arm", "\"%qE attribute ignored without -mcmse option.\"", "\"%qE attribute only applies to base type of a \"", "\"function pointer\"", "\"cmse_nonsecure_call\""], "File": "arm6", "Func": "arm_handle_cmse_nonsecure_call", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44815, "Length": 250}
{"ground_truth": ["", "static", "tree", "arm_handle_cmse_nonsecure_entry", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", ",", "int", ",", "bool", "*", "no_add_attrs", ")", "{", "tree", "fndecl", ";", "if", "(", "!", "use_cmse", ")", "{", "*", "no_add_attrs", "=", "true", ";", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute ignored without -mcmse option.\"", ",", "name", ")", ";", "return", "NULL_TREE", ";", "}", "if", "(", "TREE_CODE", "(", "*", "node", ")", "!=", "FUNCTION_DECL", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute only applies to functions\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "return", "NULL_TREE", ";", "}", "fndecl", "=", "*", "node", ";", "if", "(", "!", "TREE_PUBLIC", "(", "fndecl", ")", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute has no effect on functions \"", "\"with static linkage\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "return", "NULL_TREE", ";", "}", "*", "no_add_attrs", "|=", "cmse_func_args_or_return_in_stack", "(", "fndecl", ",", "name", ",", "TREE_TYPE", "(", "fndecl", ")", ")", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Called", "upon", "detection", "of", "the", "use", "of", "the", "cmse_nonsecure_entry", "attribute", ",", "this", "function", "will", "check", "whether", "the", "attribute", "is", "allowed", "here", "and", "will", "add", "the", "attribute", "to", "the", "function", "declaration", "tree", "or", "otherwise", "issue", "a", "warning", "."], "TS_V_token": ["arm", "\"%qE attribute ignored without -mcmse option.\"", "\"%qE attribute only applies to functions\"", "\"%qE attribute has no effect on functions \"", "\"with static linkage\""], "File": "arm6", "Func": "arm_handle_cmse_nonsecure_entry", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44816, "Length": 128}
{"ground_truth": ["", "int", "arm_hard_regno_mode_ok", "(", "unsigned", "int", "regno", ",", "machine_mode", "mode", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_CC", ")", "return", "(", "regno", "==", "CC_REGNUM", "||", "(", "TARGET_HARD_FLOAT", "&&", "regno", "==", "VFPCC_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "CC_REGNUM", "&&", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_CC", ")", "return", "false", ";", "if", "(", "TARGET_THUMB1", ")", "return", "(", "ARM_NUM_REGS", "(", "mode", ")", "<", "2", ")", "||", "(", "regno", "<", "LAST_LO_REGNUM", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "mode", "==", "SFmode", "||", "mode", "==", "SImode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "DFmode", ")", "return", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "HFmode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "HImode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "TARGET_NEON", ")", "return", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "&&", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ")", "||", "(", "VALID_NEON_QREG_MODE", "(", "mode", ")", "&&", "NEON_REGNO_OK_FOR_QUAD", "(", "regno", ")", ")", "||", "(", "mode", "==", "TImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "2", ")", ")", "||", "(", "mode", "==", "EImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "3", ")", ")", "||", "(", "mode", "==", "OImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "4", ")", ")", "||", "(", "mode", "==", "CImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "6", ")", ")", "||", "(", "mode", "==", "XImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "8", ")", ")", ";", "return", "FALSE", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "mode", "==", "SImode", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ";", "}", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", ")", "{", "if", "(", "ARM_NUM_REGS", "(", "mode", ")", ">", "4", ")", "return", "FALSE", ";", "if", "(", "TARGET_THUMB2", ")", "return", "TRUE", ";", "return", "!", "(", "TARGET_LDRD", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">", "4", "&&", "(", "regno", "&", "1", ")", "!=", "0", ")", ";", "}", "if", "(", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "REGNO", "is", "a", "valid", "register", "for", "holding", "a", "quantity", "of", "type", "MODE", "."], "TS_V_token": ["arm", "2", "2", "3", "4", "6", "8", "4", "4", "1", "0"], "File": "arm6", "Func": "arm_hard_regno_mode_ok", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44817, "Length": 332}
{"ground_truth": ["", "static", "const", "char", "*", "arm_identify_fpu_from_isa", "(", "sbitmap", "isa", ")", "{", "auto_sbitmap", "fpubits", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "cand_fpubits", "(", "isa_num_bits", ")", ";", "bitmap_and", "(", "fpubits", ",", "isa", ",", "isa_all_fpubits", ")", ";", "if", "(", "bitmap_empty_p", "(", "fpubits", ")", ")", "return", "\"softvfp\"", ";", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "all_fpus", ")", ";", "i", "++", ")", "{", "arm_initialize_isa", "(", "cand_fpubits", ",", "all_fpus", "[", "i", "]", ".", "isa_bits", ")", ";", "if", "(", "bitmap_equal_p", "(", "fpubits", ",", "cand_fpubits", ")", ")", "return", "all_fpus", "[", "i", "]", ".", "name", ";", "}", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Match", "an", "ISA", "feature", "bitmap", "to", "a", "named", "FPU", ".", "We", "always", "use", "the", "first", "entry", "that", "exactly", "matches", "the", "feature", "set", ",", "so", "that", "we", "effectively", "canonicalize", "the", "FPU", "name", "for", "the", "assembler", "."], "TS_V_token": ["arm", "\"softvfp\"", "0"], "File": "arm6", "Func": "arm_identify_fpu_from_isa", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44818, "Length": 95}
{"ground_truth": ["", "static", "void", "arm_initialize_isa", "(", "sbitmap", "isa", ",", "const", "enum", "isa_feature", "*", "isa_bits", ")", "{", "bitmap_clear", "(", "isa", ")", ";", "while", "(", "*", "isa_bits", "!=", "isa_nobit", ")", "bitmap_set_bit", "(", "isa", ",", "*", "(", "isa_bits", "++", ")", ")", ";", "}", ""], "natrual_language": ["Convert", "a", "static", "initializer", "array", "of", "feature", "bits", "to", "sbitmap", "representation", "."], "TS_V_token": ["arm"], "File": "arm6", "Func": "arm_initialize_isa", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44819, "Length": 38}
{"ground_truth": ["", "static", "int", "arm_needs_doubleword_align", "(", "machine_mode", "mode", ",", "const_tree", "type", ")", "{", "if", "(", "!", "type", ")", "return", "GET_MODE_ALIGNMENT", "(", "mode", ")", ">", "PARM_BOUNDARY", ";", "if", "(", "!", "AGGREGATE_TYPE_P", "(", "type", ")", ")", "return", "TYPE_ALIGN", "(", "TYPE_MAIN_VARIANT", "(", "type", ")", ")", ">", "PARM_BOUNDARY", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "ARRAY_TYPE", ")", "return", "TYPE_ALIGN", "(", "TREE_TYPE", "(", "type", ")", ")", ">", "PARM_BOUNDARY", ";", "int", "ret", "=", "0", ";", "for", "(", "tree", "field", "=", "TYPE_FIELDS", "(", "type", ")", ";", "field", ";", "field", "=", "DECL_CHAIN", "(", "field", ")", ")", "if", "(", "DECL_ALIGN", "(", "field", ")", ">", "PARM_BOUNDARY", ")", "{", "if", "(", "TREE_CODE", "(", "field", ")", "==", "FIELD_DECL", ")", "return", "1", ";", "else", "ret", "=", "-", "1", ";", "}", "return", "ret", ";", "}", ""], "natrual_language": ["Return", "1", "if", "double", "word", "alignment", "is", "required", "for", "argument", "passing", ".", "Return", "-1", "if", "double", "word", "alignment", "used", "to", "be", "required", "for", "argument", "passing", "before", "PR77728", "ABI", "fix", ",", "but", "is", "not", "required", "anymore", ".", "Return", "0", "if", "double", "word", "alignment", "is", "not", "required", "and", "was", "n't", "requried", "before", "either", "."], "TS_V_token": ["arm", "0", "1", "1"], "File": "arm6", "Func": "arm_needs_doubleword_align", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44820, "Length": 120}
{"ground_truth": ["", "static", "void", "arm_option_check_internal", "(", "struct", "gcc_options", "*", "opts", ")", "{", "int", "flags", "=", "opts", "->", "x_target_flags", ";", "if", "(", "TARGET_IWMMXT", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_neon", ")", ")", "error", "(", "\"iWMMXt and NEON are incompatible\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_notm", ")", ")", "error", "(", "\"target CPU does not support ARM mode\"", ")", ";", "if", "(", "(", "TARGET_TPCS_FRAME", "||", "TARGET_TPCS_LEAF_FRAME", ")", "&&", "TARGET_ARM_P", "(", "flags", ")", ")", "warning", "(", "0", ",", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "warning", "(", "0", ",", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "write_symbols", "!=", "NO_DEBUG", "&&", "!", "TARGET_APCS_FRAME", "&&", "(", "TARGET_DEFAULT", "&", "MASK_APCS_FRAME", ")", ")", "warning", "(", "0", ",", "\"-g with -mno-apcs-frame may not give sensible debugging\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_IWMMXT", ")", "error", "(", "\"iWMMXt unsupported under Thumb mode\"", ")", ";", "if", "(", "TARGET_HARD_TP", "&&", "TARGET_THUMB1_P", "(", "flags", ")", ")", "error", "(", "\"can not use -mtp=cp15 with 16-bit Thumb\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_VXWORKS_RTP", "&&", "flag_pic", ")", "{", "error", "(", "\"RTP PIC is incompatible with Thumb\"", ")", ";", "flag_pic", "=", "0", ";", "}", "if", "(", "target_slow_flash_data", "&&", "(", "(", "!", "(", "arm_arch7", "&&", "!", "arm_arch_notm", ")", "&&", "!", "arm_arch7em", ")", "||", "(", "TARGET_THUMB1_P", "(", "flags", ")", "||", "flag_pic", "||", "TARGET_NEON", ")", ")", ")", "error", "(", "\"-mslow-flash-data only supports non-pic code on armv7-m targets\"", ")", ";", "if", "(", "target_pure_code", "&&", "(", "!", "arm_arch_thumb2", "||", "arm_arch_notm", "||", "flag_pic", "||", "TARGET_NEON", ")", ")", "error", "(", "\"-mpure-code only supports non-pic code on armv7-m targets\"", ")", ";", "}", ""], "natrual_language": ["Check", "any", "incompatible", "options", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "\"iWMMXt and NEON are incompatible\"", "\"target CPU does not support ARM mode\"", "0", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", "0", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", "0", "\"-g with -mno-apcs-frame may not give sensible debugging\"", "\"iWMMXt unsupported under Thumb mode\"", "\"can not use -mtp=cp15 with 16-bit Thumb\"", "\"RTP PIC is incompatible with Thumb\"", "0", "\"-mslow-flash-data only supports non-pic code on armv7-m targets\"", "\"-mpure-code only supports non-pic code on armv7-m targets\""], "File": "arm6", "Func": "arm_option_check_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44821, "Length": 226}
{"ground_truth": ["", "static", "void", "arm_option_override_internal", "(", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "arm_override_options_after_change_1", "(", "opts", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support THUMB instructions\"", ")", ";", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "}", "if", "(", "TARGET_APCS_FRAME", "&&", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_APCS_FRAME", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "opts", "->", "x_target_flags", "|=", "MASK_INTERWORK", ";", "cl_optimization", "*", "to", "=", "TREE_OPTIMIZATION", "(", "init_optimize", ")", ";", "if", "(", "!", "opts_set", "->", "x_arm_restrict_it", ")", "opts", "->", "x_arm_restrict_it", "=", "arm_arch8", ";", "if", "(", "!", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", "||", "!", "arm_arch_notm", ")", "opts", "->", "x_arm_restrict_it", "=", "0", ";", "if", "(", "!", "opts_set", "->", "x_unaligned_access", ")", "{", "opts", "->", "x_unaligned_access", "=", "(", "TARGET_32BIT_P", "(", "opts", "->", "x_target_flags", ")", "&&", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ";", "}", "else", "if", "(", "opts", "->", "x_unaligned_access", "==", "1", "&&", "!", "(", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support unaligned accesses\"", ")", ";", "opts", "->", "x_unaligned_access", "=", "0", ";", "}", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_schedule_insns", "=", "0", ";", "else", "opts", "->", "x_flag_schedule_insns", "=", "to", "->", "x_flag_schedule_insns", ";", "if", "(", "optimize_function_for_size_p", "(", "cfun", ")", "&&", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_shrink_wrap", "=", "false", ";", "else", "opts", "->", "x_flag_shrink_wrap", "=", "to", "->", "x_flag_shrink_wrap", ";", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_ipa_ra", "=", "0", ";", "else", "opts", "->", "x_flag_ipa_ra", "=", "to", "->", "x_flag_ipa_ra", ";", "opts", "->", "x_inline_asm_unified", "=", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ";", "SUBTARGET_OVERRIDE_INTERNAL_OPTIONS", ";", "}", ""], "natrual_language": ["Reset", "options", "between", "modes", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "0", "\"target CPU does not support THUMB instructions\"", "0", "1", "0", "\"target CPU does not support unaligned accesses\"", "0", "0", "0"], "File": "arm6", "Func": "arm_option_override_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44822, "Length": 312}
{"ground_truth": ["", "static", "void", "arm_option_print", "(", "FILE", "*", "file", ",", "int", "indent", ",", "struct", "cl_target_option", "*", "ptr", ")", "{", "int", "flags", "=", "ptr", "->", "x_target_flags", ";", "const", "char", "*", "fpu_name", ";", "fpu_name", "=", "(", "ptr", "->", "x_arm_fpu_index", "==", "TARGET_FPU_auto", "?", "\"auto\"", ":", "all_fpus", "[", "ptr", "->", "x_arm_fpu_index", "]", ".", "name", ")", ";", "fprintf", "(", "file", ",", "\"%*sselected arch %s\\n\"", ",", "indent", ",", "\"\"", ",", "TARGET_THUMB2_P", "(", "flags", ")", "?", "\"thumb2\"", ":", "TARGET_THUMB_P", "(", "flags", ")", "?", "\"thumb1\"", ":", "\"arm\"", ")", ";", "fprintf", "(", "file", ",", "\"%*sselected fpu %s\\n\"", ",", "indent", ",", "\"\"", ",", "fpu_name", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_OPTION_PRINT", "."], "TS_V_token": ["arm", "\"auto\"", "\"%*sselected arch %s\\n\"", "\"\"", "\"thumb2\"", "\"thumb1\"", "\"arm\"", "\"%*sselected fpu %s\\n\"", "\"\""], "File": "arm6", "Func": "arm_option_print", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44823, "Length": 91}
{"ground_truth": ["", "static", "void", "arm_option_restore", "(", "struct", "gcc_options", "*", ",", "struct", "cl_target_option", "*", "ptr", ")", "{", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "ptr", ",", "&", "global_options_set", ",", "false", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_OPTION_RESTORE", "."], "TS_V_token": ["arm"], "File": "arm6", "Func": "arm_option_restore", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44824, "Length": 28}
{"ground_truth": ["", "static", "void", "arm_output_function_prologue", "(", "FILE", "*", "f", ",", "HOST_WIDE_INT", "frame_size", ")", "{", "unsigned", "long", "func_type", ";", "gcc_assert", "(", "!", "arm_ccfsm_state", "&&", "!", "arm_target_insn", ")", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "switch", "(", "(", "int", ")", "ARM_FUNC_TYPE", "(", "func_type", ")", ")", "{", "default", ":", "case", "ARM_FT_NORMAL", ":", "break", ";", "case", "ARM_FT_INTERWORKED", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Function supports interworking.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_ISR", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_FIQ", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_EXCEPTION", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ ARM Exception Handler.\\n\"", ")", ";", "break", ";", "}", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", ")", ";", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Volatile: function does not return.\\n\"", ")", ";", "if", "(", "IS_NESTED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Nested: function declared inside another function.\\n\"", ")", ";", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Stack Align: May be called with mis-aligned SP.\\n\"", ")", ";", "if", "(", "IS_CMSE_ENTRY", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Non-secure entry function: called from non-secure code.\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ args = %d, pretend = %d, frame = %wd\\n\"", ",", "crtl", "->", "args", ".", "size", ",", "crtl", "->", "args", ".", "pretend_args_size", ",", "frame_size", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", ",", "frame_pointer_needed", ",", "cfun", "->", "machine", "->", "uses_anonymous_args", ")", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ link register save eliminated.\\n\"", ")", ";", "if", "(", "crtl", "->", "calls_eh_return", ")", "asm_fprintf", "(", "f", ",", "\"\\t@ Calls __builtin_eh_return.\\n\"", ")", ";", "}", ""], "natrual_language": ["Place", "some", "comments", "into", "the", "assembler", "stream", "describing", "the", "current", "function", "."], "TS_V_token": ["arm", "\"\\t%@ Function supports interworking.\\n\"", "\"\\t%@ Interrupt Service Routine.\\n\"", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", "\"\\t%@ ARM Exception Handler.\\n\"", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", "\"\\t%@ Volatile: function does not return.\\n\"", "\"\\t%@ Nested: function declared inside another function.\\n\"", "\"\\t%@ Stack Align: May be called with mis-aligned SP.\\n\"", "\"\\t%@ Non-secure entry function: called from non-secure code.\\n\"", "\"\\t%@ args = %d, pretend = %d, frame = %wd\\n\"", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", "\"\\t%@ link register save eliminated.\\n\"", "\"\\t@ Calls __builtin_eh_return.\\n\""], "File": "arm6", "Func": "arm_output_function_prologue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44825, "Length": 233}
{"ground_truth": ["", "static", "void", "arm_output_mi_thunk", "(", "FILE", "*", "file", ",", "tree", "thunk", ",", "HOST_WIDE_INT", "delta", ",", "HOST_WIDE_INT", "vcall_offset", ",", "tree", "function", ")", "{", "if", "(", "TARGET_32BIT", ")", "arm32_output_mi_thunk", "(", "file", ",", "thunk", ",", "delta", ",", "vcall_offset", ",", "function", ")", ";", "else", "arm_thumb1_mi_thunk", "(", "file", ",", "thunk", ",", "delta", ",", "vcall_offset", ",", "function", ")", ";", "}", ""], "natrual_language": ["Output", "code", "to", "add", "DELTA", "to", "the", "first", "argument", ",", "and", "then", "jump", "to", "FUNCTION", ".", "Used", "for", "C++", "multiple", "inheritance", "."], "TS_V_token": ["arm"], "File": "arm6", "Func": "arm_output_mi_thunk", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44826, "Length": 53}
{"ground_truth": ["", "static", "rtx_insn", "*", "arm_pic_static_addr", "(", "rtx", "orig", ",", "rtx", "reg", ")", "{", "rtx", "l1", ",", "labelno", ",", "offset_rtx", ";", "gcc_assert", "(", "flag_pic", ")", ";", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "offset_rtx", "=", "plus_constant", "(", "Pmode", ",", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "offset_rtx", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "orig", ",", "offset_rtx", ")", ",", "UNSPEC_SYMBOL_OFFSET", ")", ";", "offset_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "offset_rtx", ")", ";", "return", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "reg", ",", "offset_rtx", ",", "labelno", ")", ")", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "address", "of", "a", "static", "var", "when", "flag_pic", "is", "set", "."], "TS_V_token": ["arm", "1", "8", "4", "2"], "File": "arm6", "Func": "arm_pic_static_addr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44827, "Length": 113}
{"ground_truth": ["", "void", "arm_print_tune_info", "(", "void", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\"", "ASM_COMMENT_START", "\".tune parameters\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"constant_limit:\\t%d\\n\"", ",", "current_tune", "->", "constant_limit", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"max_insns_skipped:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_skipped", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefetch.num_slots:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "num_slots", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefetch.l1_cache_size:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "l1_cache_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefetch.l1_cache_line_size:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "l1_cache_line_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefer_constant_pool:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_constant_pool", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"branch_cost:\\t(s:speed, p:predictable)\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\ts&p\\tcost\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t00\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t01\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t10\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t11\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefer_ldrd_strd:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_ldrd_strd", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"logical_op_non_short_circuit:\\t[%d,%d]\\n\"", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit_thumb", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit_arm", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefer_neon_for_64bits:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_neon_for_64bits", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"disparage_flag_setting_t16_encodings:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "disparage_flag_setting_t16_encodings", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"string_ops_prefer_neon:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "string_ops_prefer_neon", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"max_insns_inline_memset:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_inline_memset", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"fusible_ops:\\t%u\\n\"", ",", "current_tune", "->", "fusible_ops", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"sched_autopref:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "sched_autopref", ")", ";", "}", ""], "natrual_language": ["This", "function", "is", "used", "to", "print", "CPU", "tuning", "information", "as", "comment", "in", "assembler", "file", ".", "Pointers", "are", "not", "printed", "for", "now", "."], "TS_V_token": ["arm", "\"\\t\"", "\".tune parameters\\n\"", "\"\\t\\t\"", "\"constant_limit:\\t%d\\n\"", "\"\\t\\t\"", "\"max_insns_skipped:\\t%d\\n\"", "\"\\t\\t\"", "\"prefetch.num_slots:\\t%d\\n\"", "\"\\t\\t\"", "\"prefetch.l1_cache_size:\\t%d\\n\"", "\"\\t\\t\"", "\"prefetch.l1_cache_line_size:\\t%d\\n\"", "\"\\t\\t\"", "\"prefer_constant_pool:\\t%d\\n\"", "\"\\t\\t\"", "\"branch_cost:\\t(s:speed, p:predictable)\\n\"", "\"\\t\\t\"", "\"\\t\\ts&p\\tcost\\n\"", "\"\\t\\t\"", "\"\\t\\t00\\t%d\\n\"", "\"\\t\\t\"", "\"\\t\\t01\\t%d\\n\"", "\"\\t\\t\"", "\"\\t\\t10\\t%d\\n\"", "\"\\t\\t\"", "\"\\t\\t11\\t%d\\n\"", "\"\\t\\t\"", "\"prefer_ldrd_strd:\\t%d\\n\"", "\"\\t\\t\"", "\"logical_op_non_short_circuit:\\t[%d,%d]\\n\"", "\"\\t\\t\"", "\"prefer_neon_for_64bits:\\t%d\\n\"", "\"\\t\\t\"", "\"disparage_flag_setting_t16_encodings:\\t%d\\n\"", "\"\\t\\t\"", "\"string_ops_prefer_neon:\\t%d\\n\"", "\"\\t\\t\"", "\"max_insns_inline_memset:\\t%d\\n\"", "\"\\t\\t\"", "\"fusible_ops:\\t%u\\n\"", "\"\\t\\t\"", "\"sched_autopref:\\t%d\\n\""], "File": "arm6", "Func": "arm_print_tune_info", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44828, "Length": 322}
{"ground_truth": ["", "static", "bool", "arm_rtx_costs", "(", "rtx", "x", ",", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "int", "outer_code", ",", "int", "opno", "ATTRIBUTE_UNUSED", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "bool", "result", ";", "int", "code", "=", "GET_CODE", "(", "x", ")", ";", "gcc_assert", "(", "current_tune", "->", "insn_extra_cost", ")", ";", "result", "=", "arm_rtx_costs_internal", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "current_tune", "->", "insn_extra_cost", ",", "total", ",", "speed", ")", ";", "if", "(", "dump_file", "&&", "(", "dump_flags", "&", "TDF_DETAILS", ")", ")", "{", "print_rtl_single", "(", "dump_file", ",", "x", ")", ";", "fprintf", "(", "dump_file", ",", "\"\\n%s cost: %d (%s)\\n\"", ",", "speed", "?", "\"Hot\"", ":", "\"Cold\"", ",", "*", "total", ",", "result", "?", "\"final\"", ":", "\"partial\"", ")", ";", "}", "return", "result", ";", "}", ""], "natrual_language": ["RTX", "costs", "when", "optimizing", "for", "size", "."], "TS_V_token": ["arm", "\"\\n%s cost: %d (%s)\\n\"", "\"Hot\"", "\"Cold\"", "\"final\"", "\"partial\""], "File": "arm6", "Func": "arm_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44829, "Length": 116}
{"ground_truth": ["", "static", "int", "arm_save_coproc_regs", "(", "void", ")", "{", "int", "saved_size", "=", "0", ";", "unsigned", "reg", ";", "unsigned", "start_reg", ";", "rtx", "insn", ";", "for", "(", "reg", "=", "LAST_IWMMXT_REGNUM", ";", "reg", ">=", "FIRST_IWMMXT_REGNUM", ";", "reg", "--", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "!", "call_used_regs", "[", "reg", "]", ")", "{", "insn", "=", "gen_rtx_PRE_DEC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ";", "insn", "=", "gen_rtx_MEM", "(", "V2SImode", ",", "insn", ")", ";", "insn", "=", "emit_set_insn", "(", "insn", ",", "gen_rtx_REG", "(", "V2SImode", ",", "reg", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "saved_size", "+=", "8", ";", "}", "if", "(", "TARGET_HARD_FLOAT", ")", "{", "start_reg", "=", "FIRST_VFP_REGNUM", ";", "for", "(", "reg", "=", "FIRST_VFP_REGNUM", ";", "reg", "<", "LAST_VFP_REGNUM", ";", "reg", "+=", "2", ")", "{", "if", "(", "(", "!", "df_regs_ever_live_p", "(", "reg", ")", "||", "call_used_regs", "[", "reg", "]", ")", "&&", "(", "!", "df_regs_ever_live_p", "(", "reg", "+", "1", ")", "||", "call_used_regs", "[", "reg", "+", "1", "]", ")", ")", "{", "if", "(", "start_reg", "!=", "reg", ")", "saved_size", "+=", "vfp_emit_fstmd", "(", "start_reg", ",", "(", "reg", "-", "start_reg", ")", "/", "2", ")", ";", "start_reg", "=", "reg", "+", "2", ";", "}", "}", "if", "(", "start_reg", "!=", "reg", ")", "saved_size", "+=", "vfp_emit_fstmd", "(", "start_reg", ",", "(", "reg", "-", "start_reg", ")", "/", "2", ")", ";", "}", "return", "saved_size", ";", "}", ""], "natrual_language": ["Emit", "RTL", "to", "save", "coprocessor", "registers", "on", "function", "entry", ".", "Returns", "the", "number", "of", "bytes", "pushed", "."], "TS_V_token": ["arm", "0", "1", "8", "2", "1", "1", "2", "2", "2"], "File": "arm6", "Func": "arm_save_coproc_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44830, "Length": 204}
{"ground_truth": ["", "static", "void", "arm_setup_incoming_varargs", "(", "cumulative_args_t", "pcum_v", ",", "machine_mode", "mode", ",", "tree", "type", ",", "int", "*", "pretend_size", ",", "int", "second_time", "ATTRIBUTE_UNUSED", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "cfun", "->", "machine", "->", "uses_anonymous_args", "=", "1", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "nregs", "=", "pcum", "->", "aapcs_ncrn", ";", "if", "(", "nregs", "&", "1", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", ",", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "nregs", "++", ";", "}", "}", "else", "nregs", "=", "pcum", "->", "nregs", ";", "if", "(", "nregs", "<", "NUM_ARG_REGS", ")", "*", "pretend_size", "=", "(", "NUM_ARG_REGS", "-", "nregs", ")", "*", "UNITS_PER_WORD", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_SETUP_INCOMING_VARARGS", ".", "On", "the", "ARM", ",", "PRETEND_SIZE", "is", "set", "in", "order", "to", "have", "the", "prologue", "push", "the", "last", "named", "arg", "and", "all", "anonymous", "args", "onto", "the", "stack", ".", "XXX", "I", "know", "the", "prologue", "should", "n't", "be", "pushing", "registers", ",", "but", "it", "is", "faster", "that", "way", "."], "TS_V_token": ["arm", "1", "1", "0", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", "0"], "File": "arm6", "Func": "arm_setup_incoming_varargs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44831, "Length": 129}
{"ground_truth": ["", "void", "arm_split_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "neg_bval", ";", "machine_mode", "mode", ";", "enum", "memmodel", "mod_s", ",", "mod_f", ";", "bool", "is_weak", ";", "rtx_code_label", "*", "label1", ",", "*", "label2", ";", "rtx", "x", ",", "cond", ";", "rval", "=", "operands", "[", "1", "]", ";", "mem", "=", "operands", "[", "2", "]", ";", "oldval", "=", "operands", "[", "3", "]", ";", "newval", "=", "operands", "[", "4", "]", ";", "is_weak", "=", "(", "operands", "[", "5", "]", "!=", "const0_rtx", ")", ";", "mod_s", "=", "memmodel_from_int", "(", "INTVAL", "(", "operands", "[", "6", "]", ")", ")", ";", "mod_f", "=", "memmodel_from_int", "(", "INTVAL", "(", "operands", "[", "7", "]", ")", ")", ";", "neg_bval", "=", "TARGET_THUMB1", "?", "operands", "[", "0", "]", ":", "operands", "[", "8", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "bool", "is_armv8_sync", "=", "arm_arch8", "&&", "is_mm_sync", "(", "mod_s", ")", ";", "bool", "use_acquire", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "is_mm_relaxed", "(", "mod_s", ")", "||", "is_mm_consume", "(", "mod_s", ")", "||", "is_mm_release", "(", "mod_s", ")", ")", ";", "bool", "use_release", "=", "TARGET_HAVE_LDACQ", "&&", "!", "(", "is_mm_relaxed", "(", "mod_s", ")", "||", "is_mm_consume", "(", "mod_s", ")", "||", "is_mm_acquire", "(", "mod_s", ")", ")", ";", "if", "(", "is_armv8_sync", ")", "use_acquire", "=", "false", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_pre_atomic_barrier", "(", "mod_s", ")", ";", "label1", "=", "NULL", ";", "if", "(", "!", "is_weak", ")", "{", "label1", "=", "gen_label_rtx", "(", ")", ";", "emit_label", "(", "label1", ")", ";", "}", "label2", "=", "gen_label_rtx", "(", ")", ";", "arm_emit_load_exclusive", "(", "mode", ",", "rval", ",", "mem", ",", "use_acquire", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "cond", "=", "arm_gen_compare_reg", "(", "NE", ",", "rval", ",", "oldval", ",", "neg_bval", ")", ";", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "x", "=", "gen_rtx_IF_THEN_ELSE", "(", "VOIDmode", ",", "x", ",", "gen_rtx_LABEL_REF", "(", "Pmode", ",", "label2", ")", ",", "pc_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_rtx_SET", "(", "pc_rtx", ",", "x", ")", ")", ";", "}", "else", "{", "emit_move_insn", "(", "neg_bval", ",", "const1_rtx", ")", ";", "cond", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "rval", ",", "oldval", ")", ";", "if", "(", "thumb1_cmpneg_operand", "(", "oldval", ",", "SImode", ")", ")", "emit_unlikely_jump", "(", "gen_cbranchsi4_scratch", "(", "neg_bval", ",", "rval", ",", "oldval", ",", "label2", ",", "cond", ")", ")", ";", "else", "emit_unlikely_jump", "(", "gen_cbranchsi4_insn", "(", "cond", ",", "rval", ",", "oldval", ",", "label2", ")", ")", ";", "}", "arm_emit_store_exclusive", "(", "mode", ",", "neg_bval", ",", "mem", ",", "newval", ",", "use_release", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "cond", "=", "gen_rtx_REG", "(", "CCmode", ",", "CC_REGNUM", ")", ";", "x", "=", "gen_rtx_COMPARE", "(", "CCmode", ",", "neg_bval", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "cond", ",", "x", ")", ")", ";", "}", "if", "(", "!", "is_weak", ")", "{", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "neg_bval", ",", "const0_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_cbranchsi4", "(", "x", ",", "neg_bval", ",", "const0_rtx", ",", "label1", ")", ")", ";", "}", "if", "(", "!", "is_mm_relaxed", "(", "mod_f", ")", ")", "emit_label", "(", "label2", ")", ";", "if", "(", "is_armv8_sync", "||", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_post_atomic_barrier", "(", "mod_s", ")", ";", "if", "(", "is_mm_relaxed", "(", "mod_f", ")", ")", "emit_label", "(", "label2", ")", ";", "}", ""], "natrual_language": ["Split", "a", "compare", "and", "swap", "pattern", ".", "It", "is", "IMPLEMENTATION", "DEFINED", "whether", "another", "memory", "store", "between", "the", "load-exclusive", "and", "store-exclusive", "can", "reset", "the", "monitor", "from", "Exclusive", "to", "Open", "state", ".", "This", "means", "we", "must", "wait", "until", "after", "reload", "to", "split", "the", "pattern", ",", "lest", "we", "get", "a", "register", "spill", "in", "the", "middle", "of", "the", "atomic", "sequence", "."], "TS_V_token": ["arm", "1", "2", "3", "4", "5", "6", "7", "0", "8"], "File": "arm6", "Func": "arm_split_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44832, "Length": 489}
{"ground_truth": ["", "bool", "arm_validize_comparison", "(", "rtx", "*", "comparison", ",", "rtx", "*", "op1", ",", "rtx", "*", "op2", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "*", "comparison", ")", ";", "int", "code_int", ";", "machine_mode", "mode", "=", "(", "GET_MODE", "(", "*", "op1", ")", "==", "VOIDmode", ")", "?", "GET_MODE", "(", "*", "op2", ")", ":", "GET_MODE", "(", "*", "op1", ")", ";", "gcc_assert", "(", "GET_MODE", "(", "*", "op1", ")", "!=", "VOIDmode", "||", "GET_MODE", "(", "*", "op2", ")", "!=", "VOIDmode", ")", ";", "if", "(", "code", "==", "UNEQ", "||", "code", "==", "LTGT", ")", "return", "false", ";", "code_int", "=", "(", "int", ")", "code", ";", "arm_canonicalize_comparison", "(", "&", "code_int", ",", "op1", ",", "op2", ",", "0", ")", ";", "PUT_CODE", "(", "*", "comparison", ",", "(", "enum", "rtx_code", ")", "code_int", ")", ";", "switch", "(", "mode", ")", "{", "case", "SImode", ":", "if", "(", "!", "arm_add_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "arm_add_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "case", "DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "cmpdi_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "case", "HFmode", ":", "if", "(", "!", "TARGET_VFP_FP16INST", ")", "break", ";", "mode", "=", "SFmode", ";", "*", "op1", "=", "convert_to_mode", "(", "mode", ",", "*", "op1", ",", "1", ")", ";", "*", "op2", "=", "convert_to_mode", "(", "mode", ",", "*", "op2", ",", "1", ")", ";", "case", "SFmode", ":", "case", "DFmode", ":", "if", "(", "!", "vfp_compare_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "vfp_compare_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "default", ":", "break", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "a", "valid", "comparison", "operation", "and", "makes", "the", "operands", "in", "a", "form", "that", "is", "valid", "."], "TS_V_token": ["arm", "0", "1", "1"], "File": "arm6", "Func": "arm_validize_comparison", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44833, "Length": 324}
{"ground_truth": ["", "static", "bool", "arm_valid_target_attribute_rec", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ")", "{", "if", "(", "TREE_CODE", "(", "args", ")", "==", "TREE_LIST", ")", "{", "bool", "ret", "=", "true", ";", "for", "(", ";", "args", ";", "args", "=", "TREE_CHAIN", "(", "args", ")", ")", "if", "(", "TREE_VALUE", "(", "args", ")", "&&", "!", "arm_valid_target_attribute_rec", "(", "TREE_VALUE", "(", "args", ")", ",", "opts", ")", ")", "ret", "=", "false", ";", "return", "ret", ";", "}", "else", "if", "(", "TREE_CODE", "(", "args", ")", "!=", "STRING_CST", ")", "{", "error", "(", "\"attribute % argument not a string\"", ")", ";", "return", "false", ";", "}", "char", "*", "argstr", "=", "ASTRDUP", "(", "TREE_STRING_POINTER", "(", "args", ")", ")", ";", "char", "*", "q", ";", "while", "(", "(", "q", "=", "strtok", "(", "argstr", ",", "\",\"", ")", ")", "!=", "NULL", ")", "{", "while", "(", "ISSPACE", "(", "*", "q", ")", ")", "++", "q", ";", "argstr", "=", "NULL", ";", "if", "(", "!", "strncmp", "(", "q", ",", "\"thumb\"", ",", "5", ")", ")", "opts", "->", "x_target_flags", "|=", "MASK_THUMB", ";", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"arm\"", ",", "3", ")", ")", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"fpu=\"", ",", "4", ")", ")", "{", "int", "fpu_index", ";", "if", "(", "!", "opt_enum_arg_to_value", "(", "OPT_mfpu_", ",", "q", "+", "4", ",", "&", "fpu_index", ",", "CL_TARGET", ")", ")", "{", "error", "(", "\"invalid fpu for attribute(target(\\\"%s\\\"))\"", ",", "q", ")", ";", "return", "false", ";", "}", "if", "(", "fpu_index", "==", "TARGET_FPU_auto", ")", "{", "sorry", "(", "\"auto fpu selection not currently permitted here\"", ")", ";", "return", "false", ";", "}", "opts", "->", "x_arm_fpu_index", "=", "(", "enum", "fpu_type", ")", "fpu_index", ";", "}", "else", "{", "error", "(", "\"attribute(target(\\\"%s\\\")) is unknown\"", ",", "q", ")", ";", "return", "false", ";", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Inner", "function", "to", "process", "the", "attribute", "(", "(", "target", "(", "...", ")", ")", ")", ",", "take", "an", "argument", "and", "set", "the", "current", "options", "from", "the", "argument", ".", "If", "we", "have", "a", "list", ",", "recursively", "go", "over", "the", "list", "."], "TS_V_token": ["arm", "\"attribute % argument not a string\"", "\",\"", "\"thumb\"", "5", "\"arm\"", "3", "\"fpu=\"", "4", "4", "\"invalid fpu for attribute(target(\\\"%s\\\"))\"", "\"auto fpu selection not currently permitted here\"", "\"attribute(target(\\\"%s\\\")) is unknown\""], "File": "arm6", "Func": "arm_valid_target_attribute_rec", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44834, "Length": 262}
{"ground_truth": ["", "tree", "arm_valid_target_attribute_tree", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "struct", "cl_target_option", "cl_opts", ";", "if", "(", "!", "arm_valid_target_attribute_rec", "(", "args", ",", "opts", ")", ")", "return", "NULL_TREE", ";", "cl_target_option_save", "(", "&", "cl_opts", ",", "opts", ")", ";", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "&", "cl_opts", ",", "opts_set", ",", "false", ")", ";", "arm_option_check_internal", "(", "opts", ")", ";", "arm_option_override_internal", "(", "opts", ",", "opts_set", ")", ";", "return", "build_target_option_node", "(", "opts", ")", ";", "}", ""], "natrual_language": ["Return", "a", "TARGET_OPTION_NODE", "tree", "of", "the", "target", "options", "listed", "or", "NULL", "."], "TS_V_token": ["arm"], "File": "arm6", "Func": "arm_valid_target_attribute_tree", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44835, "Length": 74}
{"ground_truth": ["", "static", "bool", "cmse_func_args_or_return_in_stack", "(", "tree", "fndecl", ",", "tree", "name", ",", "tree", "fntype", ")", "{", "function_args_iterator", "args_iter", ";", "CUMULATIVE_ARGS", "args_so_far_v", ";", "cumulative_args_t", "args_so_far", ";", "bool", "first_param", "=", "true", ";", "tree", "arg_type", ",", "prev_arg_type", "=", "NULL_TREE", ",", "ret_type", ";", "arm_init_cumulative_args", "(", "&", "args_so_far_v", ",", "fntype", ",", "NULL_RTX", ",", "fndecl", ")", ";", "args_so_far", "=", "pack_cumulative_args", "(", "&", "args_so_far_v", ")", ";", "FOREACH_FUNCTION_ARGS", "(", "fntype", ",", "arg_type", ",", "args_iter", ")", "{", "rtx", "arg_rtx", ";", "machine_mode", "arg_mode", "=", "TYPE_MODE", "(", "arg_type", ")", ";", "prev_arg_type", "=", "arg_type", ";", "if", "(", "VOID_TYPE_P", "(", "arg_type", ")", ")", "continue", ";", "if", "(", "!", "first_param", ")", "arm_function_arg_advance", "(", "args_so_far", ",", "arg_mode", ",", "arg_type", ",", "true", ")", ";", "arg_rtx", "=", "arm_function_arg", "(", "args_so_far", ",", "arg_mode", ",", "arg_type", ",", "true", ")", ";", "if", "(", "!", "arg_rtx", "||", "arm_arg_partial_bytes", "(", "args_so_far", ",", "arg_mode", ",", "arg_type", ",", "true", ")", ")", "{", "error", "(", "\"%qE attribute not available to functions with arguments \"", "\"passed on the stack\"", ",", "name", ")", ";", "return", "true", ";", "}", "first_param", "=", "false", ";", "}", "if", "(", "prev_arg_type", "!=", "NULL_TREE", "&&", "!", "VOID_TYPE_P", "(", "prev_arg_type", ")", ")", "{", "error", "(", "\"%qE attribute not available to functions with variable number \"", "\"of arguments\"", ",", "name", ")", ";", "return", "true", ";", "}", "ret_type", "=", "TREE_TYPE", "(", "fntype", ")", ";", "if", "(", "arm_return_in_memory", "(", "ret_type", ",", "fntype", ")", ")", "{", "error", "(", "\"%qE attribute not available to functions that return value on \"", "\"the stack\"", ",", "name", ")", ";", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "function", "returns", "true", "if", "a", "function", "with", "declaration", "FNDECL", "and", "type", "FNTYPE", "uses", "the", "stack", "to", "pass", "arguments", "or", "return", "variables", "and", "false", "otherwise", ".", "This", "is", "used", "for", "functions", "with", "the", "attributes", "'cmse_nonsecure_call", "'", "or", "'cmse_nonsecure_entry", "'", "and", "this", "function", "will", "issue", "diagnostic", "messages", "if", "the", "stack", "is", "used", ".", "NAME", "is", "the", "name", "of", "the", "attribute", "used", "."], "TS_V_token": ["arm", "\"%qE attribute not available to functions with arguments \"", "\"passed on the stack\"", "\"%qE attribute not available to functions with variable number \"", "\"of arguments\"", "\"%qE attribute not available to functions that return value on \"", "\"the stack\""], "File": "arm6", "Func": "cmse_func_args_or_return_in_stack", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44836, "Length": 211}
{"ground_truth": ["", "static", "void", "emit_unlikely_jump", "(", "rtx", "insn", ")", "{", "int", "very_unlikely", "=", "REG_BR_PROB_BASE", "/", "100", "-", "1", ";", "rtx_insn", "*", "jump", "=", "emit_jump_insn", "(", "insn", ")", ";", "add_int_reg_note", "(", "jump", ",", "REG_BR_PROB", ",", "very_unlikely", ")", ";", "}", ""], "natrual_language": ["Mark", "the", "previous", "jump", "instruction", "as", "unlikely", "."], "TS_V_token": ["arm", "100", "1"], "File": "arm6", "Func": "emit_unlikely_jump", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44837, "Length": 36}
{"ground_truth": ["", "rtx", "legitimize_tls_address", "(", "rtx", "x", ",", "rtx", "reg", ")", "{", "rtx", "dest", ",", "tp", ",", "label", ",", "labelno", ",", "sum", ",", "ret", ",", "eqv", ",", "addend", ";", "rtx_insn", "*", "insns", ";", "unsigned", "int", "model", "=", "SYMBOL_REF_TLS_MODEL", "(", "x", ")", ";", "switch", "(", "model", ")", "{", "case", "TLS_MODEL_GLOBAL_DYNAMIC", ":", "if", "(", "TARGET_GNU2_TLS", ")", "{", "reg", "=", "arm_tls_descseq_addr", "(", "x", ",", "reg", ")", ";", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "dest", "=", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "}", "else", "{", "insns", "=", "arm_call_tls_get_addr", "(", "x", ",", "reg", ",", "&", "ret", ",", "TLS_GD32", ")", ";", "dest", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "emit_libcall_block", "(", "insns", ",", "dest", ",", "ret", ",", "x", ")", ";", "}", "return", "dest", ";", "case", "TLS_MODEL_LOCAL_DYNAMIC", ":", "if", "(", "TARGET_GNU2_TLS", ")", "{", "reg", "=", "arm_tls_descseq_addr", "(", "x", ",", "reg", ")", ";", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "dest", "=", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "}", "else", "{", "insns", "=", "arm_call_tls_get_addr", "(", "x", ",", "reg", ",", "&", "ret", ",", "TLS_LDM32", ")", ";", "eqv", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "const1_rtx", ")", ",", "UNSPEC_TLS", ")", ";", "dest", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "emit_libcall_block", "(", "insns", ",", "dest", ",", "ret", ",", "eqv", ")", ";", "addend", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "GEN_INT", "(", "TLS_LDO32", ")", ")", ",", "UNSPEC_TLS", ")", ";", "addend", "=", "force_reg", "(", "SImode", ",", "gen_rtx_CONST", "(", "SImode", ",", "addend", ")", ")", ";", "dest", "=", "gen_rtx_PLUS", "(", "Pmode", ",", "dest", ",", "addend", ")", ";", "}", "return", "dest", ";", "case", "TLS_MODEL_INITIAL_EXEC", ":", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "label", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "label", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "label", ")", ";", "sum", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "4", ",", "x", ",", "GEN_INT", "(", "TLS_IE32", ")", ",", "label", ",", "GEN_INT", "(", "TARGET_ARM", "?", "8", ":", "4", ")", ")", ",", "UNSPEC_TLS", ")", ";", "reg", "=", "load_tls_operand", "(", "sum", ",", "reg", ")", ";", "if", "(", "TARGET_ARM", ")", "emit_insn", "(", "gen_tls_load_dot_plus_eight", "(", "reg", ",", "reg", ",", "labelno", ")", ")", ";", "else", "if", "(", "TARGET_THUMB2", ")", "emit_insn", "(", "gen_tls_load_dot_plus_four", "(", "reg", ",", "NULL", ",", "reg", ",", "labelno", ")", ")", ";", "else", "{", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "reg", ",", "reg", ",", "labelno", ")", ")", ";", "emit_move_insn", "(", "reg", ",", "gen_const_mem", "(", "SImode", ",", "reg", ")", ")", ";", "}", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "case", "TLS_MODEL_LOCAL_EXEC", ":", "tp", "=", "arm_load_tp", "(", "NULL_RTX", ")", ";", "reg", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "GEN_INT", "(", "TLS_LE32", ")", ")", ",", "UNSPEC_TLS", ")", ";", "reg", "=", "force_reg", "(", "SImode", ",", "gen_rtx_CONST", "(", "SImode", ",", "reg", ")", ")", ";", "return", "gen_rtx_PLUS", "(", "Pmode", ",", "tp", ",", "reg", ")", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["ADDR", "contains", "a", "thread-local", "SYMBOL_REF", ".", "Generate", "code", "to", "compute", "this", "(", "thread-local", ")", "address", "."], "TS_V_token": ["arm", "1", "2", "1", "4", "8", "4", "2"], "File": "arm6", "Func": "legitimize_tls_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44838, "Length": 474}
{"ground_truth": ["", "static", "unsigned", "long", "thumb1_compute_save_reg_mask", "(", "void", ")", "{", "unsigned", "long", "mask", ";", "unsigned", "reg", ";", "mask", "=", "0", ";", "for", "(", "reg", "=", "0", ";", "reg", "<", "12", ";", "reg", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "if", "(", "frame_pointer_needed", ")", "mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "crtl", "->", "uses_pic_offset_table", ")", "mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "if", "(", "!", "frame_pointer_needed", "&&", "CALLER_INTERWORKING_SLOT_SIZE", ">", "0", ")", "mask", "|=", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "mask", "&", "0xff", "||", "thumb_force_lr_save", "(", ")", ")", "mask", "|=", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "(", "mask", "&", "0xff", ")", "==", "0", "&&", "(", "(", "mask", "&", "0x0f00", ")", "||", "TARGET_BACKTRACE", ")", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "LAST_LO_REGNUM", ")", ";", "if", "(", "reg", "*", "UNITS_PER_WORD", "<=", "(", "unsigned", ")", "arm_size_return_regs", "(", ")", ")", "reg", "=", "LAST_LO_REGNUM", ";", "if", "(", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "}", "if", "(", "(", "CALLER_INTERWORKING_SLOT_SIZE", "+", "ROUND_UP_WORD", "(", "get_frame_size", "(", ")", ")", "+", "crtl", "->", "outgoing_args_size", ")", ">=", "504", ")", "{", "for", "(", "reg", "=", "LAST_ARG_REGNUM", "+", "1", ";", "reg", "<=", "LAST_LO_REGNUM", ";", "reg", "++", ")", "if", "(", "mask", "&", "(", "1", "<<", "reg", ")", ")", "break", ";", "if", "(", "reg", ">", "LAST_LO_REGNUM", ")", "{", "mask", "|=", "1", "<<", "LAST_LO_REGNUM", ";", "}", "}", "return", "mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "0", "12", "1", "1", "1", "0", "1", "0xff", "1", "0xff", "0", "0x0f00", "1", "1", "504", "1", "1", "1"], "File": "arm6", "Func": "thumb1_compute_save_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44839, "Length": 241}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_address_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", ";", "if", "(", "!", "CONST_INT_P", "(", "addend", ")", ")", "return", "0", ";", "offset", "=", "INTVAL", "(", "addend", ")", ";", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "return", "(", "offset", ">", "-", "256", "&&", "offset", "<", "256", ")", ";", "return", "(", "use_ldrd", "&&", "offset", ">", "-", "1024", "&&", "offset", "<", "1024", "&&", "(", "offset", "&", "3", ")", "==", "0", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "(", "thumb2_legitimate_index_p", "(", "mode", ",", "xop1", ",", "strict_p", ")", "||", "(", "!", "strict_p", "&&", "will_be_in_index_register", "(", "xop1", ")", ")", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "thumb2_legitimate_index_p", "(", "mode", ",", "xop0", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "arm_disable_literal_pool", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", ")", "return", "0", ";", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "Thumb-2", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "256", "256", "1024", "1024", "3", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "0"], "File": "arm6", "Func": "thumb2_legitimate_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44840, "Length": 468}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_index_p", "(", "machine_mode", "mode", ",", "rtx", "index", ",", "int", "strict_p", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "index", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "(", "mode", "==", "SFmode", "||", "mode", "==", "DFmode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ")", "{", "if", "(", "!", "TARGET_LDRD", "||", "mode", "!=", "DImode", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "}", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_QREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1016", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_DREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "index", ",", "strict_p", ")", "&&", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", "return", "1", ";", "if", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", "{", "if", "(", "code", "==", "CONST_INT", ")", "{", "HOST_WIDE_INT", "val", "=", "INTVAL", "(", "index", ")", ";", "return", "val", ">", "-", "256", "&&", "val", "<", "256", "&&", "(", "val", "&", "3", ")", "==", "0", ";", "}", "else", "return", "0", ";", "}", "if", "(", "code", "==", "MULT", ")", "{", "rtx", "xiop0", "=", "XEXP", "(", "index", ",", "0", ")", ";", "rtx", "xiop1", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xiop0", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop1", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xiop1", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop0", ")", ")", ")", ";", "}", "else", "if", "(", "code", "==", "ASHIFT", ")", "{", "rtx", "op", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "XEXP", "(", "index", ",", "0", ")", ",", "strict_p", ")", "&&", "CONST_INT_P", "(", "op", ")", "&&", "INTVAL", "(", "op", ")", ">", "0", "&&", "INTVAL", "(", "op", ")", "<=", "3", ")", ";", "}", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "4096", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "INDEX", "is", "a", "valid", "Thumb-2", "address", "index", "operand", "."], "TS_V_token": ["arm", "1024", "256", "3", "0", "1024", "1024", "3", "0", "1016", "1024", "3", "0", "1024", "1024", "3", "0", "4", "1", "256", "256", "3", "0", "0", "0", "1", "1", "0", "0", "3", "4096", "256"], "File": "arm6", "Func": "thumb2_legitimate_index_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44841, "Length": 413}
{"ground_truth": ["", "static", "void", "thumb_pop", "(", "FILE", "*", "f", ",", "unsigned", "long", "mask", ")", "{", "int", "regno", ";", "int", "lo_mask", "=", "mask", "&", "0xFF", ";", "int", "pushed_words", "=", "0", ";", "gcc_assert", "(", "mask", ")", ";", "if", "(", "lo_mask", "==", "0", "&&", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", ")", "{", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "fprintf", "(", "f", ",", "\"\\tpop\\t{\"", ")", ";", "for", "(", "regno", "=", "0", ";", "regno", "<=", "LAST_LO_REGNUM", ";", "regno", "++", ",", "lo_mask", ">>=", "1", ")", "{", "if", "(", "lo_mask", "&", "1", ")", "{", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "regno", ")", ";", "if", "(", "(", "lo_mask", "&", "~", "1", ")", "!=", "0", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "pushed_words", "++", ";", "}", "}", "if", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", "{", "if", "(", "TARGET_INTERWORK", "||", "TARGET_BACKTRACE", "||", "crtl", "->", "calls_eh_return", "||", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", "{", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "else", "{", "if", "(", "mask", "&", "0xFF", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "PC_REGNUM", ")", ";", "}", "}", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "}", ""], "natrual_language": ["Emit", "code", "to", "push", "or", "pop", "registers", "to", "or", "from", "the", "stack", ".", "F", "is", "the", "assembly", "file", ".", "MASK", "is", "the", "registers", "to", "pop", "."], "TS_V_token": ["arm", "0xFF", "0", "0", "1", "1", "\"\\tpop\\t{\"", "0", "1", "1", "\"%r\"", "1", "0", "\", \"", "1", "\"}\\n\"", "1", "0xFF", "\", \"", "\"%r\"", "\"}\\n\""], "File": "arm6", "Func": "thumb_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44842, "Length": 206}
{"ground_truth": ["", "int", "use_return_insn", "(", "int", "iscond", ",", "rtx", "sibling", ")", "{", "int", "regno", ";", "unsigned", "int", "func_type", ";", "unsigned", "long", "saved_int_regs", ";", "unsigned", "HOST_WIDE_INT", "stack_adjust", ";", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "func_type", "&", "(", "ARM_FT_VOLATILE", "|", "ARM_FT_NAKED", "|", "ARM_FT_STACKALIGN", ")", ")", "return", "0", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", "&&", "(", "frame_pointer_needed", "||", "TARGET_THUMB", ")", ")", "return", "0", ";", "if", "(", "TARGET_LDRD", "&&", "current_tune", "->", "prefer_ldrd_strd", "&&", "!", "optimize_function_for_size_p", "(", "cfun", ")", ")", "return", "0", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "stack_adjust", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "crtl", "->", "args", ".", "pretend_args_size", "||", "cfun", "->", "machine", "->", "uses_anonymous_args", "||", "crtl", "->", "calls_eh_return", "||", "cfun", "->", "calls_alloca", "||", "!", "(", "stack_adjust", "==", "0", "||", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "stack_adjust", "==", "4", ")", ")", "||", "(", "!", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", ")", "&&", "arm_compute_static_chain_stack_bytes", "(", ")", "!=", "0", ")", ")", "return", "0", ";", "saved_int_regs", "=", "offsets", "->", "saved_regs_mask", ";", "if", "(", "stack_adjust", "==", "4", "&&", "!", "arm_arch5", "&&", "TARGET_ARM", ")", "{", "if", "(", "!", "call_used_regs", "[", "3", "]", ")", "return", "0", ";", "if", "(", "arm_size_return_regs", "(", ")", ">=", "(", "4", "*", "UNITS_PER_WORD", ")", ")", "return", "0", ";", "if", "(", "sibling", ")", "{", "gcc_assert", "(", "CALL_P", "(", "sibling", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "sibling", ",", "USE", ",", "3", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&", "0x7", ")", "return", "0", ";", "}", "if", "(", "TARGET_INTERWORK", "&&", "saved_int_regs", "!=", "0", "&&", "!", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "iscond", "&&", "arm_tune_strongarm", ")", "{", "if", "(", "saved_int_regs", "!=", "0", "&&", "saved_int_regs", "!=", "(", "1", "<<", "LR_REGNUM", ")", ")", "return", "0", ";", "if", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&&", "IS_CMSE_ENTRY", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "saved_int_regs", "&&", "!", "(", "saved_int_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "return", "0", ";", "if", "(", "TARGET_HARD_FLOAT", ")", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<=", "LAST_VFP_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "'s", "epilogue", "can", "be", "output", "as", "RTL", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "4", "0", "0", "4", "3", "0", "4", "0", "3", "0", "0x7", "0", "0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "1"], "File": "arm6", "Func": "use_return_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44843, "Length": 404}
{"ground_truth": ["", "static", "bool", "arm_array_mode_supported_p", "(", "machine_mode", "mode", ",", "unsigned", "HOST_WIDE_INT", "nelems", ")", "{", "if", "(", "TARGET_NEON", "&&", "!", "BYTES_BIG_ENDIAN", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode", ")", ")", "&&", "(", "nelems", ">=", "2", "&&", "nelems", "<=", "4", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "array_mode_supported_p", "."], "TS_V_token": ["arm", "2", "4"], "File": "arm7", "Func": "arm_array_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44844, "Length": 48}
{"ground_truth": ["", "static", "bool", "arm_assemble_integer", "(", "rtx", "x", ",", "unsigned", "int", "size", ",", "int", "aligned_p", ")", "{", "machine_mode", "mode", ";", "if", "(", "size", "==", "UNITS_PER_WORD", "&&", "aligned_p", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "NEED_GOT_RELOC", "&&", "flag_pic", "&&", "making_const_table", "&&", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "||", "GET_CODE", "(", "x", ")", "==", "LABEL_REF", ")", ")", "{", "if", "(", "!", "arm_pic_data_is_text_relative", "||", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "&&", "(", "!", "SYMBOL_REF_LOCAL_P", "(", "x", ")", "||", "(", "SYMBOL_REF_DECL", "(", "x", ")", "?", "DECL_WEAK", "(", "SYMBOL_REF_DECL", "(", "x", ")", ")", ":", "0", ")", ")", ")", ")", "fputs", "(", "\"(GOT)\"", ",", "asm_out_file", ")", ";", "else", "fputs", "(", "\"(GOTOFF)\"", ",", "asm_out_file", ")", ";", "}", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "true", ";", "}", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "arm_vector_mode_supported_p", "(", "mode", ")", ")", "{", "int", "i", ",", "units", ";", "gcc_assert", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", ";", "units", "=", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "size", "=", "GET_MODE_UNIT_SIZE", "(", "mode", ")", ";", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", ")", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_integer", "(", "elt", ",", "size", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ",", "1", ")", ";", "}", "else", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_real", "(", "*", "CONST_DOUBLE_REAL_VALUE", "(", "elt", ")", ",", "as_a", "<", "scalar_float_mode", ">", "(", "GET_MODE_INNER", "(", "mode", ")", ")", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ")", ";", "}", "return", "true", ";", "}", "return", "default_assemble_integer", "(", "x", ",", "size", ",", "aligned_p", ")", ";", "}", ""], "natrual_language": ["Target", "hook", "for", "assembling", "integer", "objects", ".", "The", "ARM", "version", "needs", "to", "handle", "word-sized", "values", "specially", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "0", "\"(GOT)\"", "\"(GOTOFF)\"", "0", "0", "1", "0", "0"], "File": "arm7", "Func": "arm_assemble_integer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44845, "Length": 300}
{"ground_truth": ["", "static", "void", "arm_compute_frame_layout", "(", "void", ")", "{", "struct", "arm_stack_offsets", "*", "offsets", ";", "unsigned", "long", "func_type", ";", "int", "saved", ";", "int", "core_saved", ";", "HOST_WIDE_INT", "frame_size", ";", "int", "i", ";", "offsets", "=", "&", "cfun", "->", "machine", "->", "stack_offsets", ";", "frame_size", "=", "ROUND_UP_WORD", "(", "get_frame_size", "(", ")", ")", ";", "offsets", "->", "saved_args", "=", "crtl", "->", "args", ".", "pretend_args_size", ";", "offsets", "->", "frame", "=", "(", "offsets", "->", "saved_args", "+", "arm_compute_static_chain_stack_bytes", "(", ")", "+", "(", "frame_pointer_needed", "?", "4", ":", "0", ")", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "unsigned", "int", "regno", ";", "offsets", "->", "saved_regs_mask", "=", "arm_compute_save_core_reg_mask", "(", ")", ";", "core_saved", "=", "bit_count", "(", "offsets", "->", "saved_regs_mask", ")", "*", "4", ";", "saved", "=", "core_saved", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "saved", "+=", "8", ";", "}", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "!", "IS_VOLATILE", "(", "func_type", ")", "&&", "TARGET_HARD_FLOAT", ")", "saved", "+=", "arm_get_vfp_saved_size", "(", ")", ";", "}", "else", "{", "offsets", "->", "saved_regs_mask", "=", "thumb1_compute_save_core_reg_mask", "(", ")", ";", "core_saved", "=", "bit_count", "(", "offsets", "->", "saved_regs_mask", ")", "*", "4", ";", "saved", "=", "core_saved", ";", "if", "(", "TARGET_BACKTRACE", ")", "saved", "+=", "16", ";", "}", "offsets", "->", "saved_regs", "=", "offsets", "->", "saved_args", "+", "arm_compute_static_chain_stack_bytes", "(", ")", "+", "saved", ";", "offsets", "->", "soft_frame", "=", "offsets", "->", "saved_regs", "+", "CALLER_INTERWORKING_SLOT_SIZE", ";", "if", "(", "crtl", "->", "is_leaf", "&&", "frame_size", "==", "0", "&&", "!", "cfun", "->", "calls_alloca", ")", "{", "offsets", "->", "outgoing_args", "=", "offsets", "->", "soft_frame", ";", "offsets", "->", "locals_base", "=", "offsets", "->", "soft_frame", ";", "return", ";", "}", "if", "(", "ARM_DOUBLEWORD_ALIGN", "&&", "(", "offsets", "->", "soft_frame", "&", "7", ")", ")", "{", "offsets", "->", "soft_frame", "+=", "4", ";", "if", "(", "frame_size", "+", "crtl", "->", "outgoing_args_size", "==", "0", ")", "{", "int", "reg", "=", "-", "1", ";", "bool", "prefer_callee_reg_p", "=", "false", ";", "if", "(", "!", "any_sibcall_could_use_r3", "(", ")", "&&", "arm_size_return_regs", "(", ")", "<=", "12", "&&", "(", "offsets", "->", "saved_regs_mask", "&", "(", "1", "<<", "3", ")", ")", "==", "0", "&&", "(", "TARGET_THUMB2", "||", "!", "(", "TARGET_LDRD", "&&", "current_tune", "->", "prefer_ldrd_strd", ")", ")", ")", "{", "reg", "=", "3", ";", "if", "(", "!", "TARGET_THUMB2", ")", "prefer_callee_reg_p", "=", "true", ";", "}", "if", "(", "reg", "==", "-", "1", "||", "prefer_callee_reg_p", ")", "{", "for", "(", "i", "=", "4", ";", "i", "<=", "(", "TARGET_THUMB1", "?", "LAST_LO_REGNUM", ":", "11", ")", ";", "i", "++", ")", "{", "if", "(", "!", "fixed_regs", "[", "i", "]", "&&", "(", "offsets", "->", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "==", "0", ")", "{", "reg", "=", "i", ";", "break", ";", "}", "}", "}", "if", "(", "reg", "!=", "-", "1", ")", "{", "offsets", "->", "saved_regs", "+=", "4", ";", "offsets", "->", "saved_regs_mask", "|=", "(", "1", "<<", "reg", ")", ";", "}", "}", "}", "offsets", "->", "locals_base", "=", "offsets", "->", "soft_frame", "+", "frame_size", ";", "offsets", "->", "outgoing_args", "=", "(", "offsets", "->", "locals_base", "+", "crtl", "->", "outgoing_args_size", ")", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", ")", "{", "if", "(", "offsets", "->", "outgoing_args", "&", "7", ")", "offsets", "->", "outgoing_args", "+=", "4", ";", "gcc_assert", "(", "!", "(", "offsets", "->", "outgoing_args", "&", "7", ")", ")", ";", "}", "}", ""], "natrual_language": ["Calculate", "stack", "offsets", ".", "These", "are", "used", "to", "calculate", "register", "elimination", "offsets", "and", "in", "prologue/epilogue", "code", ".", "Also", "calculates", "which", "registers", "should", "be", "saved", "."], "TS_V_token": ["arm", "4", "0", "4", "8", "4", "16", "0", "7", "4", "0", "1", "12", "1", "3", "0", "3", "1", "4", "11", "1", "0", "1", "4", "1", "7", "4", "7"], "File": "arm7", "Func": "arm_compute_frame_layout", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44846, "Length": 504}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_core_reg_mask", "(", "void", ")", "{", "unsigned", "int", "save_reg_mask", "=", "0", ";", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "TARGET_ARM", ")", "save_reg_mask", "|=", "(", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ")", "|", "(", "1", "<<", "IP_REGNUM", ")", "|", "(", "1", "<<", "LR_REGNUM", ")", "|", "(", "1", "<<", "PC_REGNUM", ")", ";", "save_reg_mask", "|=", "arm_compute_save_reg0_reg12_mask", "(", ")", ";", "if", "(", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", "||", "(", "save_reg_mask", "&&", "optimize_size", "&&", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_NORMAL", "&&", "!", "crtl", "->", "tail_call_emit", "&&", "!", "crtl", "->", "calls_eh_return", ")", ")", "save_reg_mask", "|=", "1", "<<", "LR_REGNUM", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "save_reg_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "(", "(", "bit_count", "(", "save_reg_mask", ")", "+", "ARM_NUM_INTS", "(", "crtl", "->", "args", ".", "pretend_args_size", "+", "arm_compute_static_chain_stack_bytes", "(", ")", ")", ")", "%", "2", ")", "!=", "0", ")", "{", "for", "(", "reg", "=", "4", ";", "reg", "<=", "12", ";", "reg", "++", ")", "if", "(", "(", "save_reg_mask", "&", "(", "1", "<<", "reg", ")", ")", "==", "0", ")", "break", ";", "if", "(", "reg", "<=", "12", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "else", "{", "cfun", "->", "machine", "->", "sibcall_blocked", "=", "1", ";", "save_reg_mask", "|=", "(", "1", "<<", "3", ")", ";", "}", "}", "if", "(", "TARGET_THUMB2", "&&", "IS_NESTED", "(", "func_type", ")", "&&", "flag_pic", "&&", "(", "save_reg_mask", "&", "THUMB2_WORK_REGS", ")", "==", "0", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "4", ")", ";", "if", "(", "!", "call_used_regs", "[", "reg", "]", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "core", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", ".", "This", "is", "used", "by", "arm_compute_frame_layout", ",", "which", "may", "add", "extra", "registers", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "1", "1", "1", "2", "0", "4", "12", "1", "0", "12", "1", "1", "1", "3", "0", "1", "4", "1"], "File": "arm7", "Func": "arm_compute_save_core_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44847, "Length": 273}
{"ground_truth": ["", "void", "arm_declare_function_name", "(", "FILE", "*", "stream", ",", "const", "char", "*", "name", ",", "tree", "decl", ")", "{", "tree", "target_parts", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "decl", ")", ";", "struct", "cl_target_option", "*", "targ_options", ";", "if", "(", "target_parts", ")", "targ_options", "=", "TREE_TARGET_OPTION", "(", "target_parts", ")", ";", "else", "targ_options", "=", "TREE_TARGET_OPTION", "(", "target_option_current_node", ")", ";", "gcc_assert", "(", "targ_options", ")", ";", "std", "::", "string", "arch_to_print", ";", "if", "(", "targ_options", "->", "x_arm_arch_string", ")", "arch_to_print", "=", "targ_options", "->", "x_arm_arch_string", ";", "if", "(", "arch_to_print", "!=", "arm_last_printed_arch_string", ")", "{", "std", "::", "string", "arch_name", "=", "arch_to_print", ".", "substr", "(", "0", ",", "arch_to_print", ".", "find", "(", "\"+\"", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.arch %s\\n\"", ",", "arch_name", ".", "c_str", "(", ")", ")", ";", "const", "arch_option", "*", "arch", "=", "arm_parse_arch_option_name", "(", "all_architectures", ",", "\"-march\"", ",", "targ_options", "->", "x_arm_arch_string", ")", ";", "auto_sbitmap", "opt_bits", "(", "isa_num_bits", ")", ";", "gcc_assert", "(", "arch", ")", ";", "if", "(", "arch", "->", "common", ".", "extensions", ")", "{", "for", "(", "const", "struct", "cpu_arch_extension", "*", "opt", "=", "arch", "->", "common", ".", "extensions", ";", "opt", "->", "name", "!=", "NULL", ";", "opt", "++", ")", "{", "if", "(", "!", "opt", "->", "remove", ")", "{", "arm_initialize_isa", "(", "opt_bits", ",", "opt", "->", "isa_bits", ")", ";", "if", "(", "bitmap_subset_p", "(", "opt_bits", ",", "arm_active_target", ".", "isa", ")", "&&", "!", "bitmap_subset_p", "(", "opt_bits", ",", "isa_all_fpubits", ")", ")", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.arch_extension %s\\n\"", ",", "opt", "->", "name", ")", ";", "}", "}", "}", "arm_last_printed_arch_string", "=", "arch_to_print", ";", "}", "fprintf", "(", "stream", ",", "\"\\t.syntax unified\\n\"", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "if", "(", "is_called_in_ARM_mode", "(", "decl", ")", "||", "(", "TARGET_THUMB1", "&&", "!", "TARGET_THUMB1_ONLY", "&&", "cfun", "->", "is_thunk", ")", ")", "fprintf", "(", "stream", ",", "\"\\t.code 32\\n\"", ")", ";", "else", "if", "(", "TARGET_THUMB1", ")", "fprintf", "(", "stream", ",", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", ")", ";", "else", "fprintf", "(", "stream", ",", "\"\\t.thumb\\n\\t.thumb_func\\n\"", ")", ";", "}", "else", "fprintf", "(", "stream", ",", "\"\\t.arm\\n\"", ")", ";", "std", "::", "string", "fpu_to_print", "=", "TARGET_SOFT_FLOAT", "?", "\"softvfp\"", ":", "arm_identify_fpu_from_isa", "(", "arm_active_target", ".", "isa", ")", ";", "if", "(", "fpu_to_print", "!=", "arm_last_printed_arch_string", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.fpu %s\\n\"", ",", "fpu_to_print", ".", "c_str", "(", ")", ")", ";", "arm_last_printed_fpu_string", "=", "fpu_to_print", ";", "}", "if", "(", "TARGET_POKE_FUNCTION_NAME", ")", "arm_poke_function_name", "(", "stream", ",", "(", "const", "char", "*", ")", "name", ")", ";", "}", ""], "natrual_language": ["Implement", "ASM_DECLARE_FUNCTION_NAME", ".", "Output", "the", "ISA", "features", "used", "by", "the", "function", "fndecl", "."], "TS_V_token": ["arm", "0", "\"+\"", "\"\\t.arch %s\\n\"", "\"-march\"", "\"\\t.arch_extension %s\\n\"", "\"\\t.syntax unified\\n\"", "\"\\t.code 32\\n\"", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", "\"\\t.thumb\\n\\t.thumb_func\\n\"", "\"\\t.arm\\n\"", "\"softvfp\"", "\"\\t.fpu %s\\n\""], "File": "arm7", "Func": "arm_declare_function_name", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44848, "Length": 348}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vext", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "rtx", "offset", ";", "unsigned", "int", "location", ";", "unsigned", "int", "next", "=", "d", "->", "perm", "[", "0", "]", "+", "1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "return", "false", ";", "for", "(", "i", "=", "1", ";", "i", "<", "nelt", ";", "next", "++", ",", "i", "++", ")", "{", "if", "(", "next", "==", "2", "*", "nelt", ")", "return", "false", ";", "if", "(", "d", "->", "one_vector_p", "&&", "(", "next", "==", "nelt", ")", ")", "{", "if", "(", "(", "nelt", "==", "2", ")", "&&", "(", "d", "->", "vmode", "!=", "V2DImode", ")", ")", "return", "false", ";", "else", "next", "=", "0", ";", "}", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "next", ")", "return", "false", ";", "}", "location", "=", "d", "->", "perm", "[", "0", "]", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "gen", "=", "gen_neon_vextv16qi", ";", "break", ";", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vextv8qi", ";", "break", ";", "case", "E_V4HImode", ":", "gen", "=", "gen_neon_vextv4hi", ";", "break", ";", "case", "E_V8HImode", ":", "gen", "=", "gen_neon_vextv8hi", ";", "break", ";", "case", "E_V2SImode", ":", "gen", "=", "gen_neon_vextv2si", ";", "break", ";", "case", "E_V4SImode", ":", "gen", "=", "gen_neon_vextv4si", ";", "break", ";", "case", "E_V4HFmode", ":", "gen", "=", "gen_neon_vextv4hf", ";", "break", ";", "case", "E_V8HFmode", ":", "gen", "=", "gen_neon_vextv8hf", ";", "break", ";", "case", "E_V2SFmode", ":", "gen", "=", "gen_neon_vextv2sf", ";", "break", ";", "case", "E_V4SFmode", ":", "gen", "=", "gen_neon_vextv4sf", ";", "break", ";", "case", "E_V2DImode", ":", "gen", "=", "gen_neon_vextv2di", ";", "break", ";", "default", ":", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "offset", "=", "GEN_INT", "(", "location", ")", ";", "emit_insn", "(", "gen", "(", "d", "->", "target", ",", "d", "->", "op0", ",", "d", "->", "op1", ",", "offset", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VEXT", "insns", "."], "TS_V_token": ["arm", "0", "1", "1", "2", "2", "0", "0"], "File": "arm7", "Func": "arm_evpc_neon_vext", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44849, "Length": 308}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vrev", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "j", ",", "diff", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ")", ";", "if", "(", "!", "d", "->", "one_vector_p", ")", "return", "false", ";", "diff", "=", "d", "->", "perm", "[", "0", "]", ";", "switch", "(", "diff", ")", "{", "case", "7", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "gen", "=", "gen_neon_vrev64v16qi", ";", "break", ";", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vrev64v8qi", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "3", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "gen", "=", "gen_neon_vrev32v16qi", ";", "break", ";", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vrev32v8qi", ";", "break", ";", "case", "E_V8HImode", ":", "gen", "=", "gen_neon_vrev64v8hi", ";", "break", ";", "case", "E_V4HImode", ":", "gen", "=", "gen_neon_vrev64v4hi", ";", "break", ";", "case", "E_V8HFmode", ":", "gen", "=", "gen_neon_vrev64v8hf", ";", "break", ";", "case", "E_V4HFmode", ":", "gen", "=", "gen_neon_vrev64v4hf", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "1", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "gen", "=", "gen_neon_vrev16v16qi", ";", "break", ";", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vrev16v8qi", ";", "break", ";", "case", "E_V8HImode", ":", "gen", "=", "gen_neon_vrev32v8hi", ";", "break", ";", "case", "E_V4HImode", ":", "gen", "=", "gen_neon_vrev32v4hi", ";", "break", ";", "case", "E_V4SImode", ":", "gen", "=", "gen_neon_vrev64v4si", ";", "break", ";", "case", "E_V2SImode", ":", "gen", "=", "gen_neon_vrev64v2si", ";", "break", ";", "case", "E_V4SFmode", ":", "gen", "=", "gen_neon_vrev64v4sf", ";", "break", ";", "case", "E_V2SFmode", ":", "gen", "=", "gen_neon_vrev64v2sf", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "default", ":", "return", "false", ";", "}", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "diff", "+", "1", ")", "for", "(", "j", "=", "0", ";", "j", "<=", "diff", ";", "j", "+=", "1", ")", "{", "gcc_assert", "(", "i", "+", "j", "<", "nelt", ")", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "j", "]", "!=", "i", "+", "diff", "-", "j", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "emit_insn", "(", "gen", "(", "d", "->", "target", ",", "d", "->", "op0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VREV", "insns", "."], "TS_V_token": ["arm", "0", "7", "3", "1", "0", "1", "0", "1"], "File": "arm7", "Func": "arm_evpc_neon_vrev", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44850, "Length": 355}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vtrn", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "0", ")", "odd", "=", "0", ";", "else", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "1", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "2", ")", "{", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "i", "+", "odd", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "1", "]", "!=", "(", "(", "i", "+", "nelt", "+", "odd", ")", "&", "mask", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "gen", "=", "gen_neon_vtrnv16qi_internal", ";", "break", ";", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vtrnv8qi_internal", ";", "break", ";", "case", "E_V8HImode", ":", "gen", "=", "gen_neon_vtrnv8hi_internal", ";", "break", ";", "case", "E_V4HImode", ":", "gen", "=", "gen_neon_vtrnv4hi_internal", ";", "break", ";", "case", "E_V8HFmode", ":", "gen", "=", "gen_neon_vtrnv8hf_internal", ";", "break", ";", "case", "E_V4HFmode", ":", "gen", "=", "gen_neon_vtrnv4hf_internal", ";", "break", ";", "case", "E_V4SImode", ":", "gen", "=", "gen_neon_vtrnv4si_internal", ";", "break", ";", "case", "E_V2SImode", ":", "gen", "=", "gen_neon_vtrnv2si_internal", ";", "break", ";", "case", "E_V2SFmode", ":", "gen", "=", "gen_neon_vtrnv2sf_internal", ";", "break", ";", "case", "E_V4SFmode", ":", "gen", "=", "gen_neon_vtrnv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "odd", "=", "!", "odd", ";", "}", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VTRN", "insns", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "1"], "File": "arm7", "Func": "arm_evpc_neon_vtrn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44851, "Length": 368}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vuzp", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "int", "first_elem", ";", "int", "swap_nelt", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "swap_nelt", "=", "BYTES_BIG_ENDIAN", "&&", "!", "d", "->", "one_vector_p", "&&", "GET_MODE_SIZE", "(", "d", "->", "vmode", ")", "==", "8", "?", "nelt", ":", "0", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "]", "^", "swap_nelt", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "odd", "=", "0", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "1", ")", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "(", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", ")", "*", "2", "+", "odd", ")", "&", "mask", ";", "if", "(", "(", "d", "->", "perm", "[", "i", "]", "^", "swap_nelt", ")", "!=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "elt", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "gen", "=", "gen_neon_vuzpv16qi_internal", ";", "break", ";", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vuzpv8qi_internal", ";", "break", ";", "case", "E_V8HImode", ":", "gen", "=", "gen_neon_vuzpv8hi_internal", ";", "break", ";", "case", "E_V4HImode", ":", "gen", "=", "gen_neon_vuzpv4hi_internal", ";", "break", ";", "case", "E_V8HFmode", ":", "gen", "=", "gen_neon_vuzpv8hf_internal", ";", "break", ";", "case", "E_V4HFmode", ":", "gen", "=", "gen_neon_vuzpv4hf_internal", ";", "break", ";", "case", "E_V4SImode", ":", "gen", "=", "gen_neon_vuzpv4si_internal", ";", "break", ";", "case", "E_V2SImode", ":", "gen", "=", "gen_neon_vuzpv2si_internal", ";", "break", ";", "case", "E_V2SFmode", ":", "gen", "=", "gen_neon_vuzpv2sf_internal", ";", "break", ";", "case", "E_V4SFmode", ":", "gen", "=", "gen_neon_vuzpv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "swap_nelt", "!=", "0", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VUZP", "insns", "."], "TS_V_token": ["arm", "8", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "0"], "File": "arm7", "Func": "arm_evpc_neon_vuzp", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44852, "Length": 415}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vzip", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "high", ",", "mask", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "int", "first_elem", ";", "bool", "is_swapped", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "is_swapped", "=", "BYTES_BIG_ENDIAN", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "^", "is_swapped", "]", ";", "high", "=", "nelt", "/", "2", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "high", ")", ")", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "high", "=", "0", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", "/", "2", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "nelt", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "!", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "gen", "=", "gen_neon_vzipv16qi_internal", ";", "break", ";", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vzipv8qi_internal", ";", "break", ";", "case", "E_V8HImode", ":", "gen", "=", "gen_neon_vzipv8hi_internal", ";", "break", ";", "case", "E_V4HImode", ":", "gen", "=", "gen_neon_vzipv4hi_internal", ";", "break", ";", "case", "E_V8HFmode", ":", "gen", "=", "gen_neon_vzipv8hf_internal", ";", "break", ";", "case", "E_V4HFmode", ":", "gen", "=", "gen_neon_vzipv4hf_internal", ";", "break", ";", "case", "E_V4SImode", ":", "gen", "=", "gen_neon_vzipv4si_internal", ";", "break", ";", "case", "E_V2SImode", ":", "gen", "=", "gen_neon_vzipv2si_internal", ";", "break", ";", "case", "E_V2SFmode", ":", "gen", "=", "gen_neon_vzipv2sf_internal", ";", "break", ";", "case", "E_V4SFmode", ":", "gen", "=", "gen_neon_vzipv4sf_internal", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "is_swapped", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "high", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen", "(", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VZIP", "insns", "."], "TS_V_token": ["arm", "8", "0", "2", "0", "0", "1", "2", "1", "0", "2", "2", "2"], "File": "arm7", "Func": "arm_evpc_neon_vzip", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44853, "Length": 439}
{"ground_truth": ["", "void", "arm_expand_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "bval", ",", "bdst", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ",", "x", ";", "machine_mode", "mode", ";", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ",", "rtx", ")", ";", "bval", "=", "operands", "[", "0", "]", ";", "rval", "=", "operands", "[", "1", "]", ";", "mem", "=", "operands", "[", "2", "]", ";", "oldval", "=", "operands", "[", "3", "]", ";", "newval", "=", "operands", "[", "4", "]", ";", "is_weak", "=", "operands", "[", "5", "]", ";", "mod_s", "=", "operands", "[", "6", "]", ";", "mod_f", "=", "operands", "[", "7", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "if", "(", "TARGET_HAVE_LDACQ", "&&", "is_mm_acquire", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_f", ")", ")", ")", "&&", "is_mm_release", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_s", ")", ")", ")", ")", "mod_s", "=", "GEN_INT", "(", "MEMMODEL_ACQ_REL", ")", ";", "switch", "(", "mode", ")", "{", "case", "E_QImode", ":", "case", "E_HImode", ":", "rval", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "oldval", "=", "convert_modes", "(", "SImode", ",", "mode", ",", "oldval", ",", "true", ")", ";", "case", "E_SImode", ":", "if", "(", "!", "arm_add_operand", "(", "oldval", ",", "SImode", ")", ")", "oldval", "=", "force_reg", "(", "SImode", ",", "oldval", ")", ";", "break", ";", "case", "E_DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "oldval", ",", "mode", ")", ")", "oldval", "=", "force_reg", "(", "mode", ",", "oldval", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "if", "(", "TARGET_THUMB1", ")", "{", "switch", "(", "mode", ")", "{", "case", "E_QImode", ":", "gen", "=", "gen_atomic_compare_and_swapt1qi_1", ";", "break", ";", "case", "E_HImode", ":", "gen", "=", "gen_atomic_compare_and_swapt1hi_1", ";", "break", ";", "case", "E_SImode", ":", "gen", "=", "gen_atomic_compare_and_swapt1si_1", ";", "break", ";", "case", "E_DImode", ":", "gen", "=", "gen_atomic_compare_and_swapt1di_1", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "else", "{", "switch", "(", "mode", ")", "{", "case", "E_QImode", ":", "gen", "=", "gen_atomic_compare_and_swap32qi_1", ";", "break", ";", "case", "E_HImode", ":", "gen", "=", "gen_atomic_compare_and_swap32hi_1", ";", "break", ";", "case", "E_SImode", ":", "gen", "=", "gen_atomic_compare_and_swap32si_1", ";", "break", ";", "case", "E_DImode", ":", "gen", "=", "gen_atomic_compare_and_swap32di_1", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "bdst", "=", "TARGET_THUMB1", "?", "bval", ":", "gen_rtx_REG", "(", "CC_Zmode", ",", "CC_REGNUM", ")", ";", "emit_insn", "(", "gen", "(", "bdst", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ")", ")", ";", "if", "(", "mode", "==", "QImode", "||", "mode", "==", "HImode", ")", "emit_move_insn", "(", "operands", "[", "1", "]", ",", "gen_lowpart", "(", "mode", ",", "rval", ")", ")", ";", "if", "(", "TARGET_THUMB1", ")", "emit_insn", "(", "gen_cstoresi_eq0_thumb1", "(", "bval", ",", "bdst", ")", ")", ";", "else", "{", "x", "=", "gen_rtx_EQ", "(", "SImode", ",", "bdst", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "bval", ",", "x", ")", ")", ";", "}", "}", ""], "natrual_language": ["Expand", "a", "compare", "and", "swap", "pattern", "."], "TS_V_token": ["arm", "0", "1", "2", "3", "4", "5", "6", "7", "1"], "File": "arm7", "Func": "arm_expand_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44854, "Length": 442}
{"ground_truth": ["", "static", "bool", "arm_fixed_condition_code_regs", "(", "unsigned", "int", "*", "p1", ",", "unsigned", "int", "*", "p2", ")", "{", "if", "(", "!", "TARGET_32BIT", ")", "return", "false", ";", "*", "p1", "=", "CC_REGNUM", ";", "*", "p2", "=", "TARGET_HARD_FLOAT", "?", "VFPCC_REGNUM", ":", "INVALID_REGNUM", ";", "return", "true", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FIXED_CONDITION_CODE_REGS", ".", "We", "only", "have", "condition", "code", "registers", "when", "not", "targetting", "Thumb1", ".", "The", "VFP", "condition", "register", "only", "exists", "when", "generating", "hard-float", "code", "."], "TS_V_token": ["arm"], "File": "arm7", "Func": "arm_fixed_condition_code_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44855, "Length": 41}
{"ground_truth": ["", "static", "bool", "arm_hard_regno_mode_ok", "(", "unsigned", "int", "regno", ",", "machine_mode", "mode", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_CC", ")", "return", "(", "regno", "==", "CC_REGNUM", "||", "(", "TARGET_HARD_FLOAT", "&&", "regno", "==", "VFPCC_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "CC_REGNUM", "&&", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_CC", ")", "return", "false", ";", "if", "(", "TARGET_THUMB1", ")", "return", "(", "ARM_NUM_REGS", "(", "mode", ")", "<", "2", ")", "||", "(", "regno", "<", "LAST_LO_REGNUM", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "mode", "==", "SFmode", "||", "mode", "==", "SImode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "DFmode", ")", "return", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "HFmode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "HImode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "TARGET_NEON", ")", "return", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "&&", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ")", "||", "(", "VALID_NEON_QREG_MODE", "(", "mode", ")", "&&", "NEON_REGNO_OK_FOR_QUAD", "(", "regno", ")", ")", "||", "(", "mode", "==", "TImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "2", ")", ")", "||", "(", "mode", "==", "EImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "3", ")", ")", "||", "(", "mode", "==", "OImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "4", ")", ")", "||", "(", "mode", "==", "CImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "6", ")", ")", "||", "(", "mode", "==", "XImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "8", ")", ")", ";", "return", "false", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "mode", "==", "SImode", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ";", "}", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", ")", "{", "if", "(", "ARM_NUM_REGS", "(", "mode", ")", ">", "4", ")", "return", "false", ";", "if", "(", "TARGET_THUMB2", ")", "return", "true", ";", "return", "!", "(", "TARGET_LDRD", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">", "4", "&&", "(", "regno", "&", "1", ")", "!=", "0", ")", ";", "}", "if", "(", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", ";", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "REGNO", "is", "a", "valid", "register", "for", "holding", "a", "quantity", "of", "type", "MODE", "."], "TS_V_token": ["arm", "2", "2", "3", "4", "6", "8", "4", "4", "1", "0"], "File": "arm7", "Func": "arm_hard_regno_mode_ok", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44856, "Length": 333}
{"ground_truth": ["", "static", "const", "char", "*", "arm_identify_fpu_from_isa", "(", "sbitmap", "isa", ")", "{", "auto_sbitmap", "fpubits", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "cand_fpubits", "(", "isa_num_bits", ")", ";", "bitmap_and", "(", "fpubits", ",", "isa", ",", "isa_all_fpubits", ")", ";", "if", "(", "bitmap_empty_p", "(", "fpubits", ")", ")", "return", "\"softvfp\"", ";", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "TARGET_FPU_auto", ";", "i", "++", ")", "{", "arm_initialize_isa", "(", "cand_fpubits", ",", "all_fpus", "[", "i", "]", ".", "isa_bits", ")", ";", "if", "(", "bitmap_equal_p", "(", "fpubits", ",", "cand_fpubits", ")", ")", "return", "all_fpus", "[", "i", "]", ".", "name", ";", "}", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Match", "an", "ISA", "feature", "bitmap", "to", "a", "named", "FPU", ".", "We", "always", "use", "the", "first", "entry", "that", "exactly", "matches", "the", "feature", "set", ",", "so", "that", "we", "effectively", "canonicalize", "the", "FPU", "name", "for", "the", "assembler", "."], "TS_V_token": ["arm", "\"softvfp\"", "0"], "File": "arm7", "Func": "arm_identify_fpu_from_isa", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44857, "Length": 92}
{"ground_truth": ["", "static", "bool", "arm_modes_tieable_p", "(", "machine_mode", "mode1", ",", "machine_mode", "mode2", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode1", ")", "==", "GET_MODE_CLASS", "(", "mode2", ")", ")", "return", "true", ";", "if", "(", "TARGET_NEON", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode1", ")", ")", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode2", ")", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "MODES_TIEABLE_P", "."], "TS_V_token": ["arm"], "File": "arm7", "Func": "arm_modes_tieable_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44858, "Length": 71}
{"ground_truth": ["", "void", "arm_options_perform_arch_sanity_checks", "(", "void", ")", "{", "if", "(", "TARGET_INTERWORK", ")", "arm_cpp_interwork", "=", "1", ";", "if", "(", "arm_arch5", ")", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "if", "(", "TARGET_IWMMXT", "&&", "!", "ARM_DOUBLEWORD_ALIGN", ")", "error", "(", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", ")", ";", "if", "(", "TARGET_IWMMXT_ABI", "&&", "!", "TARGET_IWMMXT", ")", "error", "(", "\"iwmmxt abi requires an iwmmxt capable cpu\"", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "TARGET_BPABI", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support interworking\"", ")", ";", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_SOFT_FLOAT", ")", "arm_fpu_attr", "=", "FPU_NONE", ";", "else", "arm_fpu_attr", "=", "FPU_VFP", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "TARGET_CALLER_INTERWORKING", ")", "error", "(", "\"AAPCS does not support -mcaller-super-interworking\"", ")", ";", "else", "if", "(", "TARGET_CALLEE_INTERWORKING", ")", "error", "(", "\"AAPCS does not support -mcallee-super-interworking\"", ")", ";", "}", "if", "(", "!", "arm_arch4", "&&", "arm_fp16_format", "!=", "ARM_FP16_FORMAT_NONE", ")", "sorry", "(", "\"__fp16 and no ldrh\"", ")", ";", "if", "(", "use_cmse", "&&", "!", "arm_arch_cmse", ")", "error", "(", "\"target CPU does not support ARMv8-M Security Extensions\"", ")", ";", "if", "(", "use_cmse", "&&", "LAST_VFP_REGNUM", ">", "LAST_LO_VFP_REGNUM", ")", "error", "(", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "arm_abi", "==", "ARM_ABI_IWMMXT", ")", "arm_pcs_default", "=", "ARM_PCS_AAPCS_IWMMXT", ";", "else", "if", "(", "TARGET_HARD_FLOAT_ABI", ")", "{", "arm_pcs_default", "=", "ARM_PCS_AAPCS_VFP", ";", "if", "(", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_vfpv2", ")", ")", "error", "(", "\"-mfloat-abi=hard: selected processor lacks an FPU\"", ")", ";", "}", "else", "arm_pcs_default", "=", "ARM_PCS_AAPCS", ";", "}", "else", "{", "if", "(", "arm_float_abi", "==", "ARM_FLOAT_ABI_HARD", ")", "sorry", "(", "\"-mfloat-abi=hard and VFP\"", ")", ";", "if", "(", "arm_abi", "==", "ARM_ABI_APCS", ")", "arm_pcs_default", "=", "ARM_PCS_APCS", ";", "else", "arm_pcs_default", "=", "ARM_PCS_ATPCS", ";", "}", "}", ""], "natrual_language": ["Perform", "some", "validation", "between", "the", "desired", "architecture", "and", "the", "rest", "of", "the", "options", "."], "TS_V_token": ["arm", "1", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", "\"iwmmxt abi requires an iwmmxt capable cpu\"", "0", "\"target CPU does not support interworking\"", "\"AAPCS does not support -mcaller-super-interworking\"", "\"AAPCS does not support -mcallee-super-interworking\"", "\"__fp16 and no ldrh\"", "\"target CPU does not support ARMv8-M Security Extensions\"", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", "\"-mfloat-abi=hard: selected processor lacks an FPU\"", "\"-mfloat-abi=hard and VFP\""], "File": "arm7", "Func": "arm_options_perform_arch_sanity_checks", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44859, "Length": 234}
{"ground_truth": ["", "static", "void", "arm_option_check_internal", "(", "struct", "gcc_options", "*", "opts", ")", "{", "int", "flags", "=", "opts", "->", "x_target_flags", ";", "if", "(", "TARGET_IWMMXT", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_neon", ")", ")", "error", "(", "\"iWMMXt and NEON are incompatible\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_notm", ")", ")", "error", "(", "\"target CPU does not support ARM mode\"", ")", ";", "if", "(", "(", "TARGET_TPCS_FRAME", "||", "TARGET_TPCS_LEAF_FRAME", ")", "&&", "TARGET_ARM_P", "(", "flags", ")", ")", "warning", "(", "0", ",", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "warning", "(", "0", ",", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "write_symbols", "!=", "NO_DEBUG", "&&", "!", "TARGET_APCS_FRAME", "&&", "(", "TARGET_DEFAULT", "&", "MASK_APCS_FRAME", ")", ")", "warning", "(", "0", ",", "\"-g with -mno-apcs-frame may not give sensible debugging\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_IWMMXT", ")", "error", "(", "\"iWMMXt unsupported under Thumb mode\"", ")", ";", "if", "(", "TARGET_HARD_TP", "&&", "TARGET_THUMB1_P", "(", "flags", ")", ")", "error", "(", "\"can not use -mtp=cp15 with 16-bit Thumb\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_VXWORKS_RTP", "&&", "flag_pic", ")", "{", "error", "(", "\"RTP PIC is incompatible with Thumb\"", ")", ";", "flag_pic", "=", "0", ";", "}", "if", "(", "(", "target_pure_code", "||", "target_slow_flash_data", ")", "&&", "(", "!", "TARGET_HAVE_MOVT", "||", "arm_arch_notm", "||", "flag_pic", "||", "TARGET_NEON", ")", ")", "{", "const", "char", "*", "flag", "=", "(", "target_pure_code", "?", "\"-mpure-code\"", ":", "\"-mslow-flash-data\"", ")", ";", "error", "(", "\"%s only supports non-pic code on M-profile targets with the \"", "\"MOVT instruction\"", ",", "flag", ")", ";", "}", "}", ""], "natrual_language": ["Check", "any", "incompatible", "options", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "\"iWMMXt and NEON are incompatible\"", "\"target CPU does not support ARM mode\"", "0", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", "0", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", "0", "\"-g with -mno-apcs-frame may not give sensible debugging\"", "\"iWMMXt unsupported under Thumb mode\"", "\"can not use -mtp=cp15 with 16-bit Thumb\"", "\"RTP PIC is incompatible with Thumb\"", "0", "\"-mpure-code\"", "\"-mslow-flash-data\"", "\"%s only supports non-pic code on M-profile targets with the \"", "\"MOVT instruction\""], "File": "arm7", "Func": "arm_option_check_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44860, "Length": 213}
{"ground_truth": ["", "static", "void", "arm_option_params_internal", "(", "void", ")", "{", "if", "(", "TARGET_THUMB1", ")", "{", "targetm", ".", "min_anchor_offset", "=", "0", ";", "targetm", ".", "max_anchor_offset", "=", "127", ";", "}", "else", "if", "(", "TARGET_THUMB2", ")", "{", "targetm", ".", "min_anchor_offset", "=", "-", "248", ";", "targetm", ".", "max_anchor_offset", "=", "4095", ";", "}", "else", "{", "targetm", ".", "min_anchor_offset", "=", "TARGET_MIN_ANCHOR_OFFSET", ";", "targetm", ".", "max_anchor_offset", "=", "TARGET_MAX_ANCHOR_OFFSET", ";", "}", "max_insns_skipped", "=", "optimize_size", "?", "4", ":", "current_tune", "->", "max_insns_skipped", ";", "if", "(", "TARGET_THUMB2", ")", "max_insns_skipped", "=", "MIN", "(", "max_insns_skipped", ",", "MAX_INSN_PER_IT_BLOCK", ")", ";", "}", ""], "natrual_language": ["Recompute", "the", "global", "settings", "depending", "on", "target", "attribute", "options", "."], "TS_V_token": ["arm", "0", "127", "248", "4095", "4"], "File": "arm7", "Func": "arm_option_params_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44861, "Length": 84}
{"ground_truth": ["", "void", "arm_option_reconfigure_globals", "(", "void", ")", "{", "sprintf", "(", "arm_arch_name", ",", "\"__ARM_ARCH_%s__\"", ",", "arm_active_target", ".", "arch_pp_name", ")", ";", "arm_base_arch", "=", "arm_active_target", ".", "base_arch", ";", "arm_arch3m", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv3m", ")", ";", "arm_arch4", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv4", ")", ";", "arm_arch4t", "=", "arm_arch4", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ";", "arm_arch5", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv5", ")", ";", "arm_arch5e", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv5e", ")", ";", "arm_arch5te", "=", "arm_arch5e", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ";", "arm_arch6", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv6", ")", ";", "arm_arch6k", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv6k", ")", ";", "arm_arch_notm", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_notm", ")", ";", "arm_arch6m", "=", "arm_arch6", "&&", "!", "arm_arch_notm", ";", "arm_arch7", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv7", ")", ";", "arm_arch7em", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv7em", ")", ";", "arm_arch8", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8", ")", ";", "arm_arch8_1", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_1", ")", ";", "arm_arch8_2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_2", ")", ";", "arm_arch_thumb1", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ";", "arm_arch_thumb2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb2", ")", ";", "arm_arch_xscale", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_xscale", ")", ";", "arm_arch_iwmmxt", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_iwmmxt", ")", ";", "arm_arch_iwmmxt2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_iwmmxt2", ")", ";", "arm_arch_thumb_hwdiv", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_tdiv", ")", ";", "arm_arch_arm_hwdiv", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_adiv", ")", ";", "arm_arch_crc", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_crc32", ")", ";", "arm_arch_cmse", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_cmse", ")", ";", "arm_fp16_inst", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_fp16", ")", ";", "arm_arch_lpae", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_lpae", ")", ";", "if", "(", "arm_fp16_inst", ")", "{", "if", "(", "arm_fp16_format", "==", "ARM_FP16_FORMAT_ALTERNATIVE", ")", "error", "(", "\"selected fp16 options are incompatible\"", ")", ";", "arm_fp16_format", "=", "ARM_FP16_FORMAT_IEEE", ";", "}", "arm_arch_no_volatile_ce", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_quirk_no_volatile_ce", ")", ";", "arm_arch6kz", "=", "arm_arch6k", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_quirk_armv6kz", ")", ";", "if", "(", "target_thread_pointer", "==", "TP_AUTO", ")", "{", "if", "(", "arm_arch6k", "&&", "!", "TARGET_THUMB1", ")", "target_thread_pointer", "=", "TP_CP15", ";", "else", "target_thread_pointer", "=", "TP_SOFT", ";", "}", "}", ""], "natrual_language": ["Reconfigure", "global", "status", "flags", "from", "the", "active_target.isa", "."], "TS_V_token": ["arm", "\"__ARM_ARCH_%s__\"", "\"selected fp16 options are incompatible\""], "File": "arm7", "Func": "arm_option_reconfigure_globals", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44862, "Length": 379}
{"ground_truth": ["", "static", "void", "arm_print_asm_arch_directives", "(", ")", "{", "const", "arch_option", "*", "arch", "=", "arm_parse_arch_option_name", "(", "all_architectures", ",", "\"-march\"", ",", "arm_active_target", ".", "arch_name", ")", ";", "auto_sbitmap", "opt_bits", "(", "isa_num_bits", ")", ";", "gcc_assert", "(", "arch", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.arch %s\\n\"", ",", "arm_active_target", ".", "arch_name", ")", ";", "arm_last_printed_arch_string", "=", "arm_active_target", ".", "arch_name", ";", "if", "(", "!", "arch", "->", "common", ".", "extensions", ")", "return", ";", "for", "(", "const", "struct", "cpu_arch_extension", "*", "opt", "=", "arch", "->", "common", ".", "extensions", ";", "opt", "->", "name", "!=", "NULL", ";", "opt", "++", ")", "{", "if", "(", "!", "opt", "->", "remove", ")", "{", "arm_initialize_isa", "(", "opt_bits", ",", "opt", "->", "isa_bits", ")", ";", "if", "(", "bitmap_subset_p", "(", "opt_bits", ",", "arm_active_target", ".", "isa", ")", "&&", "!", "bitmap_subset_p", "(", "opt_bits", ",", "isa_all_fpubits", ")", ")", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.arch_extension %s\\n\"", ",", "opt", "->", "name", ")", ";", "}", "}", "}", ""], "natrual_language": ["Print", ".arch", "and", ".arch_extension", "directives", "corresponding", "to", "the", "current", "architecture", "configuration", "."], "TS_V_token": ["arm", "\"-march\"", "\"\\t.arch %s\\n\"", "\"\\t.arch_extension %s\\n\""], "File": "arm7", "Func": "arm_print_asm_arch_directives", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44863, "Length": 135}
{"ground_truth": ["", "static", "void", "arm_test_fpu_data", "(", "void", ")", "{", "auto_sbitmap", "isa_all_fpubits", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "fpubits", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "tmpset", "(", "isa_num_bits", ")", ";", "static", "const", "enum", "isa_feature", "fpu_bitlist", "[", "]", "=", "{", "ISA_ALL_FPU_INTERNAL", ",", "isa_nobit", "}", ";", "arm_initialize_isa", "(", "isa_all_fpubits", ",", "fpu_bitlist", ")", ";", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "TARGET_FPU_auto", ";", "i", "++", ")", "{", "arm_initialize_isa", "(", "fpubits", ",", "all_fpus", "[", "i", "]", ".", "isa_bits", ")", ";", "bitmap_and_compl", "(", "tmpset", ",", "isa_all_fpubits", ",", "fpubits", ")", ";", "bitmap_clear", "(", "isa_all_fpubits", ")", ";", "bitmap_copy", "(", "isa_all_fpubits", ",", "tmpset", ")", ";", "}", "if", "(", "!", "bitmap_empty_p", "(", "isa_all_fpubits", ")", ")", "{", "fprintf", "(", "stderr", ",", "\"Error: found feature bits in the ALL_FPU_INTERAL\"", "\" group that are not defined by any FPU.\\n\"", "\" Check your arm-cpus.in.\\n\"", ")", ";", "ASSERT_TRUE", "(", "bitmap_empty_p", "(", "isa_all_fpubits", ")", ")", ";", "}", "}", ""], "natrual_language": ["Scan", "the", "static", "data", "tables", "generated", "by", "parsecpu.awk", "looking", "for", "potential", "issues", "with", "the", "data", ".", "Here", "we", "check", "for", "consistency", "between", "the", "fpu", "bits", ",", "in", "particular", "we", "check", "that", "ISA_ALL_FPU_INTERNAL", "does", "not", "contain", "a", "feature", "bit", "that", "is", "not", "defined", "by", "any", "FPU", "flag", "."], "TS_V_token": ["arm", "0", "\"Error: found feature bits in the ALL_FPU_INTERAL\"", "\" group that are not defined by any FPU.\\n\"", "\" Check your arm-cpus.in.\\n\""], "File": "arm7", "Func": "arm_test_fpu_data", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44864, "Length": 124}
{"ground_truth": ["", "bool", "arm_tls_referenced_p", "(", "rtx", "x", ")", "{", "if", "(", "!", "TARGET_HAVE_TLS", ")", "return", "false", ";", "subrtx_iterator", "::", "array_type", "array", ";", "FOR_EACH_SUBRTX", "(", "iter", ",", "array", ",", "x", ",", "ALL", ")", "{", "const_rtx", "x", "=", "*", "iter", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "SYMBOL_REF", "&&", "SYMBOL_REF_TLS_MODEL", "(", "x", ")", "!=", "0", ")", "{", "if", "(", "arm_disable_literal_pool", ")", "sorry", "(", "\"accessing thread-local storage is not currently supported \"", "\"with -mpure-code or -mslow-flash-data\"", ")", ";", "return", "true", ";", "}", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "iter", ".", "skip_subrtxes", "(", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "contains", "any", "TLS", "symbol", "references", "."], "TS_V_token": ["arm", "0", "\"accessing thread-local storage is not currently supported \"", "\"with -mpure-code or -mslow-flash-data\"", "1"], "File": "arm7", "Func": "arm_tls_referenced_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44865, "Length": 97}
{"ground_truth": ["", "static", "void", "arm_trampoline_init", "(", "rtx", "m_tramp", ",", "tree", "fndecl", ",", "rtx", "chain_value", ")", "{", "rtx", "fnaddr", ",", "mem", ",", "a_tramp", ";", "emit_block_move", "(", "m_tramp", ",", "assemble_trampoline_template", "(", ")", ",", "GEN_INT", "(", "TRAMPOLINE_SIZE", ")", ",", "BLOCK_OP_NORMAL", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "TARGET_32BIT", "?", "8", ":", "12", ")", ";", "emit_move_insn", "(", "mem", ",", "chain_value", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "TARGET_32BIT", "?", "12", ":", "16", ")", ";", "fnaddr", "=", "XEXP", "(", "DECL_RTL", "(", "fndecl", ")", ",", "0", ")", ";", "emit_move_insn", "(", "mem", ",", "fnaddr", ")", ";", "a_tramp", "=", "XEXP", "(", "m_tramp", ",", "0", ")", ";", "emit_library_call", "(", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "\"__clear_cache\"", ")", ",", "LCT_NORMAL", ",", "VOIDmode", ",", "a_tramp", ",", "Pmode", ",", "plus_constant", "(", "Pmode", ",", "a_tramp", ",", "TRAMPOLINE_SIZE", ")", ",", "Pmode", ")", ";", "}", ""], "natrual_language": ["Emit", "RTL", "insns", "to", "initialize", "the", "variable", "parts", "of", "a", "trampoline", "."], "TS_V_token": ["arm", "8", "12", "12", "16", "0", "0", "\"__clear_cache\""], "File": "arm7", "Func": "arm_trampoline_init", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44866, "Length": 132}
{"ground_truth": ["", "bool", "arm_validize_comparison", "(", "rtx", "*", "comparison", ",", "rtx", "*", "op1", ",", "rtx", "*", "op2", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "*", "comparison", ")", ";", "int", "code_int", ";", "machine_mode", "mode", "=", "(", "GET_MODE", "(", "*", "op1", ")", "==", "VOIDmode", ")", "?", "GET_MODE", "(", "*", "op2", ")", ":", "GET_MODE", "(", "*", "op1", ")", ";", "gcc_assert", "(", "GET_MODE", "(", "*", "op1", ")", "!=", "VOIDmode", "||", "GET_MODE", "(", "*", "op2", ")", "!=", "VOIDmode", ")", ";", "if", "(", "code", "==", "UNEQ", "||", "code", "==", "LTGT", ")", "return", "false", ";", "code_int", "=", "(", "int", ")", "code", ";", "arm_canonicalize_comparison", "(", "&", "code_int", ",", "op1", ",", "op2", ",", "0", ")", ";", "PUT_CODE", "(", "*", "comparison", ",", "(", "enum", "rtx_code", ")", "code_int", ")", ";", "switch", "(", "mode", ")", "{", "case", "E_SImode", ":", "if", "(", "!", "arm_add_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "arm_add_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "case", "E_DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "cmpdi_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "case", "E_HFmode", ":", "if", "(", "!", "TARGET_VFP_FP16INST", ")", "break", ";", "mode", "=", "SFmode", ";", "*", "op1", "=", "convert_to_mode", "(", "mode", ",", "*", "op1", ",", "1", ")", ";", "*", "op2", "=", "convert_to_mode", "(", "mode", ",", "*", "op2", ",", "1", ")", ";", "case", "E_SFmode", ":", "case", "E_DFmode", ":", "if", "(", "!", "vfp_compare_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "vfp_compare_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "default", ":", "break", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "a", "valid", "comparison", "operation", "and", "makes", "the", "operands", "in", "a", "form", "that", "is", "valid", "."], "TS_V_token": ["arm", "0", "1", "1"], "File": "arm7", "Func": "arm_validize_comparison", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44867, "Length": 324}
{"ground_truth": ["", "static", "bool", "arm_valid_target_attribute_rec", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ")", "{", "if", "(", "TREE_CODE", "(", "args", ")", "==", "TREE_LIST", ")", "{", "bool", "ret", "=", "true", ";", "for", "(", ";", "args", ";", "args", "=", "TREE_CHAIN", "(", "args", ")", ")", "if", "(", "TREE_VALUE", "(", "args", ")", "&&", "!", "arm_valid_target_attribute_rec", "(", "TREE_VALUE", "(", "args", ")", ",", "opts", ")", ")", "ret", "=", "false", ";", "return", "ret", ";", "}", "else", "if", "(", "TREE_CODE", "(", "args", ")", "!=", "STRING_CST", ")", "{", "error", "(", "\"attribute % argument not a string\"", ")", ";", "return", "false", ";", "}", "char", "*", "argstr", "=", "ASTRDUP", "(", "TREE_STRING_POINTER", "(", "args", ")", ")", ";", "char", "*", "q", ";", "while", "(", "(", "q", "=", "strtok", "(", "argstr", ",", "\",\"", ")", ")", "!=", "NULL", ")", "{", "while", "(", "ISSPACE", "(", "*", "q", ")", ")", "++", "q", ";", "argstr", "=", "NULL", ";", "if", "(", "!", "strncmp", "(", "q", ",", "\"thumb\"", ",", "5", ")", ")", "opts", "->", "x_target_flags", "|=", "MASK_THUMB", ";", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"arm\"", ",", "3", ")", ")", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"fpu=\"", ",", "4", ")", ")", "{", "int", "fpu_index", ";", "if", "(", "!", "opt_enum_arg_to_value", "(", "OPT_mfpu_", ",", "q", "+", "4", ",", "&", "fpu_index", ",", "CL_TARGET", ")", ")", "{", "error", "(", "\"invalid fpu for target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "if", "(", "fpu_index", "==", "TARGET_FPU_auto", ")", "{", "sorry", "(", "\"auto fpu selection not currently permitted here\"", ")", ";", "return", "false", ";", "}", "opts", "->", "x_arm_fpu_index", "=", "(", "enum", "fpu_type", ")", "fpu_index", ";", "}", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"arch=\"", ",", "5", ")", ")", "{", "char", "*", "arch", "=", "q", "+", "5", ";", "const", "arch_option", "*", "arm_selected_arch", "=", "arm_parse_arch_option_name", "(", "all_architectures", ",", "\"arch\"", ",", "arch", ")", ";", "if", "(", "!", "arm_selected_arch", ")", "{", "error", "(", "\"invalid architecture for target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "opts", "->", "x_arm_arch_string", "=", "xstrndup", "(", "arch", ",", "strlen", "(", "arch", ")", ")", ";", "}", "else", "if", "(", "q", "[", "0", "]", "==", "'+'", ")", "{", "opts", "->", "x_arm_arch_string", "=", "xasprintf", "(", "\"%s%s\"", ",", "opts", "->", "x_arm_arch_string", ",", "q", ")", ";", "}", "else", "{", "error", "(", "\"unknown target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Inner", "function", "to", "process", "the", "attribute", "(", "(", "target", "(", "...", ")", ")", ")", ",", "take", "an", "argument", "and", "set", "the", "current", "options", "from", "the", "argument", ".", "If", "we", "have", "a", "list", ",", "recursively", "go", "over", "the", "list", "."], "TS_V_token": ["arm", "\"attribute % argument not a string\"", "\",\"", "\"thumb\"", "5", "\"arm\"", "3", "\"fpu=\"", "4", "4", "\"invalid fpu for target attribute or pragma %qs\"", "\"auto fpu selection not currently permitted here\"", "\"arch=\"", "5", "5", "\"arch\"", "\"invalid architecture for target attribute or pragma %qs\"", "0", "\"%s%s\"", "\"unknown target attribute or pragma %qs\""], "File": "arm7", "Func": "arm_valid_target_attribute_rec", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44868, "Length": 357}
{"ground_truth": ["", "static", "void", "cmse_clear_registers", "(", "sbitmap", "to_clear_bitmap", ",", "uint32_t", "*", "padding_bits_to_clear", ",", "int", "padding_bits_len", ",", "rtx", "scratch_reg", ",", "rtx", "clearing_reg", ")", "{", "bool", "saved_clearing", "=", "false", ";", "rtx", "saved_clearing_reg", "=", "NULL_RTX", ";", "int", "i", ",", "regno", ",", "clearing_regno", ",", "minregno", "=", "R0_REGNUM", ",", "maxregno", "=", "minregno", "-", "1", ";", "gcc_assert", "(", "arm_arch_cmse", ")", ";", "if", "(", "!", "bitmap_empty_p", "(", "to_clear_bitmap", ")", ")", "{", "minregno", "=", "bitmap_first_set_bit", "(", "to_clear_bitmap", ")", ";", "maxregno", "=", "bitmap_last_set_bit", "(", "to_clear_bitmap", ")", ";", "}", "clearing_regno", "=", "REGNO", "(", "clearing_reg", ")", ";", "gcc_assert", "(", "padding_bits_len", "<=", "NUM_ARG_REGS", ")", ";", "for", "(", "i", "=", "0", ",", "regno", "=", "R0_REGNUM", ";", "i", "<", "padding_bits_len", ";", "i", "++", ",", "regno", "++", ")", "{", "uint64_t", "mask", ";", "rtx", "rtx16", ",", "dest", ",", "cleared_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ";", "if", "(", "padding_bits_to_clear", "[", "i", "]", "==", "0", ")", "continue", ";", "if", "(", "TARGET_THUMB1", "&&", "REGNO", "(", "scratch_reg", ")", ">", "LAST_LO_REGNUM", ")", "{", "if", "(", "(", "clearing_regno", ">", "maxregno", "||", "!", "bitmap_bit_p", "(", "to_clear_bitmap", ",", "clearing_regno", ")", ")", "&&", "!", "saved_clearing", ")", "{", "gcc_assert", "(", "clearing_regno", "<=", "LAST_LO_REGNUM", ")", ";", "emit_move_insn", "(", "scratch_reg", ",", "clearing_reg", ")", ";", "saved_clearing", "=", "true", ";", "saved_clearing_reg", "=", "scratch_reg", ";", "}", "scratch_reg", "=", "clearing_reg", ";", "}", "mask", "=", "(", "~", "padding_bits_to_clear", "[", "i", "]", ")", "&", "0xFFFF", ";", "emit_move_insn", "(", "scratch_reg", ",", "gen_int_mode", "(", "mask", ",", "SImode", ")", ")", ";", "mask", "=", "(", "~", "padding_bits_to_clear", "[", "i", "]", ")", ">>", "16", ";", "rtx16", "=", "gen_int_mode", "(", "16", ",", "SImode", ")", ";", "dest", "=", "gen_rtx_ZERO_EXTRACT", "(", "SImode", ",", "scratch_reg", ",", "rtx16", ",", "rtx16", ")", ";", "if", "(", "mask", ")", "emit_insn", "(", "gen_rtx_SET", "(", "dest", ",", "gen_int_mode", "(", "mask", ",", "SImode", ")", ")", ")", ";", "emit_insn", "(", "gen_andsi3", "(", "cleared_reg", ",", "cleared_reg", ",", "scratch_reg", ")", ")", ";", "}", "if", "(", "saved_clearing", ")", "emit_move_insn", "(", "clearing_reg", ",", "saved_clearing_reg", ")", ";", "if", "(", "clearing_regno", "<=", "maxregno", "&&", "bitmap_bit_p", "(", "to_clear_bitmap", ",", "clearing_regno", ")", ")", "{", "emit_move_insn", "(", "clearing_reg", ",", "const0_rtx", ")", ";", "emit_use", "(", "clearing_reg", ")", ";", "bitmap_clear_bit", "(", "to_clear_bitmap", ",", "clearing_regno", ")", ";", "}", "for", "(", "regno", "=", "minregno", ";", "regno", "<=", "maxregno", ";", "regno", "++", ")", "{", "if", "(", "!", "bitmap_bit_p", "(", "to_clear_bitmap", ",", "regno", ")", ")", "continue", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "TARGET_VFP_DOUBLE", "&&", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", "&&", "bitmap_bit_p", "(", "to_clear_bitmap", ",", "regno", "+", "1", ")", ")", "{", "emit_move_insn", "(", "gen_rtx_REG", "(", "DFmode", ",", "regno", ")", ",", "CONST1_RTX", "(", "DFmode", ")", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "DFmode", ",", "regno", ")", ")", ";", "regno", "++", ";", "}", "else", "{", "emit_move_insn", "(", "gen_rtx_REG", "(", "SFmode", ",", "regno", ")", ",", "CONST1_RTX", "(", "SFmode", ")", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "SFmode", ",", "regno", ")", ")", ";", "}", "}", "else", "{", "emit_move_insn", "(", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ",", "clearing_reg", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ")", ";", "}", "}", "}", ""], "natrual_language": ["Clear", "registers", "secret", "before", "doing", "a", "cmse_nonsecure_call", "or", "returning", "from", "a", "cmse_nonsecure_entry", "function", ".", "TO_CLEAR_BITMAP", "indicates", "which", "registers", "are", "to", "be", "fully", "cleared", ",", "using", "the", "value", "in", "register", "CLEARING_REG", "if", "more", "efficient", ".", "The", "PADDING_BITS_LEN", "entries", "array", "PADDING_BITS_TO_CLEAR", "gives", "the", "bits", "that", "needs", "to", "be", "cleared", "in", "caller-saved", "core", "registers", ",", "with", "SCRATCH_REG", "used", "as", "a", "scratch", "register", "for", "that", "clearing", ".", "NOTE", ":", "one", "of", "three", "following", "assertions", "must", "hold", ":", "-", "SCRATCH_REG", "is", "a", "low", "register", "-", "CLEARING_REG", "is", "in", "the", "set", "of", "registers", "fully", "cleared", "(", "ie", ".", "its", "bit", "is", "set", "in", "TO_CLEAR_BITMAP", ")", "-", "CLEARING_REG", "is", "a", "low", "register", "."], "TS_V_token": ["arm", "1", "0", "0", "0xFFFF", "16", "16", "1"], "File": "arm7", "Func": "cmse_clear_registers", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44869, "Length": 473}
{"ground_truth": ["", "void", "cmse_nonsecure_entry_clear_before_return", "(", "void", ")", "{", "int", "regno", ",", "maxregno", "=", "TARGET_HARD_FLOAT", "?", "LAST_VFP_REGNUM", ":", "IP_REGNUM", ";", "uint32_t", "padding_bits_to_clear", "=", "0", ";", "auto_sbitmap", "to_clear_bitmap", "(", "maxregno", "+", "1", ")", ";", "rtx", "r1_reg", ",", "result_rtl", ",", "clearing_reg", "=", "NULL_RTX", ";", "tree", "result_type", ";", "bitmap_clear", "(", "to_clear_bitmap", ")", ";", "bitmap_set_range", "(", "to_clear_bitmap", ",", "R0_REGNUM", ",", "NUM_ARG_REGS", ")", ";", "bitmap_set_bit", "(", "to_clear_bitmap", ",", "IP_REGNUM", ")", ";", "if", "(", "TARGET_HARD_FLOAT", ")", "{", "int", "float_bits", "=", "D7_VFP_REGNUM", "-", "FIRST_VFP_REGNUM", "+", "1", ";", "bitmap_set_range", "(", "to_clear_bitmap", ",", "FIRST_VFP_REGNUM", ",", "float_bits", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "SImode", ",", "IP_REGNUM", ")", ")", ";", "bitmap_clear_bit", "(", "to_clear_bitmap", ",", "IP_REGNUM", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "SImode", ",", "4", ")", ")", ";", "bitmap_clear_bit", "(", "to_clear_bitmap", ",", "4", ")", ";", "}", "for", "(", "regno", "=", "NUM_ARG_REGS", ";", "regno", "<=", "maxregno", ";", "regno", "++", ")", "{", "if", "(", "IN_RANGE", "(", "regno", ",", "FIRST_VFP_REGNUM", ",", "D7_VFP_REGNUM", ")", ")", "continue", ";", "if", "(", "IN_RANGE", "(", "regno", ",", "IP_REGNUM", ",", "PC_REGNUM", ")", ")", "continue", ";", "if", "(", "call_used_regs", "[", "regno", "]", ")", "bitmap_set_bit", "(", "to_clear_bitmap", ",", "regno", ")", ";", "}", "result_type", "=", "TREE_TYPE", "(", "DECL_RESULT", "(", "current_function_decl", ")", ")", ";", "if", "(", "!", "VOID_TYPE_P", "(", "result_type", ")", ")", "{", "uint64_t", "to_clear_return_mask", ";", "result_rtl", "=", "arm_function_value", "(", "result_type", ",", "current_function_decl", ",", "0", ")", ";", "gcc_assert", "(", "REG_P", "(", "result_rtl", ")", ")", ";", "to_clear_return_mask", "=", "compute_not_to_clear_mask", "(", "result_type", ",", "result_rtl", ",", "0", ",", "&", "padding_bits_to_clear", ")", ";", "if", "(", "to_clear_return_mask", ")", "{", "gcc_assert", "(", "(", "unsigned", ")", "maxregno", "<", "sizeof", "(", "long", "long", ")", "*", "__CHAR_BIT__", ")", ";", "for", "(", "regno", "=", "R0_REGNUM", ";", "regno", "<=", "maxregno", ";", "regno", "++", ")", "{", "if", "(", "to_clear_return_mask", "&", "(", "1ULL", "<<", "regno", ")", ")", "bitmap_clear_bit", "(", "to_clear_bitmap", ",", "regno", ")", ";", "}", "}", "}", "if", "(", "padding_bits_to_clear", "!=", "0", ")", "{", "int", "to_clear_bitmap_size", "=", "SBITMAP_SIZE", "(", "(", "sbitmap", ")", "to_clear_bitmap", ")", ";", "auto_sbitmap", "to_clear_arg_regs_bitmap", "(", "to_clear_bitmap_size", ")", ";", "bitmap_clear", "(", "to_clear_arg_regs_bitmap", ")", ";", "bitmap_set_range", "(", "to_clear_arg_regs_bitmap", ",", "R1_REGNUM", ",", "NUM_ARG_REGS", "-", "1", ")", ";", "gcc_assert", "(", "bitmap_subset_p", "(", "to_clear_arg_regs_bitmap", ",", "to_clear_bitmap", ")", ")", ";", "}", "clearing_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "TARGET_THUMB1", "?", "R0_REGNUM", ":", "LR_REGNUM", ")", ";", "r1_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "R0_REGNUM", "+", "1", ")", ";", "cmse_clear_registers", "(", "to_clear_bitmap", ",", "&", "padding_bits_to_clear", ",", "1", ",", "r1_reg", ",", "clearing_reg", ")", ";", "}", ""], "natrual_language": ["Clear", "caller", "saved", "registers", "not", "used", "to", "pass", "return", "values", "and", "leaked", "condition", "flags", "before", "exiting", "a", "cmse_nonsecure_entry", "function", "."], "TS_V_token": ["arm", "0", "1", "1", "4", "4", "0", "0", "1ULL", "0", "1", "1", "1"], "File": "arm7", "Func": "cmse_nonsecure_entry_clear_before_return", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44870, "Length": 376}
{"ground_truth": ["", "bool", "gen_ldm_seq", "(", "rtx", "*", "operands", ",", "int", "nops", ",", "bool", "sort_regs", ")", "{", "int", "regs", "[", "MAX_LDM_STM_OPS", "]", ",", "mem_order", "[", "MAX_LDM_STM_OPS", "]", ";", "rtx", "mems", "[", "MAX_LDM_STM_OPS", "]", ";", "int", "i", ",", "j", ",", "base_reg", ";", "rtx", "base_reg_rtx", ";", "HOST_WIDE_INT", "offset", ";", "int", "write_back", "=", "FALSE", ";", "int", "ldm_case", ";", "rtx", "addr", ";", "ldm_case", "=", "load_multiple_sequence", "(", "operands", ",", "nops", ",", "regs", ",", "mem_order", ",", "&", "base_reg", ",", "&", "offset", ",", "!", "sort_regs", ")", ";", "if", "(", "ldm_case", "==", "0", ")", "return", "false", ";", "if", "(", "sort_regs", ")", "for", "(", "i", "=", "0", ";", "i", "<", "nops", "-", "1", ";", "i", "++", ")", "for", "(", "j", "=", "i", "+", "1", ";", "j", "<", "nops", ";", "j", "++", ")", "if", "(", "regs", "[", "i", "]", ">", "regs", "[", "j", "]", ")", "{", "int", "t", "=", "regs", "[", "i", "]", ";", "regs", "[", "i", "]", "=", "regs", "[", "j", "]", ";", "regs", "[", "j", "]", "=", "t", ";", "}", "base_reg_rtx", "=", "gen_rtx_REG", "(", "Pmode", ",", "base_reg", ")", ";", "if", "(", "TARGET_THUMB1", ")", "{", "gcc_assert", "(", "peep2_reg_dead_p", "(", "nops", ",", "base_reg_rtx", ")", ")", ";", "gcc_assert", "(", "ldm_case", "==", "1", "||", "ldm_case", "==", "5", ")", ";", "write_back", "=", "TRUE", ";", "}", "if", "(", "ldm_case", "==", "5", ")", "{", "rtx", "newbase", "=", "TARGET_THUMB1", "?", "base_reg_rtx", ":", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "0", "]", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "newbase", ",", "base_reg_rtx", ",", "GEN_INT", "(", "offset", ")", ")", ")", ";", "offset", "=", "0", ";", "if", "(", "!", "TARGET_THUMB1", ")", "base_reg_rtx", "=", "newbase", ";", "}", "for", "(", "i", "=", "0", ";", "i", "<", "nops", ";", "i", "++", ")", "{", "addr", "=", "plus_constant", "(", "Pmode", ",", "base_reg_rtx", ",", "offset", "+", "i", "*", "4", ")", ";", "mems", "[", "i", "]", "=", "adjust_automodify_address_nv", "(", "operands", "[", "nops", "+", "mem_order", "[", "i", "]", "]", ",", "SImode", ",", "addr", ",", "0", ")", ";", "}", "emit_insn", "(", "arm_gen_load_multiple_1", "(", "nops", ",", "regs", ",", "mems", ",", "base_reg_rtx", ",", "write_back", "?", "offset", "+", "i", "*", "4", ":", "0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Called", "from", "a", "peephole2", "expander", "to", "turn", "a", "sequence", "of", "loads", "into", "an", "LDM", "instruction", ".", "OPERANDS", "are", "the", "operands", "found", "by", "the", "peephole", "matcher", ";", "NOPS", "indicates", "how", "many", "separate", "loads", "we", "are", "trying", "to", "combine", ".", "SORT_REGS", "is", "true", "if", "we", "can", "reorder", "the", "registers", "because", "they", "are", "used", "commutatively", "subsequently", ".", "Returns", "true", "iff", "we", "could", "generate", "a", "new", "instruction", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "5", "5", "0", "0", "0", "4", "0", "4", "0"], "File": "arm7", "Func": "gen_ldm_seq", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44871, "Length": 334}
{"ground_truth": ["", "static", "bool", "mem_ok_for_ldrd_strd", "(", "rtx", "mem", ",", "rtx", "*", "base", ",", "rtx", "*", "offset", ",", "HOST_WIDE_INT", "*", "align", ")", "{", "rtx", "addr", ";", "gcc_assert", "(", "base", "!=", "NULL", "&&", "offset", "!=", "NULL", ")", ";", "if", "(", "side_effects_p", "(", "mem", ")", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "mem", ")", "==", "SUBREG", ")", "return", "false", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "*", "offset", "=", "const0_rtx", ";", "*", "align", "=", "MEM_ALIGN", "(", "mem", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "if", "(", "!", "arm_legitimate_address_p", "(", "DImode", ",", "addr", ",", "reload_in_progress", "||", "reload_completed", ")", ")", "return", "false", ";", "if", "(", "REG_P", "(", "addr", ")", ")", "{", "*", "base", "=", "addr", ";", "return", "true", ";", "}", "else", "if", "(", "GET_CODE", "(", "addr", ")", "==", "PLUS", "||", "GET_CODE", "(", "addr", ")", "==", "MINUS", ")", "{", "*", "base", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "*", "offset", "=", "XEXP", "(", "addr", ",", "1", ")", ";", "return", "(", "REG_P", "(", "*", "base", ")", "&&", "CONST_INT_P", "(", "*", "offset", ")", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Helper", "for", "gen_operands_ldrd_strd", ".", "Returns", "true", "iff", "the", "memory", "operand", "MEM", "'s", "address", "contains", "an", "immediate", "offset", "from", "the", "base", "register", "and", "has", "no", "side", "effects", ",", "in", "which", "case", "it", "sets", "BASE", "and", "OFFSET", "accordingly", "."], "TS_V_token": ["arm", "0", "0", "1"], "File": "arm7", "Func": "mem_ok_for_ldrd_strd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44872, "Length": 178}
{"ground_truth": ["", "static", "unsigned", "long", "thumb1_compute_save_core_reg_mask", "(", "void", ")", "{", "unsigned", "long", "mask", ";", "unsigned", "reg", ";", "mask", "=", "0", ";", "for", "(", "reg", "=", "0", ";", "reg", "<", "12", ";", "reg", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "if", "(", "frame_pointer_needed", ")", "mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "crtl", "->", "uses_pic_offset_table", ")", "mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "if", "(", "!", "frame_pointer_needed", "&&", "CALLER_INTERWORKING_SLOT_SIZE", ">", "0", ")", "mask", "|=", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "mask", "&", "0xff", "||", "thumb_force_lr_save", "(", ")", ")", "mask", "|=", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "(", "mask", "&", "0xff", ")", "==", "0", "&&", "(", "(", "mask", "&", "0x0f00", ")", "||", "TARGET_BACKTRACE", ")", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "LAST_LO_REGNUM", ")", ";", "if", "(", "reg", "*", "UNITS_PER_WORD", "<=", "(", "unsigned", ")", "arm_size_return_regs", "(", ")", ")", "reg", "=", "LAST_LO_REGNUM", ";", "if", "(", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "}", "if", "(", "(", "CALLER_INTERWORKING_SLOT_SIZE", "+", "ROUND_UP_WORD", "(", "get_frame_size", "(", ")", ")", "+", "crtl", "->", "outgoing_args_size", ")", ">=", "504", ")", "{", "for", "(", "reg", "=", "LAST_ARG_REGNUM", "+", "1", ";", "reg", "<=", "LAST_LO_REGNUM", ";", "reg", "++", ")", "if", "(", "mask", "&", "(", "1", "<<", "reg", ")", ")", "break", ";", "if", "(", "reg", ">", "LAST_LO_REGNUM", ")", "{", "mask", "|=", "1", "<<", "LAST_LO_REGNUM", ";", "}", "}", "return", "mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "core", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "0", "12", "1", "1", "1", "0", "1", "0xff", "1", "0xff", "0", "0x0f00", "1", "1", "504", "1", "1", "1"], "File": "arm7", "Func": "thumb1_compute_save_core_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44873, "Length": 241}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_address_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", ";", "if", "(", "!", "CONST_INT_P", "(", "addend", ")", ")", "return", "0", ";", "offset", "=", "INTVAL", "(", "addend", ")", ";", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "return", "(", "offset", ">", "-", "256", "&&", "offset", "<", "256", ")", ";", "return", "(", "use_ldrd", "&&", "offset", ">", "-", "1024", "&&", "offset", "<", "1024", "&&", "(", "offset", "&", "3", ")", "==", "0", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "(", "thumb2_legitimate_index_p", "(", "mode", ",", "xop1", ",", "strict_p", ")", "||", "(", "!", "strict_p", "&&", "will_be_in_index_register", "(", "xop1", ")", ")", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "thumb2_legitimate_index_p", "(", "mode", ",", "xop0", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "can_avoid_literal_pool_for_label_p", "(", "x", ")", ")", "return", "0", ";", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "Thumb-2", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "256", "256", "1024", "1024", "3", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "0"], "File": "arm7", "Func": "thumb2_legitimate_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44874, "Length": 462}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_index_p", "(", "machine_mode", "mode", ",", "rtx", "index", ",", "int", "strict_p", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "index", ")", ";", "if", "(", "TARGET_HARD_FLOAT", "&&", "(", "mode", "==", "SFmode", "||", "mode", "==", "DFmode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ")", "{", "if", "(", "!", "TARGET_LDRD", "||", "mode", "!=", "DImode", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "}", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_QREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1016", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_DREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "index", ",", "strict_p", ")", "&&", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", "return", "1", ";", "if", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", "{", "if", "(", "code", "==", "CONST_INT", ")", "{", "HOST_WIDE_INT", "val", "=", "INTVAL", "(", "index", ")", ";", "if", "(", "TARGET_LDRD", ")", "return", "IN_RANGE", "(", "val", ",", "-", "1020", ",", "1020", ")", "&&", "(", "val", "&", "3", ")", "==", "0", ";", "else", "return", "IN_RANGE", "(", "val", ",", "-", "255", ",", "4095", "-", "4", ")", ";", "}", "else", "return", "0", ";", "}", "if", "(", "code", "==", "MULT", ")", "{", "rtx", "xiop0", "=", "XEXP", "(", "index", ",", "0", ")", ";", "rtx", "xiop1", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xiop0", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop1", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xiop1", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop0", ")", ")", ")", ";", "}", "else", "if", "(", "code", "==", "ASHIFT", ")", "{", "rtx", "op", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "XEXP", "(", "index", ",", "0", ")", ",", "strict_p", ")", "&&", "CONST_INT_P", "(", "op", ")", "&&", "INTVAL", "(", "op", ")", ">", "0", "&&", "INTVAL", "(", "op", ")", "<=", "3", ")", ";", "}", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "4096", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "INDEX", "is", "a", "valid", "Thumb-2", "address", "index", "operand", "."], "TS_V_token": ["arm", "1024", "256", "3", "0", "1024", "1024", "3", "0", "1016", "1024", "3", "0", "1024", "1024", "3", "0", "4", "1", "1020", "1020", "3", "0", "255", "4095", "4", "0", "0", "1", "1", "0", "0", "3", "4096", "256"], "File": "arm7", "Func": "thumb2_legitimate_index_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44875, "Length": 432}
{"ground_truth": ["", "static", "bool", "aapcs_vfp_is_call_or_return_candidate", "(", "enum", "arm_pcs", "pcs_variant", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "machine_mode", "*", "base_mode", ",", "int", "*", "count", ")", "{", "machine_mode", "new_mode", "=", "VOIDmode", ";", "if", "(", "type", ")", "{", "int", "ag_count", "=", "aapcs_vfp_sub_candidate", "(", "type", ",", "&", "new_mode", ")", ";", "if", "(", "ag_count", ">", "0", "&&", "ag_count", "<=", "4", ")", "*", "count", "=", "ag_count", ";", "else", "return", "false", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_FLOAT", ")", "{", "*", "count", "=", "1", ";", "new_mode", "=", "mode", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_COMPLEX_FLOAT", ")", "{", "*", "count", "=", "2", ";", "new_mode", "=", "(", "mode", "==", "DCmode", "?", "DFmode", ":", "SFmode", ")", ";", "}", "else", "return", "false", ";", "if", "(", "!", "use_vfp_abi", "(", "pcs_variant", ",", "ARM_NUM_REGS", "(", "new_mode", ")", ">", "1", ")", ")", "return", "false", ";", "*", "base_mode", "=", "new_mode", ";", "if", "(", "TARGET_GENERAL_REGS_ONLY", ")", "error", "(", "\"argument of type %qT not permitted with -mgeneral-regs-only\"", ",", "type", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "true", "if", "an", "argument", "whose", "type", "is", "TYPE", ",", "or", "mode", "is", "MODE", ",", "is", "suitable", "for", "passing", "or", "returning", "in", "VFP", "registers", "for", "the", "PCS", "variant", "selected", ".", "If", "it", "is", ",", "then", "*", "BASE_MODE", "is", "updated", "to", "contain", "a", "machine", "mode", "describing", "each", "element", "of", "the", "argument", "'s", "type", "and", "*", "COUNT", "to", "hold", "the", "number", "of", "such", "elements", "."], "TS_V_token": ["arm", "0", "4", "1", "2", "1", "\"argument of type %qT not permitted with -mgeneral-regs-only\""], "File": "arm8", "Func": "aapcs_vfp_is_call_or_return_candidate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44876, "Length": 170}
{"ground_truth": ["", "void", "arm_emit_call_insn", "(", "rtx", "pat", ",", "rtx", "addr", ",", "bool", "sibcall", ")", "{", "rtx", "insn", ";", "insn", "=", "emit_call_insn", "(", "pat", ")", ";", "if", "(", "TARGET_VXWORKS_RTP", "&&", "flag_pic", "&&", "!", "sibcall", "&&", "GET_CODE", "(", "addr", ")", "==", "SYMBOL_REF", "&&", "(", "SYMBOL_REF_DECL", "(", "addr", ")", "?", "!", "targetm", ".", "binds_local_p", "(", "SYMBOL_REF_DECL", "(", "addr", ")", ")", ":", "!", "SYMBOL_REF_LOCAL_P", "(", "addr", ")", ")", ")", "{", "require_pic_register", "(", "NULL_RTX", ",", "false", ")", ";", "use_reg", "(", "&", "CALL_INSN_FUNCTION_USAGE", "(", "insn", ")", ",", "cfun", "->", "machine", "->", "pic_reg", ")", ";", "}", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "rtx", "*", "fusage", "=", "&", "CALL_INSN_FUNCTION_USAGE", "(", "insn", ")", ";", "clobber_reg", "(", "fusage", ",", "gen_rtx_REG", "(", "word_mode", ",", "IP_REGNUM", ")", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "a", "call", "instruction", "with", "pattern", "PAT", ".", "ADDR", "is", "the", "address", "of", "the", "call", "target", "."], "TS_V_token": ["arm"], "File": "arm8", "Func": "arm_emit_call_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44877, "Length": 116}
{"ground_truth": ["", "static", "rtx", "arm_function_arg", "(", "cumulative_args_t", "pcum_v", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "bool", "named", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "if", "(", "mode", "==", "VOIDmode", ")", "return", "const0_rtx", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "aapcs_layout_arg", "(", "pcum", ",", "mode", ",", "type", ",", "named", ")", ";", "return", "pcum", "->", "aapcs_reg", ";", "}", "if", "(", "TARGET_IWMMXT_ABI", "&&", "arm_vector_mode_supported_p", "(", "mode", ")", "&&", "pcum", "->", "named_count", ">", "pcum", "->", "nargs", "+", "1", ")", "{", "if", "(", "pcum", "->", "iwmmxt_nregs", "<=", "9", ")", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "iwmmxt_nregs", "+", "FIRST_IWMMXT_REGNUM", ")", ";", "else", "{", "pcum", "->", "can_split", "=", "false", ";", "return", "NULL_RTX", ";", "}", "}", "if", "(", "(", "pcum", "->", "nregs", "&", "1", ")", "&&", "ARM_DOUBLEWORD_ALIGN", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", ",", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "{", "pcum", "->", "nregs", "++", ";", "if", "(", "res", ">", "1", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\"", ",", "type", ")", ";", "}", "}", "if", "(", "pcum", "->", "can_split", ")", "nregs", "=", "1", ";", "else", "nregs", "=", "ARM_NUM_REGS2", "(", "mode", ",", "type", ")", ";", "if", "(", "!", "named", "||", "pcum", "->", "nregs", "+", "nregs", ">", "NUM_ARG_REGS", ")", "return", "NULL_RTX", ";", "return", "gen_rtx_REG", "(", "mode", ",", "pcum", "->", "nregs", ")", ";", "}", ""], "natrual_language": ["Determine", "where", "to", "put", "an", "argument", "to", "a", "function", ".", "Value", "is", "zero", "to", "push", "the", "argument", "on", "the", "stack", ",", "or", "a", "hard", "register", "in", "which", "to", "store", "the", "argument", ".", "MODE", "is", "the", "argument", "'s", "machine", "mode", ".", "TYPE", "is", "the", "data", "type", "of", "the", "argument", "(", "as", "a", "tree", ")", ".", "This", "is", "null", "for", "libcalls", "where", "that", "information", "may", "not", "be", "available", ".", "CUM", "is", "a", "variable", "of", "type", "CUMULATIVE_ARGS", "which", "gives", "info", "about", "the", "preceding", "args", "and", "about", "the", "function", "being", "called", ".", "NAMED", "is", "nonzero", "if", "this", "argument", "is", "a", "named", "parameter", "(", "otherwise", "it", "is", "an", "extra", "parameter", "matching", "an", "ellipsis", ")", ".", "On", "the", "ARM", ",", "normally", "the", "first", "16", "bytes", "are", "passed", "in", "registers", "r0-r3", ";", "all", "other", "arguments", "are", "passed", "on", "the", "stack", ".", "If", "(", "NAMED", "==", "0", ")", "(", "which", "happens", "only", "in", "assign_parms", ",", "since", "TARGET_SETUP_INCOMING_VARARGS", "is", "defined", ")", ",", "say", "it", "is", "passed", "in", "the", "stack", "(", "function_prologue", "will", "indeed", "make", "it", "pass", "in", "the", "stack", "if", "necessary", ")", "."], "TS_V_token": ["arm", "1", "9", "1", "0", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", "0", "1", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\"", "1"], "File": "arm8", "Func": "arm_function_arg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44878, "Length": 238}
{"ground_truth": ["", "void", "arm_load_pic_register", "(", "unsigned", "long", "saved_regs", "ATTRIBUTE_UNUSED", ",", "rtx", "pic_reg", ")", "{", "rtx", "l1", ",", "labelno", ",", "pic_tmp", ",", "pic_rtx", ";", "if", "(", "crtl", "->", "uses_pic_offset_table", "==", "0", "||", "TARGET_SINGLE_PIC_BASE", ")", "return", ";", "gcc_assert", "(", "flag_pic", ")", ";", "if", "(", "pic_reg", "==", "NULL_RTX", ")", "pic_reg", "=", "cfun", "->", "machine", "->", "pic_reg", ";", "if", "(", "TARGET_VXWORKS_RTP", ")", "{", "pic_rtx", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_BASE", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "emit_insn", "(", "gen_pic_load_addr_32bit", "(", "pic_reg", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "pic_reg", ",", "gen_rtx_MEM", "(", "Pmode", ",", "pic_reg", ")", ")", ")", ";", "pic_tmp", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_INDEX", ")", ";", "emit_insn", "(", "gen_pic_offset_arm", "(", "pic_reg", ",", "pic_reg", ",", "pic_tmp", ")", ")", ";", "}", "else", "{", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "pic_rtx", "=", "plus_constant", "(", "Pmode", ",", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "pic_rtx", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "pic_rtx", ")", ",", "UNSPEC_GOTSYM_OFF", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "else", "{", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", ">", "LAST_LO_REGNUM", ")", "{", "pic_tmp", "=", "gen_rtx_REG", "(", "SImode", ",", "thumb_find_work_register", "(", "saved_regs", ")", ")", ";", "emit_insn", "(", "gen_pic_load_addr_thumb1", "(", "pic_tmp", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "pic_offset_table_rtx", ",", "pic_tmp", ")", ")", ";", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "pic_reg", ",", "pic_reg", ",", "labelno", ")", ")", ";", "}", "else", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", "<=", "LAST_LO_REGNUM", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "emit_move_insn", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ",", "pic_reg", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ")", ";", "}", "else", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "}", "emit_use", "(", "pic_reg", ")", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "PIC", "register", ".", "In", "thumb", "mode", "SCRATCH", "is", "a", "low", "register", "."], "TS_V_token": ["arm", "0", "1", "8", "4", "1"], "File": "arm8", "Func": "arm_load_pic_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44879, "Length": 351}
{"ground_truth": ["", "void", "arm_options_perform_arch_sanity_checks", "(", "void", ")", "{", "if", "(", "TARGET_INTERWORK", ")", "arm_cpp_interwork", "=", "1", ";", "if", "(", "arm_arch5t", ")", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "if", "(", "TARGET_IWMMXT", "&&", "!", "ARM_DOUBLEWORD_ALIGN", ")", "error", "(", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", ")", ";", "if", "(", "TARGET_IWMMXT_ABI", "&&", "!", "TARGET_IWMMXT", ")", "error", "(", "\"iwmmxt abi requires an iwmmxt capable cpu\"", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "TARGET_BPABI", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support interworking\"", ")", ";", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_SOFT_FLOAT", ")", "arm_fpu_attr", "=", "FPU_NONE", ";", "else", "arm_fpu_attr", "=", "FPU_VFP", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "TARGET_CALLER_INTERWORKING", ")", "error", "(", "\"AAPCS does not support %<-mcaller-super-interworking%>\"", ")", ";", "else", "if", "(", "TARGET_CALLEE_INTERWORKING", ")", "error", "(", "\"AAPCS does not support %<-mcallee-super-interworking%>\"", ")", ";", "}", "if", "(", "!", "arm_arch4", "&&", "arm_fp16_format", "!=", "ARM_FP16_FORMAT_NONE", ")", "sorry", "(", "\"__fp16 and no ldrh\"", ")", ";", "if", "(", "use_cmse", "&&", "!", "arm_arch_cmse", ")", "error", "(", "\"target CPU does not support ARMv8-M Security Extensions\"", ")", ";", "if", "(", "use_cmse", "&&", "LAST_VFP_REGNUM", ">", "LAST_LO_VFP_REGNUM", ")", "error", "(", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "arm_abi", "==", "ARM_ABI_IWMMXT", ")", "arm_pcs_default", "=", "ARM_PCS_AAPCS_IWMMXT", ";", "else", "if", "(", "TARGET_HARD_FLOAT_ABI", ")", "{", "arm_pcs_default", "=", "ARM_PCS_AAPCS_VFP", ";", "if", "(", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_vfpv2", ")", ")", "error", "(", "\"%<-mfloat-abi=hard%>: selected processor lacks an FPU\"", ")", ";", "}", "else", "arm_pcs_default", "=", "ARM_PCS_AAPCS", ";", "}", "else", "{", "if", "(", "arm_float_abi", "==", "ARM_FLOAT_ABI_HARD", ")", "sorry", "(", "\"%<-mfloat-abi=hard%> and VFP\"", ")", ";", "if", "(", "arm_abi", "==", "ARM_ABI_APCS", ")", "arm_pcs_default", "=", "ARM_PCS_APCS", ";", "else", "arm_pcs_default", "=", "ARM_PCS_ATPCS", ";", "}", "}", ""], "natrual_language": ["Perform", "some", "validation", "between", "the", "desired", "architecture", "and", "the", "rest", "of", "the", "options", "."], "TS_V_token": ["arm", "1", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", "\"iwmmxt abi requires an iwmmxt capable cpu\"", "0", "\"target CPU does not support interworking\"", "\"AAPCS does not support %<-mcaller-super-interworking%>\"", "\"AAPCS does not support %<-mcallee-super-interworking%>\"", "\"__fp16 and no ldrh\"", "\"target CPU does not support ARMv8-M Security Extensions\"", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", "\"%<-mfloat-abi=hard%>: selected processor lacks an FPU\"", "\"%<-mfloat-abi=hard%> and VFP\""], "File": "arm8", "Func": "arm_options_perform_arch_sanity_checks", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44880, "Length": 234}
{"ground_truth": ["", "static", "void", "arm_option_check_internal", "(", "struct", "gcc_options", "*", "opts", ")", "{", "int", "flags", "=", "opts", "->", "x_target_flags", ";", "if", "(", "TARGET_IWMMXT", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_neon", ")", ")", "error", "(", "\"iWMMXt and NEON are incompatible\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_notm", ")", ")", "error", "(", "\"target CPU does not support ARM mode\"", ")", ";", "if", "(", "(", "TARGET_TPCS_FRAME", "||", "TARGET_TPCS_LEAF_FRAME", ")", "&&", "TARGET_ARM_P", "(", "flags", ")", ")", "warning", "(", "0", ",", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "warning", "(", "0", ",", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "write_symbols", "!=", "NO_DEBUG", "&&", "!", "TARGET_APCS_FRAME", "&&", "(", "TARGET_DEFAULT", "&", "MASK_APCS_FRAME", ")", ")", "warning", "(", "0", ",", "\"%<-g%> with %<-mno-apcs-frame%> may not give sensible \"", "\"debugging\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_IWMMXT", ")", "error", "(", "\"iWMMXt unsupported under Thumb mode\"", ")", ";", "if", "(", "TARGET_HARD_TP", "&&", "TARGET_THUMB1_P", "(", "flags", ")", ")", "error", "(", "\"cannot use %<-mtp=cp15%> with 16-bit Thumb\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_VXWORKS_RTP", "&&", "flag_pic", ")", "{", "error", "(", "\"RTP PIC is incompatible with Thumb\"", ")", ";", "flag_pic", "=", "0", ";", "}", "if", "(", "target_pure_code", "||", "target_slow_flash_data", ")", "{", "const", "char", "*", "flag", "=", "(", "target_pure_code", "?", "\"-mpure-code\"", ":", "\"-mslow-flash-data\"", ")", ";", "if", "(", "!", "TARGET_HAVE_MOVT", "||", "arm_arch_notm", "||", "flag_pic", "||", "TARGET_NEON", ")", "error", "(", "\"%s only supports non-pic code on M-profile targets with the \"", "\"MOVT instruction\"", ",", "flag", ")", ";", "if", "(", "target_word_relocations", ")", "error", "(", "\"%s incompatible with %<-mword-relocations%>\"", ",", "flag", ")", ";", "}", "}", ""], "natrual_language": ["Check", "any", "incompatible", "options", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "\"iWMMXt and NEON are incompatible\"", "\"target CPU does not support ARM mode\"", "0", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", "0", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", "0", "\"%<-g%> with %<-mno-apcs-frame%> may not give sensible \"", "\"debugging\"", "\"iWMMXt unsupported under Thumb mode\"", "\"cannot use %<-mtp=cp15%> with 16-bit Thumb\"", "\"RTP PIC is incompatible with Thumb\"", "0", "\"-mpure-code\"", "\"-mslow-flash-data\"", "\"%s only supports non-pic code on M-profile targets with the \"", "\"MOVT instruction\"", "\"%s incompatible with %<-mword-relocations%>\""], "File": "arm8", "Func": "arm_option_check_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44881, "Length": 223}
{"ground_truth": ["", "static", "void", "arm_option_override_internal", "(", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "arm_override_options_after_change_1", "(", "opts", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support THUMB instructions\"", ")", ";", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "}", "if", "(", "TARGET_APCS_FRAME", "&&", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_APCS_FRAME", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "opts", "->", "x_target_flags", "|=", "MASK_INTERWORK", ";", "cl_optimization", "*", "to", "=", "TREE_OPTIMIZATION", "(", "init_optimize", ")", ";", "if", "(", "!", "opts_set", "->", "x_arm_restrict_it", ")", "opts", "->", "x_arm_restrict_it", "=", "arm_arch8", ";", "if", "(", "!", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", "||", "!", "arm_arch_notm", ")", "opts", "->", "x_arm_restrict_it", "=", "0", ";", "if", "(", "!", "opts_set", "->", "x_unaligned_access", ")", "{", "opts", "->", "x_unaligned_access", "=", "(", "TARGET_32BIT_P", "(", "opts", "->", "x_target_flags", ")", "&&", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ";", "}", "else", "if", "(", "opts", "->", "x_unaligned_access", "==", "1", "&&", "!", "(", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support unaligned accesses\"", ")", ";", "opts", "->", "x_unaligned_access", "=", "0", ";", "}", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_schedule_insns", "=", "0", ";", "else", "opts", "->", "x_flag_schedule_insns", "=", "to", "->", "x_flag_schedule_insns", ";", "if", "(", "optimize_function_for_size_p", "(", "cfun", ")", "&&", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_shrink_wrap", "=", "false", ";", "else", "opts", "->", "x_flag_shrink_wrap", "=", "to", "->", "x_flag_shrink_wrap", ";", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_ipa_ra", "=", "0", ";", "else", "opts", "->", "x_flag_ipa_ra", "=", "to", "->", "x_flag_ipa_ra", ";", "if", "(", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_inline_asm_unified", "=", "true", ";", "SUBTARGET_OVERRIDE_INTERNAL_OPTIONS", ";", "}", ""], "natrual_language": ["Reset", "options", "between", "modes", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "0", "\"target CPU does not support THUMB instructions\"", "0", "1", "0", "\"target CPU does not support unaligned accesses\"", "0", "0", "0"], "File": "arm8", "Func": "arm_option_override_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44882, "Length": 316}
{"ground_truth": ["", "void", "arm_option_reconfigure_globals", "(", "void", ")", "{", "sprintf", "(", "arm_arch_name", ",", "\"__ARM_ARCH_%s__\"", ",", "arm_active_target", ".", "arch_pp_name", ")", ";", "arm_base_arch", "=", "arm_active_target", ".", "base_arch", ";", "arm_arch4", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv4", ")", ";", "arm_arch4t", "=", "arm_arch4", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ";", "arm_arch5t", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv5t", ")", ";", "arm_arch5te", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv5te", ")", ";", "arm_arch6", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv6", ")", ";", "arm_arch6k", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv6k", ")", ";", "arm_arch_notm", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_notm", ")", ";", "arm_arch6m", "=", "arm_arch6", "&&", "!", "arm_arch_notm", ";", "arm_arch7", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv7", ")", ";", "arm_arch7em", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv7em", ")", ";", "arm_arch8", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8", ")", ";", "arm_arch8_1", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_1", ")", ";", "arm_arch8_2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_2", ")", ";", "arm_arch8_3", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_3", ")", ";", "arm_arch8_4", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_4", ")", ";", "arm_arch_thumb1", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ";", "arm_arch_thumb2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb2", ")", ";", "arm_arch_xscale", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_xscale", ")", ";", "arm_arch_iwmmxt", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_iwmmxt", ")", ";", "arm_arch_iwmmxt2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_iwmmxt2", ")", ";", "arm_arch_thumb_hwdiv", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_tdiv", ")", ";", "arm_arch_arm_hwdiv", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_adiv", ")", ";", "arm_arch_crc", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_crc32", ")", ";", "arm_arch_cmse", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_cmse", ")", ";", "arm_fp16_inst", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_fp16", ")", ";", "arm_arch_lpae", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_lpae", ")", ";", "if", "(", "arm_fp16_inst", ")", "{", "if", "(", "arm_fp16_format", "==", "ARM_FP16_FORMAT_ALTERNATIVE", ")", "error", "(", "\"selected fp16 options are incompatible\"", ")", ";", "arm_fp16_format", "=", "ARM_FP16_FORMAT_IEEE", ";", "}", "arm_arch_no_volatile_ce", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_quirk_no_volatile_ce", ")", ";", "arm_arch6kz", "=", "arm_arch6k", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_quirk_armv6kz", ")", ";", "if", "(", "target_thread_pointer", "==", "TP_AUTO", ")", "{", "if", "(", "arm_arch6k", "&&", "!", "TARGET_THUMB1", ")", "target_thread_pointer", "=", "TP_CP15", ";", "else", "target_thread_pointer", "=", "TP_SOFT", ";", "}", "}", ""], "natrual_language": ["Reconfigure", "global", "status", "flags", "from", "the", "active_target.isa", "."], "TS_V_token": ["arm", "\"__ARM_ARCH_%s__\"", "\"selected fp16 options are incompatible\""], "File": "arm8", "Func": "arm_option_reconfigure_globals", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44883, "Length": 377}
{"ground_truth": ["", "static", "void", "arm_setup_incoming_varargs", "(", "cumulative_args_t", "pcum_v", ",", "machine_mode", "mode", ",", "tree", "type", ",", "int", "*", "pretend_size", ",", "int", "second_time", "ATTRIBUTE_UNUSED", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "cfun", "->", "machine", "->", "uses_anonymous_args", "=", "1", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "nregs", "=", "pcum", "->", "aapcs_ncrn", ";", "if", "(", "nregs", "&", "1", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", ",", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "{", "nregs", "++", ";", "if", "(", "res", ">", "1", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\"", ",", "type", ")", ";", "}", "}", "}", "else", "nregs", "=", "pcum", "->", "nregs", ";", "if", "(", "nregs", "<", "NUM_ARG_REGS", ")", "*", "pretend_size", "=", "(", "NUM_ARG_REGS", "-", "nregs", ")", "*", "UNITS_PER_WORD", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_SETUP_INCOMING_VARARGS", ".", "On", "the", "ARM", ",", "PRETEND_SIZE", "is", "set", "in", "order", "to", "have", "the", "prologue", "push", "the", "last", "named", "arg", "and", "all", "anonymous", "args", "onto", "the", "stack", ".", "XXX", "I", "know", "the", "prologue", "should", "n't", "be", "pushing", "registers", ",", "but", "it", "is", "faster", "that", "way", "."], "TS_V_token": ["arm", "1", "1", "0", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", "0", "1", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\""], "File": "arm8", "Func": "arm_setup_incoming_varargs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44884, "Length": 149}
{"ground_truth": ["", "static", "bool", "arm_valid_target_attribute_rec", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ")", "{", "if", "(", "TREE_CODE", "(", "args", ")", "==", "TREE_LIST", ")", "{", "bool", "ret", "=", "true", ";", "for", "(", ";", "args", ";", "args", "=", "TREE_CHAIN", "(", "args", ")", ")", "if", "(", "TREE_VALUE", "(", "args", ")", "&&", "!", "arm_valid_target_attribute_rec", "(", "TREE_VALUE", "(", "args", ")", ",", "opts", ")", ")", "ret", "=", "false", ";", "return", "ret", ";", "}", "else", "if", "(", "TREE_CODE", "(", "args", ")", "!=", "STRING_CST", ")", "{", "error", "(", "\"attribute % argument not a string\"", ")", ";", "return", "false", ";", "}", "char", "*", "argstr", "=", "ASTRDUP", "(", "TREE_STRING_POINTER", "(", "args", ")", ")", ";", "char", "*", "q", ";", "while", "(", "(", "q", "=", "strtok", "(", "argstr", ",", "\",\"", ")", ")", "!=", "NULL", ")", "{", "argstr", "=", "NULL", ";", "if", "(", "!", "strcmp", "(", "q", ",", "\"thumb\"", ")", ")", "opts", "->", "x_target_flags", "|=", "MASK_THUMB", ";", "else", "if", "(", "!", "strcmp", "(", "q", ",", "\"arm\"", ")", ")", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "else", "if", "(", "!", "strcmp", "(", "q", ",", "\"general-regs-only\"", ")", ")", "opts", "->", "x_target_flags", "|=", "MASK_GENERAL_REGS_ONLY", ";", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"fpu=\"", ",", "4", ")", ")", "{", "int", "fpu_index", ";", "if", "(", "!", "opt_enum_arg_to_value", "(", "OPT_mfpu_", ",", "q", "+", "4", ",", "&", "fpu_index", ",", "CL_TARGET", ")", ")", "{", "error", "(", "\"invalid fpu for target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "if", "(", "fpu_index", "==", "TARGET_FPU_auto", ")", "{", "sorry", "(", "\"auto fpu selection not currently permitted here\"", ")", ";", "return", "false", ";", "}", "opts", "->", "x_arm_fpu_index", "=", "(", "enum", "fpu_type", ")", "fpu_index", ";", "}", "else", "if", "(", "!", "strncmp", "(", "q", ",", "\"arch=\"", ",", "5", ")", ")", "{", "char", "*", "arch", "=", "q", "+", "5", ";", "const", "arch_option", "*", "arm_selected_arch", "=", "arm_parse_arch_option_name", "(", "all_architectures", ",", "\"arch\"", ",", "arch", ")", ";", "if", "(", "!", "arm_selected_arch", ")", "{", "error", "(", "\"invalid architecture for target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "opts", "->", "x_arm_arch_string", "=", "xstrndup", "(", "arch", ",", "strlen", "(", "arch", ")", ")", ";", "}", "else", "if", "(", "q", "[", "0", "]", "==", "'+'", ")", "{", "opts", "->", "x_arm_arch_string", "=", "xasprintf", "(", "\"%s%s\"", ",", "opts", "->", "x_arm_arch_string", ",", "q", ")", ";", "}", "else", "{", "error", "(", "\"unknown target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Inner", "function", "to", "process", "the", "attribute", "(", "(", "target", "(", "...", ")", ")", ")", ",", "take", "an", "argument", "and", "set", "the", "current", "options", "from", "the", "argument", ".", "If", "we", "have", "a", "list", ",", "recursively", "go", "over", "the", "list", "."], "TS_V_token": ["arm", "\"attribute % argument not a string\"", "\",\"", "\"thumb\"", "\"arm\"", "\"general-regs-only\"", "\"fpu=\"", "4", "4", "\"invalid fpu for target attribute or pragma %qs\"", "\"auto fpu selection not currently permitted here\"", "\"arch=\"", "5", "5", "\"arch\"", "\"invalid architecture for target attribute or pragma %qs\"", "0", "\"%s%s\"", "\"unknown target attribute or pragma %qs\""], "File": "arm8", "Func": "arm_valid_target_attribute_rec", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44885, "Length": 359}
{"ground_truth": ["", "int", "use_return_insn", "(", "int", "iscond", ",", "rtx", "sibling", ")", "{", "int", "regno", ";", "unsigned", "int", "func_type", ";", "unsigned", "long", "saved_int_regs", ";", "unsigned", "HOST_WIDE_INT", "stack_adjust", ";", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "func_type", "&", "(", "ARM_FT_VOLATILE", "|", "ARM_FT_NAKED", "|", "ARM_FT_STACKALIGN", ")", ")", "return", "0", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", "&&", "(", "frame_pointer_needed", "||", "TARGET_THUMB", ")", ")", "return", "0", ";", "if", "(", "TARGET_LDRD", "&&", "current_tune", "->", "prefer_ldrd_strd", "&&", "!", "optimize_function_for_size_p", "(", "cfun", ")", ")", "return", "0", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "stack_adjust", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "crtl", "->", "args", ".", "pretend_args_size", "||", "cfun", "->", "machine", "->", "uses_anonymous_args", "||", "crtl", "->", "calls_eh_return", "||", "cfun", "->", "calls_alloca", "||", "!", "(", "stack_adjust", "==", "0", "||", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "stack_adjust", "==", "4", ")", ")", "||", "(", "!", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", ")", "&&", "arm_compute_static_chain_stack_bytes", "(", ")", "!=", "0", ")", ")", "return", "0", ";", "saved_int_regs", "=", "offsets", "->", "saved_regs_mask", ";", "if", "(", "stack_adjust", "==", "4", "&&", "!", "arm_arch5t", "&&", "TARGET_ARM", ")", "{", "if", "(", "!", "call_used_regs", "[", "3", "]", ")", "return", "0", ";", "if", "(", "arm_size_return_regs", "(", ")", ">=", "(", "4", "*", "UNITS_PER_WORD", ")", ")", "return", "0", ";", "if", "(", "sibling", ")", "{", "gcc_assert", "(", "CALL_P", "(", "sibling", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "sibling", ",", "USE", ",", "3", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&", "0x7", ")", "return", "0", ";", "}", "if", "(", "TARGET_INTERWORK", "&&", "saved_int_regs", "!=", "0", "&&", "!", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "iscond", "&&", "arm_tune_strongarm", ")", "{", "if", "(", "saved_int_regs", "!=", "0", "&&", "saved_int_regs", "!=", "(", "1", "<<", "LR_REGNUM", ")", ")", "return", "0", ";", "if", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&&", "IS_CMSE_ENTRY", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "saved_int_regs", "&&", "!", "(", "saved_int_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "return", "0", ";", "if", "(", "TARGET_HARD_FLOAT", ")", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<=", "LAST_VFP_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "regno", ")", "&&", "!", "call_used_regs", "[", "regno", "]", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "'s", "epilogue", "can", "be", "output", "as", "RTL", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "4", "0", "0", "4", "3", "0", "4", "0", "3", "0", "0x7", "0", "0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "1"], "File": "arm8", "Func": "use_return_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44886, "Length": 404}
{"ground_truth": ["", "static", "void", "aapcs_layout_arg", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "bool", "named", ")", "{", "int", "nregs", ",", "nregs2", ";", "int", "ncrn", ";", "if", "(", "pcum", "->", "aapcs_arg_processed", ")", "return", ";", "pcum", "->", "aapcs_arg_processed", "=", "true", ";", "if", "(", "!", "named", ")", "return", ";", "if", "(", "pcum", "->", "pcs_variant", "!=", "ARM_PCS_AAPCS", ")", "{", "int", "slot", "=", "aapcs_select_call_coproc", "(", "pcum", ",", "mode", ",", "type", ")", ";", "pcum", "->", "aapcs_cprc_slot", "=", "slot", ";", "if", "(", "slot", ">=", "0", ")", "{", "if", "(", "!", "pcum", "->", "aapcs_cprc_failed", "[", "slot", "]", ")", "{", "if", "(", "aapcs_cp_arg_layout", "[", "slot", "]", ".", "allocate", "(", "pcum", ",", "mode", ",", "type", ")", ")", "return", ";", "pcum", "->", "aapcs_cprc_failed", "[", "slot", "]", "=", "true", ";", "pcum", "->", "can_split", "=", "false", ";", "}", "gcc_assert", "(", "pcum", "->", "can_split", "==", "false", ")", ";", "return", ";", "}", "}", "ncrn", "=", "pcum", "->", "aapcs_ncrn", ";", "if", "(", "ncrn", "&", "1", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "mode", ",", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", "&&", "currently_expanding_gimple_stmt", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", ",", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "ncrn", "++", ";", "}", "nregs", "=", "ARM_NUM_REGS2", "(", "mode", ",", "type", ")", ";", "gcc_assert", "(", "nregs", ">=", "0", ")", ";", "nregs2", "=", "nregs", "?", "nregs", ":", "1", ";", "if", "(", "ncrn", "+", "nregs2", "<=", "NUM_ARG_REGS", ")", "{", "pcum", "->", "aapcs_reg", "=", "gen_rtx_REG", "(", "mode", ",", "ncrn", ")", ";", "pcum", "->", "aapcs_next_ncrn", "=", "ncrn", "+", "nregs", ";", "return", ";", "}", "if", "(", "ncrn", "<", "NUM_ARG_REGS", "&&", "pcum", "->", "can_split", ")", "{", "pcum", "->", "aapcs_reg", "=", "gen_rtx_REG", "(", "mode", ",", "ncrn", ")", ";", "pcum", "->", "aapcs_next_ncrn", "=", "NUM_ARG_REGS", ";", "pcum", "->", "aapcs_partial", "=", "(", "NUM_ARG_REGS", "-", "ncrn", ")", "*", "UNITS_PER_WORD", ";", "return", ";", "}", "pcum", "->", "aapcs_next_ncrn", "=", "NUM_ARG_REGS", ";", "return", ";", "}", ""], "natrual_language": ["Lay", "out", "a", "function", "argument", "using", "the", "AAPCS", "rules", ".", "The", "rule", "numbers", "referred", "to", "here", "are", "those", "in", "the", "AAPCS", "."], "TS_V_token": ["arm", "0", "1", "0", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", "0", "0", "1"], "File": "arm", "Func": "aapcs_layout_arg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44887, "Length": 300}
{"ground_truth": ["", "static", "bool", "aapcs_vfp_allocate", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "machine_mode", "mode", ",", "const_tree", "type", "ATTRIBUTE_UNUSED", ")", "{", "int", "rmode_size", "=", "MAX", "(", "GET_MODE_SIZE", "(", "pcum", "->", "aapcs_vfp_rmode", ")", ",", "GET_MODE_SIZE", "(", "SFmode", ")", ")", ";", "int", "shift", "=", "rmode_size", "/", "GET_MODE_SIZE", "(", "SFmode", ")", ";", "unsigned", "mask", "=", "(", "1", "<<", "(", "shift", "*", "pcum", "->", "aapcs_vfp_rcount", ")", ")", "-", "1", ";", "int", "regno", ";", "for", "(", "regno", "=", "0", ";", "regno", "<", "NUM_VFP_ARG_REGS", ";", "regno", "+=", "shift", ")", "if", "(", "(", "(", "pcum", "->", "aapcs_vfp_regs_free", ">>", "regno", ")", "&", "mask", ")", "==", "mask", ")", "{", "pcum", "->", "aapcs_vfp_reg_alloc", "=", "mask", "<<", "regno", ";", "if", "(", "mode", "==", "BLKmode", "||", "(", "mode", "==", "TImode", "&&", "!", "(", "TARGET_NEON", "||", "TARGET_HAVE_MVE", ")", ")", "||", "!", "arm_hard_regno_mode_ok", "(", "FIRST_VFP_REGNUM", "+", "regno", ",", "mode", ")", ")", "{", "int", "i", ";", "int", "rcount", "=", "pcum", "->", "aapcs_vfp_rcount", ";", "int", "rshift", "=", "shift", ";", "machine_mode", "rmode", "=", "pcum", "->", "aapcs_vfp_rmode", ";", "rtx", "par", ";", "if", "(", "!", "(", "TARGET_NEON", "||", "TARGET_HAVE_MVE", ")", ")", "{", "if", "(", "rmode", "==", "V2SImode", ")", "rmode", "=", "DImode", ";", "else", "if", "(", "rmode", "==", "V4SImode", ")", "{", "rmode", "=", "DImode", ";", "rcount", "*=", "2", ";", "rshift", "/=", "2", ";", "}", "}", "par", "=", "gen_rtx_PARALLEL", "(", "mode", ",", "rtvec_alloc", "(", "rcount", ")", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "rcount", ";", "i", "++", ")", "{", "rtx", "tmp", "=", "gen_rtx_REG", "(", "rmode", ",", "FIRST_VFP_REGNUM", "+", "regno", "+", "i", "*", "rshift", ")", ";", "tmp", "=", "gen_rtx_EXPR_LIST", "(", "VOIDmode", ",", "tmp", ",", "GEN_INT", "(", "i", "*", "GET_MODE_SIZE", "(", "rmode", ")", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "tmp", ";", "}", "pcum", "->", "aapcs_reg", "=", "par", ";", "}", "else", "pcum", "->", "aapcs_reg", "=", "gen_rtx_REG", "(", "mode", ",", "FIRST_VFP_REGNUM", "+", "regno", ")", ";", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "the", "allocate", "field", "in", "aapcs_cp_arg_layout", ".", "See", "the", "comment", "there", "for", "the", "behaviour", "of", "this", "function", "."], "TS_V_token": ["arm", "1", "1", "0", "2", "2", "0", "0"], "File": "arm", "Func": "aapcs_vfp_allocate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44888, "Length": 302}
{"ground_truth": ["", "static", "rtx", "aapcs_vfp_allocate_return_reg", "(", "enum", "arm_pcs", "pcs_variant", "ATTRIBUTE_UNUSED", ",", "machine_mode", "mode", ",", "const_tree", "type", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "!", "use_vfp_abi", "(", "pcs_variant", ",", "false", ")", ")", "return", "NULL", ";", "if", "(", "mode", "==", "BLKmode", "||", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">=", "GET_MODE_SIZE", "(", "TImode", ")", "&&", "!", "(", "TARGET_NEON", "||", "TARGET_HAVE_MVE", ")", ")", ")", "{", "int", "count", ";", "machine_mode", "ag_mode", ";", "int", "i", ";", "rtx", "par", ";", "int", "shift", ";", "aapcs_vfp_is_call_or_return_candidate", "(", "pcs_variant", ",", "mode", ",", "type", ",", "&", "ag_mode", ",", "&", "count", ")", ";", "if", "(", "!", "(", "TARGET_NEON", "||", "TARGET_HAVE_MVE", ")", ")", "{", "if", "(", "ag_mode", "==", "V2SImode", ")", "ag_mode", "=", "DImode", ";", "else", "if", "(", "ag_mode", "==", "V4SImode", ")", "{", "ag_mode", "=", "DImode", ";", "count", "*=", "2", ";", "}", "}", "shift", "=", "GET_MODE_SIZE", "(", "ag_mode", ")", "/", "GET_MODE_SIZE", "(", "SFmode", ")", ";", "par", "=", "gen_rtx_PARALLEL", "(", "mode", ",", "rtvec_alloc", "(", "count", ")", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "{", "rtx", "tmp", "=", "gen_rtx_REG", "(", "ag_mode", ",", "FIRST_VFP_REGNUM", "+", "i", "*", "shift", ")", ";", "tmp", "=", "gen_rtx_EXPR_LIST", "(", "VOIDmode", ",", "tmp", ",", "GEN_INT", "(", "i", "*", "GET_MODE_SIZE", "(", "ag_mode", ")", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "tmp", ";", "}", "return", "par", ";", "}", "return", "gen_rtx_REG", "(", "mode", ",", "FIRST_VFP_REGNUM", ")", ";", "}", ""], "natrual_language": ["Implement", "the", "allocate_return_reg", "field", "in", "aapcs_cp_arg_layout", ".", "See", "the", "comment", "there", "for", "the", "behaviour", "of", "this", "function", "."], "TS_V_token": ["arm", "2", "0", "0"], "File": "arm", "Func": "aapcs_vfp_allocate_return_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44889, "Length": 227}
{"ground_truth": ["", "static", "bool", "aapcs_vfp_is_call_or_return_candidate", "(", "enum", "arm_pcs", "pcs_variant", ",", "machine_mode", "mode", ",", "const_tree", "type", ",", "machine_mode", "*", "base_mode", ",", "int", "*", "count", ")", "{", "machine_mode", "new_mode", "=", "VOIDmode", ";", "if", "(", "type", ")", "{", "unsigned", "int", "warn_psabi_flags", "=", "0", ";", "int", "ag_count", "=", "aapcs_vfp_sub_candidate", "(", "type", ",", "&", "new_mode", ",", "&", "warn_psabi_flags", ")", ";", "if", "(", "ag_count", ">", "0", "&&", "ag_count", "<=", "4", ")", "{", "static", "unsigned", "last_reported_type_uid", ";", "unsigned", "uid", "=", "TYPE_UID", "(", "TYPE_MAIN_VARIANT", "(", "type", ")", ")", ";", "int", "alt", ";", "if", "(", "warn_psabi", "&&", "warn_psabi_flags", "&&", "uid", "!=", "last_reported_type_uid", "&&", "(", "(", "alt", "=", "aapcs_vfp_sub_candidate", "(", "type", ",", "&", "new_mode", ",", "NULL", ")", ")", "!=", "ag_count", ")", ")", "{", "const", "char", "*", "url10", "=", "CHANGES_ROOT_URL", "\"gcc-10/changes.html#empty_base\"", ";", "const", "char", "*", "url12", "=", "CHANGES_ROOT_URL", "\"gcc-12/changes.html#zero_width_bitfields\"", ";", "gcc_assert", "(", "alt", "==", "-", "1", ")", ";", "last_reported_type_uid", "=", "uid", ";", "if", "(", "warn_psabi_flags", "&", "WARN_PSABI_NO_UNIQUE_ADDRESS", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of \"", "\"type %qT with %<[[no_unique_address]]%> members \"", "\"changed %{in GCC 10.1%}\"", ",", "TYPE_MAIN_VARIANT", "(", "type", ")", ",", "url10", ")", ";", "else", "if", "(", "warn_psabi_flags", "&", "WARN_PSABI_EMPTY_CXX17_BASE", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of \"", "\"type %qT when C++17 is enabled changed to match \"", "\"C++14 %{in GCC 10.1%}\"", ",", "TYPE_MAIN_VARIANT", "(", "type", ")", ",", "url10", ")", ";", "else", "if", "(", "warn_psabi_flags", "&", "WARN_PSABI_ZERO_WIDTH_BITFIELD", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of \"", "\"type %qT changed %{in GCC 12.1%}\"", ",", "TYPE_MAIN_VARIANT", "(", "type", ")", ",", "url12", ")", ";", "}", "*", "count", "=", "ag_count", ";", "}", "else", "return", "false", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_FLOAT", ")", "{", "*", "count", "=", "1", ";", "new_mode", "=", "mode", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_COMPLEX_FLOAT", ")", "{", "*", "count", "=", "2", ";", "new_mode", "=", "(", "mode", "==", "DCmode", "?", "DFmode", ":", "SFmode", ")", ";", "}", "else", "return", "false", ";", "if", "(", "!", "use_vfp_abi", "(", "pcs_variant", ",", "ARM_NUM_REGS", "(", "new_mode", ")", ">", "1", ")", ")", "return", "false", ";", "*", "base_mode", "=", "new_mode", ";", "if", "(", "TARGET_GENERAL_REGS_ONLY", ")", "error", "(", "\"argument of type %qT not permitted with %<-mgeneral-regs-only%>\"", ",", "type", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "true", "if", "an", "argument", "whose", "type", "is", "TYPE", ",", "or", "mode", "is", "MODE", ",", "is", "suitable", "for", "passing", "or", "returning", "in", "VFP", "registers", "for", "the", "PCS", "variant", "selected", ".", "If", "it", "is", ",", "then", "*", "BASE_MODE", "is", "updated", "to", "contain", "a", "machine", "mode", "describing", "each", "element", "of", "the", "argument", "'s", "type", "and", "*", "COUNT", "to", "hold", "the", "number", "of", "such", "elements", "."], "TS_V_token": ["arm", "0", "0", "4", "\"gcc-10/changes.html#empty_base\"", "\"gcc-12/changes.html#zero_width_bitfields\"", "1", "\"parameter passing for argument of \"", "\"type %qT with %<[[no_unique_address]]%> members \"", "\"changed %{in GCC 10.1%}\"", "\"parameter passing for argument of \"", "\"type %qT when C++17 is enabled changed to match \"", "\"C++14 %{in GCC 10.1%}\"", "\"parameter passing for argument of \"", "\"type %qT changed %{in GCC 12.1%}\"", "1", "2", "1", "\"argument of type %qT not permitted with %<-mgeneral-regs-only%>\""], "File": "arm", "Func": "aapcs_vfp_is_call_or_return_candidate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44890, "Length": 324}
{"ground_truth": ["", "static", "bool", "aarch_macro_fusion_pair_p", "(", "rtx_insn", "*", "prev", ",", "rtx_insn", "*", "curr", ")", "{", "rtx", "prev_set", "=", "single_set", "(", "prev", ")", ";", "rtx", "curr_set", "=", "single_set", "(", "curr", ")", ";", "if", "(", "!", "prev_set", "||", "!", "curr_set", ")", "return", "false", ";", "if", "(", "any_condjump_p", "(", "curr", ")", ")", "return", "false", ";", "if", "(", "!", "arm_macro_fusion_p", "(", ")", ")", "return", "false", ";", "if", "(", "current_tune", "->", "fusible_ops", "&", "tune_params", "::", "FUSE_MOVW_MOVT", "&&", "arm_sets_movw_movt_fusible_p", "(", "prev_set", ",", "curr_set", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_MACRO_FUSION_PAIR_P", ".", "Return", "true", "if", "PREV", "and", "CURR", "should", "be", "kept", "together", "during", "scheduling", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "aarch_macro_fusion_pair_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44891, "Length": 84}
{"ground_truth": ["", "void", "add", "(", "HOST_WIDE_INT", "val", ")", "{", "asm_fprintf", "(", "t_file", ",", "\"\\tadds\\t%s, #\"", "HOST_WIDE_INT_PRINT_DEC", "\"\\n\"", ",", "dst_regname", ",", "val", ")", ";", "}", ""], "natrual_language": ["Make", "function", "pointers", "for", "the", "various", "linear", "operators", "we", "can", "apply", "to", "compute", "a", "multiplicative", "value", "."], "TS_V_token": ["arm", "\"\\tadds\\t%s, #\"", "\"\\n\""], "File": "arm", "Func": "add", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44892, "Length": 21}
{"ground_truth": ["", "static", "void", "add_attribute", "(", "const", "char", "*", "mode", ",", "tree", "*", "attributes", ")", "{", "size_t", "len", "=", "strlen", "(", "mode", ")", ";", "tree", "value", "=", "build_string", "(", "len", ",", "mode", ")", ";", "TREE_TYPE", "(", "value", ")", "=", "build_array_type", "(", "char_type_node", ",", "build_index_type", "(", "size_int", "(", "len", ")", ")", ")", ";", "*", "attributes", "=", "tree_cons", "(", "get_identifier", "(", "\"target\"", ")", ",", "build_tree_list", "(", "NULL_TREE", ",", "value", ")", ",", "*", "attributes", ")", ";", "}", ""], "natrual_language": ["Add", "attribute", "NAME", "to", "ATTRS", "."], "TS_V_token": ["arm", "\"target\""], "File": "arm", "Func": "add_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44893, "Length": 72}
{"ground_truth": ["", "static", "Mnode", "*", "add_minipool_forward_ref", "(", "Mfix", "*", "fix", ")", "{", "Mnode", "*", "max_mp", "=", "NULL", ";", "HOST_WIDE_INT", "max_address", "=", "fix", "->", "address", "+", "fix", "->", "forwards", "-", "minipool_pad", ";", "Mnode", "*", "mp", ";", "if", "(", "minipool_vector_head", "&&", "(", "fix", "->", "address", "+", "get_attr_length", "(", "fix", "->", "insn", ")", ">=", "minipool_vector_head", "->", "max_address", "-", "fix", "->", "fix_size", ")", ")", "return", "NULL", ";", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "mp", "->", "next", ")", "{", "if", "(", "GET_CODE", "(", "fix", "->", "value", ")", "==", "GET_CODE", "(", "mp", "->", "value", ")", "&&", "fix", "->", "mode", "==", "mp", "->", "mode", "&&", "(", "!", "LABEL_P", "(", "fix", "->", "value", ")", "||", "(", "CODE_LABEL_NUMBER", "(", "fix", "->", "value", ")", "==", "CODE_LABEL_NUMBER", "(", "mp", "->", "value", ")", ")", ")", "&&", "rtx_equal_p", "(", "fix", "->", "value", ",", "mp", "->", "value", ")", ")", "{", "mp", "->", "refcount", "++", ";", "return", "move_minipool_fix_forward_ref", "(", "mp", ",", "max_mp", ",", "max_address", ")", ";", "}", "if", "(", "max_mp", "==", "NULL", "&&", "mp", "->", "max_address", ">", "max_address", ")", "max_mp", "=", "mp", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", "&&", "max_mp", "==", "NULL", "&&", "fix", "->", "fix_size", ">=", "8", "&&", "mp", "->", "fix_size", "<", "8", ")", "{", "max_mp", "=", "mp", ";", "max_address", "=", "mp", "->", "max_address", ";", "}", "}", "mp", "=", "XNEW", "(", "Mnode", ")", ";", "mp", "->", "fix_size", "=", "fix", "->", "fix_size", ";", "mp", "->", "mode", "=", "fix", "->", "mode", ";", "mp", "->", "value", "=", "fix", "->", "value", ";", "mp", "->", "refcount", "=", "1", ";", "mp", "->", "min_address", "=", "-", "65536", ";", "if", "(", "max_mp", "==", "NULL", ")", "{", "mp", "->", "max_address", "=", "max_address", ";", "mp", "->", "next", "=", "NULL", ";", "mp", "->", "prev", "=", "minipool_vector_tail", ";", "if", "(", "mp", "->", "prev", "==", "NULL", ")", "{", "minipool_vector_head", "=", "mp", ";", "minipool_vector_label", "=", "gen_label_rtx", "(", ")", ";", "}", "else", "mp", "->", "prev", "->", "next", "=", "mp", ";", "minipool_vector_tail", "=", "mp", ";", "}", "else", "{", "if", "(", "max_address", ">", "max_mp", "->", "max_address", "-", "mp", "->", "fix_size", ")", "mp", "->", "max_address", "=", "max_mp", "->", "max_address", "-", "mp", "->", "fix_size", ";", "else", "mp", "->", "max_address", "=", "max_address", ";", "mp", "->", "next", "=", "max_mp", ";", "mp", "->", "prev", "=", "max_mp", "->", "prev", ";", "max_mp", "->", "prev", "=", "mp", ";", "if", "(", "mp", "->", "prev", "!=", "NULL", ")", "mp", "->", "prev", "->", "next", "=", "mp", ";", "else", "minipool_vector_head", "=", "mp", ";", "}", "max_mp", "=", "mp", ";", "while", "(", "mp", "->", "prev", "!=", "NULL", "&&", "mp", "->", "prev", "->", "max_address", ">", "mp", "->", "max_address", "-", "mp", "->", "prev", "->", "fix_size", ")", "{", "mp", "->", "prev", "->", "max_address", "=", "mp", "->", "max_address", "-", "mp", "->", "prev", "->", "fix_size", ";", "mp", "=", "mp", "->", "prev", ";", "}", "return", "max_mp", ";", "}", ""], "natrual_language": ["Add", "a", "constant", "to", "the", "minipool", "for", "a", "forward", "reference", ".", "Returns", "the", "node", "added", "or", "NULL", "if", "the", "constant", "will", "not", "fit", "in", "this", "pool", "."], "TS_V_token": ["arm", "8", "8", "1", "65536"], "File": "arm", "Func": "add_minipool_forward_ref", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44894, "Length": 439}
{"ground_truth": ["", "int", "adjacent_mem_locations", "(", "rtx", "a", ",", "rtx", "b", ")", "{", "if", "(", "volatile_refs_p", "(", "a", ")", "||", "volatile_refs_p", "(", "b", ")", ")", "return", "0", ";", "if", "(", "(", "REG_P", "(", "XEXP", "(", "a", ",", "0", ")", ")", "||", "(", "GET_CODE", "(", "XEXP", "(", "a", ",", "0", ")", ")", "==", "PLUS", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "a", ",", "0", ")", ",", "1", ")", ")", ")", ")", "&&", "(", "REG_P", "(", "XEXP", "(", "b", ",", "0", ")", ")", "||", "(", "GET_CODE", "(", "XEXP", "(", "b", ",", "0", ")", ")", "==", "PLUS", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "b", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "{", "HOST_WIDE_INT", "val0", "=", "0", ",", "val1", "=", "0", ";", "rtx", "reg0", ",", "reg1", ";", "int", "val_diff", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "a", ",", "0", ")", ")", "==", "PLUS", ")", "{", "reg0", "=", "XEXP", "(", "XEXP", "(", "a", ",", "0", ")", ",", "0", ")", ";", "val0", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "a", ",", "0", ")", ",", "1", ")", ")", ";", "}", "else", "reg0", "=", "XEXP", "(", "a", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "XEXP", "(", "b", ",", "0", ")", ")", "==", "PLUS", ")", "{", "reg1", "=", "XEXP", "(", "XEXP", "(", "b", ",", "0", ")", ",", "0", ")", ";", "val1", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "b", ",", "0", ")", ",", "1", ")", ")", ";", "}", "else", "reg1", "=", "XEXP", "(", "b", ",", "0", ")", ";", "if", "(", "!", "const_ok_for_op", "(", "val0", ",", "PLUS", ")", "||", "!", "const_ok_for_op", "(", "val1", ",", "PLUS", ")", ")", "return", "0", ";", "if", "(", "arm_eliminable_register", "(", "reg0", ")", ")", "return", "0", ";", "val_diff", "=", "val1", "-", "val0", ";", "if", "(", "arm_ld_sched", ")", "{", "return", "(", "optimize_size", "&&", "(", "REGNO", "(", "reg0", ")", "==", "REGNO", "(", "reg1", ")", ")", "&&", "(", "val0", "==", "0", "||", "val1", "==", "0", "||", "val0", "==", "4", "||", "val1", "==", "4", ")", "&&", "(", "val_diff", "==", "4", "||", "val_diff", "==", "-", "4", ")", ")", ";", "}", "return", "(", "(", "REGNO", "(", "reg0", ")", "==", "REGNO", "(", "reg1", ")", ")", "&&", "(", "val_diff", "==", "4", "||", "val_diff", "==", "-", "4", ")", ")", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["If", "the", "target", "storage", "locations", "of", "arguments", "MEM1", "and", "MEM2", "are", "adjacent", ",", "then", "return", "the", "argument", "that", "has", "the", "lower", "address", ".", "Otherwise", ",", "return", "NULL_RTX", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "4", "4", "4", "4", "4", "4", "0"], "File": "arm", "Func": "adjacent_mem_locations", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44895, "Length": 361}
{"ground_truth": ["", "static", "bool", "align_ok_ldrd_strd", "(", "HOST_WIDE_INT", "align", ",", "HOST_WIDE_INT", "offset", ")", "{", "return", "(", "unaligned_access", "?", "(", "align", ">=", "BITS_PER_WORD", "&&", "(", "offset", "&", "3", ")", "==", "0", ")", ":", "(", "align", ">=", "2", "*", "BITS_PER_WORD", "&&", "(", "offset", "&", "7", ")", "==", "0", ")", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "a", "64-bit", "access", "with", "alignment", "ALIGN", "and", "with", "a", "constant", "offset", "OFFSET", "from", "the", "base", "pointer", "is", "permitted", "on", "this", "architecture", "."], "TS_V_token": ["arm", "3", "0", "2", "7", "0"], "File": "arm", "Func": "align_ok_ldrd_strd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44896, "Length": 47}
{"ground_truth": ["", "static", "bool", "any_sibcall_could_use_r3", "(", "void", ")", "{", "edge_iterator", "ei", ";", "edge", "e", ";", "if", "(", "!", "crtl", "->", "tail_call_emit", ")", "return", "false", ";", "FOR_EACH_EDGE", "(", "e", ",", "ei", ",", "EXIT_BLOCK_PTR_FOR_FN", "(", "cfun", ")", "->", "preds", ")", "if", "(", "e", "->", "flags", "&", "EDGE_SIBCALL", ")", "{", "rtx_insn", "*", "call", "=", "BB_END", "(", "e", "->", "src", ")", ";", "if", "(", "!", "CALL_P", "(", "call", ")", ")", "call", "=", "prev_nonnote_nondebug_insn", "(", "call", ")", ";", "gcc_assert", "(", "CALL_P", "(", "call", ")", "&&", "SIBLING_CALL_P", "(", "call", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "call", ",", "USE", ",", "3", ")", "||", "is_indirect_tailcall_p", "(", "call", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Return", "true", "if", "r3", "is", "used", "by", "any", "of", "the", "tail", "call", "insns", "in", "the", "current", "function", "."], "TS_V_token": ["arm", "3"], "File": "arm", "Func": "any_sibcall_could_use_r3", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44897, "Length": 108}
{"ground_truth": ["", "const", "char", "*", "arithmetic_instr", "(", "rtx", "op", ",", "int", "shift_first_arg", ")", "{", "switch", "(", "GET_CODE", "(", "op", ")", ")", "{", "case", "PLUS", ":", "return", "\"add\"", ";", "case", "MINUS", ":", "return", "shift_first_arg", "?", "\"rsb\"", ":", "\"sub\"", ";", "case", "IOR", ":", "return", "\"orr\"", ";", "case", "XOR", ":", "return", "\"eor\"", ";", "case", "AND", ":", "return", "\"and\"", ";", "case", "ASHIFT", ":", "case", "ASHIFTRT", ":", "case", "LSHIFTRT", ":", "case", "ROTATERT", ":", "return", "arm_shift_nmem", "(", "GET_CODE", "(", "op", ")", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Return", "the", "appropriate", "ARM", "instruction", "for", "the", "operation", "code", ".", "The", "returned", "result", "should", "not", "be", "overwritten", ".", "OP", "is", "the", "rtx", "of", "the", "operation", ".", "SHIFT_FIRST_ARG", "is", "TRUE", "if", "the", "first", "argument", "of", "the", "operator", "was", "shifted", "."], "TS_V_token": ["arm", "\"add\"", "\"rsb\"", "\"sub\"", "\"orr\"", "\"eor\"", "\"and\""], "File": "arm", "Func": "arithmetic_instr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44898, "Length": 83}
{"ground_truth": ["", "static", "void", "arm32_output_mi_thunk", "(", "FILE", "*", "file", ",", "tree", ",", "HOST_WIDE_INT", "delta", ",", "HOST_WIDE_INT", "vcall_offset", ",", "tree", "function", ")", "{", "const", "bool", "long_call_p", "=", "arm_is_long_call_p", "(", "function", ")", ";", "int", "this_regno", "=", "(", "aggregate_value_p", "(", "TREE_TYPE", "(", "TREE_TYPE", "(", "function", ")", ")", ",", "function", ")", "?", "R1_REGNUM", ":", "R0_REGNUM", ")", ";", "rtx", "temp", "=", "gen_rtx_REG", "(", "Pmode", ",", "IP_REGNUM", ")", ";", "rtx", "this_rtx", "=", "gen_rtx_REG", "(", "Pmode", ",", "this_regno", ")", ";", "reload_completed", "=", "1", ";", "emit_note", "(", "NOTE_INSN_PROLOGUE_END", ")", ";", "if", "(", "delta", "!=", "0", ")", "arm_split_constant", "(", "PLUS", ",", "Pmode", ",", "NULL_RTX", ",", "delta", ",", "this_rtx", ",", "this_rtx", ",", "false", ")", ";", "if", "(", "vcall_offset", "!=", "0", ")", "{", "emit_move_insn", "(", "temp", ",", "gen_rtx_MEM", "(", "Pmode", ",", "this_rtx", ")", ")", ";", "arm_split_constant", "(", "PLUS", ",", "Pmode", ",", "NULL_RTX", ",", "vcall_offset", ",", "temp", ",", "temp", ",", "false", ")", ";", "emit_move_insn", "(", "temp", ",", "gen_rtx_MEM", "(", "Pmode", ",", "temp", ")", ")", ";", "emit_insn", "(", "gen_add3_insn", "(", "this_rtx", ",", "this_rtx", ",", "temp", ")", ")", ";", "}", "if", "(", "!", "TREE_USED", "(", "function", ")", ")", "{", "assemble_external", "(", "function", ")", ";", "TREE_USED", "(", "function", ")", "=", "1", ";", "}", "rtx", "funexp", "=", "XEXP", "(", "DECL_RTL", "(", "function", ")", ",", "0", ")", ";", "if", "(", "long_call_p", ")", "{", "emit_move_insn", "(", "temp", ",", "funexp", ")", ";", "funexp", "=", "temp", ";", "}", "funexp", "=", "gen_rtx_MEM", "(", "FUNCTION_MODE", ",", "funexp", ")", ";", "rtx_insn", "*", "insn", "=", "emit_call_insn", "(", "gen_sibcall", "(", "funexp", ",", "const0_rtx", ",", "NULL_RTX", ")", ")", ";", "SIBLING_CALL_P", "(", "insn", ")", "=", "1", ";", "emit_barrier", "(", ")", ";", "if", "(", "long_call_p", ")", "{", "split_all_insns_noflow", "(", ")", ";", "arm_reorg", "(", ")", ";", "}", "insn", "=", "get_insns", "(", ")", ";", "shorten_branches", "(", "insn", ")", ";", "final_start_function", "(", "insn", ",", "file", ",", "1", ")", ";", "final", "(", "insn", ",", "file", ",", "1", ")", ";", "final_end_function", "(", ")", ";", "reload_completed", "=", "0", ";", "}", ""], "natrual_language": ["MI", "thunk", "handling", "for", "TARGET_32BIT", "."], "TS_V_token": ["arm", "1", "0", "0", "1", "0", "1", "1", "1", "0"], "File": "arm", "Func": "arm32_output_mi_thunk", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44899, "Length": 304}
{"ground_truth": ["", "int", "arm_address_offset_is_imm", "(", "rtx_insn", "*", "insn", ")", "{", "rtx", "mem", ",", "addr", ";", "extract_insn_cached", "(", "insn", ")", ";", "if", "(", "REG_P", "(", "recog_data", ".", "operand", "[", "0", "]", ")", ")", "return", "0", ";", "mem", "=", "recog_data", ".", "operand", "[", "0", "]", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "if", "(", "REG_P", "(", "addr", ")", "||", "(", "GET_CODE", "(", "addr", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "addr", ",", "0", ")", ")", "&&", "CONST_INT_P", "(", "XEXP", "(", "addr", ",", "1", ")", ")", ")", ")", "return", "1", ";", "else", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "the", "offset", "in", "the", "address", "is", "an", "immediate", ".", "Otherwise", ",", "return", "zero", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "1", "0"], "File": "arm", "Func": "arm_address_offset_is_imm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44900, "Length": 103}
{"ground_truth": ["", "static", "int", "arm_address_register_rtx_p", "(", "rtx", "x", ",", "int", "strict_p", ")", "{", "int", "regno", ";", "if", "(", "!", "REG_P", "(", "x", ")", ")", "return", "0", ";", "regno", "=", "REGNO", "(", "x", ")", ";", "if", "(", "strict_p", ")", "return", "ARM_REGNO_OK_FOR_BASE_P", "(", "regno", ")", ";", "return", "(", "regno", "<=", "LAST_ARM_REGNUM", "||", "regno", ">=", "FIRST_PSEUDO_REGISTER", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "valid", "as", "an", "ARM", "state", "addressing", "register", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_address_register_rtx_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44901, "Length": 62}
{"ground_truth": ["", "static", "void", "arm_add_cfa_adjust_cfa_note", "(", "rtx", "insn", ",", "int", "size", ",", "rtx", "dest", ",", "rtx", "src", ")", "{", "rtx", "dwarf", ";", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "dwarf", "=", "gen_rtx_SET", "(", "dest", ",", "plus_constant", "(", "Pmode", ",", "src", ",", "size", ")", ")", ";", "add_reg_note", "(", "insn", ",", "REG_CFA_ADJUST_CFA", ",", "dwarf", ")", ";", "}", ""], "natrual_language": ["Add", "a", "REG_CFA_ADJUST_CFA", "REG", "note", "to", "INSN", ".", "SIZE", "is", "the", "offset", "to", "be", "adjusted", ".", "DEST", "and", "SRC", "might", "be", "stack_pointer_rtx", "or", "hard_frame_pointer_rtx", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_add_cfa_adjust_cfa_note", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44902, "Length": 53}
{"ground_truth": ["", "static", "unsigned", "arm_add_stmt_cost", "(", "void", "*", "data", ",", "int", "count", ",", "enum", "vect_cost_for_stmt", "kind", ",", "struct", "_stmt_vec_info", "*", "stmt_info", ",", "int", "misalign", ",", "enum", "vect_cost_model_location", "where", ")", "{", "unsigned", "*", "cost", "=", "(", "unsigned", "*", ")", "data", ";", "unsigned", "retval", "=", "0", ";", "if", "(", "flag_vect_cost_model", ")", "{", "tree", "vectype", "=", "stmt_info", "?", "stmt_vectype", "(", "stmt_info", ")", ":", "NULL_TREE", ";", "int", "stmt_cost", "=", "arm_builtin_vectorization_cost", "(", "kind", ",", "vectype", ",", "misalign", ")", ";", "if", "(", "where", "==", "vect_body", "&&", "stmt_info", "&&", "stmt_in_inner_loop_p", "(", "stmt_info", ")", ")", "count", "*=", "50", ";", "retval", "=", "(", "unsigned", ")", "(", "count", "*", "stmt_cost", ")", ";", "cost", "[", "where", "]", "+=", "retval", ";", "}", "return", "retval", ";", "}", ""], "natrual_language": ["Implement", "targetm.vectorize.add_stmt_cost", "."], "TS_V_token": ["arm", "0", "50"], "File": "arm", "Func": "arm_add_stmt_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44903, "Length": 112}
{"ground_truth": ["", "static", "void", "arm_adjust_block_mem", "(", "rtx", "mem", ",", "HOST_WIDE_INT", "length", ",", "rtx", "*", "loop_reg", ",", "rtx", "*", "loop_mem", ")", "{", "*", "loop_reg", "=", "copy_addr_to_reg", "(", "XEXP", "(", "mem", ",", "0", ")", ")", ";", "*", "loop_mem", "=", "change_address", "(", "mem", ",", "BLKmode", ",", "*", "loop_reg", ")", ";", "set_mem_align", "(", "*", "loop_mem", ",", "MIN", "(", "MEM_ALIGN", "(", "mem", ")", ",", "length", "*", "BITS_PER_UNIT", ")", ")", ";", "}", ""], "natrual_language": ["From", "mips_adjust_block_mem", ":", "Helper", "function", "for", "doing", "a", "loop-based", "block", "operation", "on", "memory", "reference", "MEM", ".", "Each", "iteration", "of", "the", "loop", "will", "operate", "on", "LENGTH", "bytes", "of", "MEM", ".", "Create", "a", "new", "base", "register", "for", "use", "within", "the", "loop", "and", "point", "it", "to", "the", "start", "of", "MEM", ".", "Create", "a", "new", "memory", "reference", "that", "uses", "this", "register", ".", "Store", "them", "in", "*", "LOOP_REG", "and", "*", "LOOP_MEM", "respectively", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_adjust_block_mem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44904, "Length": 64}
{"ground_truth": ["", "static", "int", "arm_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "int", "dep_type", ",", "rtx_insn", "*", "dep", ",", "int", "cost", ",", "unsigned", "int", ")", "{", "rtx", "i_pat", ",", "d_pat", ";", "if", "(", "TARGET_THUMB1", "&&", "dep_type", "==", "0", "&&", "recog_memoized", "(", "insn", ")", "==", "CODE_FOR_cbranchsi4_insn", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", "&&", "get_attr_conds", "(", "dep", ")", "==", "CONDS_SET", ")", "return", "0", ";", "if", "(", "current_tune", "->", "sched_adjust_cost", "!=", "NULL", ")", "{", "if", "(", "!", "current_tune", "->", "sched_adjust_cost", "(", "insn", ",", "dep_type", ",", "dep", ",", "&", "cost", ")", ")", "return", "cost", ";", "}", "if", "(", "dep_type", "==", "REG_DEP_ANTI", "||", "dep_type", "==", "REG_DEP_OUTPUT", ")", "return", "0", ";", "if", "(", "dep_type", "==", "0", "&&", "CALL_P", "(", "insn", ")", ")", "return", "1", ";", "if", "(", "(", "i_pat", "=", "single_set", "(", "insn", ")", ")", "!=", "NULL", "&&", "MEM_P", "(", "SET_SRC", "(", "i_pat", ")", ")", "&&", "(", "d_pat", "=", "single_set", "(", "dep", ")", ")", "!=", "NULL", "&&", "MEM_P", "(", "SET_DEST", "(", "d_pat", ")", ")", ")", "{", "rtx", "src_mem", "=", "XEXP", "(", "SET_SRC", "(", "i_pat", ")", ",", "0", ")", ";", "if", "(", "(", "SYMBOL_REF_P", "(", "src_mem", ")", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "src_mem", ")", ")", "||", "reg_mentioned_p", "(", "stack_pointer_rtx", ",", "src_mem", ")", "||", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "src_mem", ")", "||", "reg_mentioned_p", "(", "hard_frame_pointer_rtx", ",", "src_mem", ")", ")", "return", "1", ";", "}", "return", "cost", ";", "}", ""], "natrual_language": ["This", "function", "implements", "the", "target", "macro", "TARGET_SCHED_ADJUST_COST", ".", "It", "corrects", "the", "value", "of", "COST", "based", "on", "the", "relationship", "between", "INSN", "and", "DEP", "through", "the", "dependence", "LINK", ".", "It", "returns", "the", "new", "value", ".", "There", "is", "a", "per-core", "adjust_cost", "hook", "to", "adjust", "scheduler", "costs", "and", "the", "per-core", "hook", "can", "choose", "to", "completely", "override", "the", "generic", "adjust_cost", "function", ".", "Only", "put", "bits", "of", "code", "into", "arm_adjust_cost", "that", "are", "common", "across", "all", "cores", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "1"], "File": "arm", "Func": "arm_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44905, "Length": 213}
{"ground_truth": ["", "static", "bool", "arm_align_anon_bitfield", "(", "void", ")", "{", "return", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["AAPCS", "requires", "that", "anonymous", "bitfields", "affect", "structure", "alignment", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_align_anon_bitfield", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44906, "Length": 11}
{"ground_truth": ["", "int", "arm_apply_result_size", "(", "void", ")", "{", "int", "size", "=", "16", ";", "if", "(", "TARGET_32BIT", ")", "{", "if", "(", "TARGET_HARD_FLOAT_ABI", ")", "size", "+=", "32", ";", "if", "(", "TARGET_IWMMXT_ABI", ")", "size", "+=", "8", ";", "}", "return", "size", ";", "}", ""], "natrual_language": ["Determine", "the", "amount", "of", "memory", "needed", "to", "store", "the", "possible", "return", "registers", "of", "an", "untyped", "call", "."], "TS_V_token": ["arm", "16", "32", "8"], "File": "arm", "Func": "arm_apply_result_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44907, "Length": 37}
{"ground_truth": ["", "static", "inline", "int", "arm_arm_address_cost", "(", "rtx", "x", ")", "{", "enum", "rtx_code", "c", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "c", "==", "PRE_INC", "||", "c", "==", "PRE_DEC", "||", "c", "==", "POST_INC", "||", "c", "==", "POST_DEC", ")", "return", "0", ";", "if", "(", "c", "==", "MEM", "||", "c", "==", "LABEL_REF", "||", "c", "==", "SYMBOL_REF", ")", "return", "10", ";", "if", "(", "c", "==", "PLUS", ")", "{", "if", "(", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "return", "2", ";", "if", "(", "ARITHMETIC_P", "(", "XEXP", "(", "x", ",", "0", ")", ")", "||", "ARITHMETIC_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", ")", "return", "3", ";", "return", "4", ";", "}", "return", "6", ";", "}", ""], "natrual_language": ["All", "address", "computations", "that", "can", "be", "done", "are", "free", ",", "but", "rtx", "cost", "returns", "the", "same", "for", "practically", "all", "of", "them", ".", "So", "we", "weight", "the", "different", "types", "of", "address", "here", "in", "the", "order", "(", "most", "pref", "first", ")", ":", "PRE/POST_INC/DEC", ",", "SHIFT", "or", "NON-INT", "sum", ",", "INT", "sum", ",", "REG", ",", "MEM", "or", "LABEL", "."], "TS_V_token": ["arm", "0", "10", "1", "2", "0", "1", "3", "4", "6"], "File": "arm", "Func": "arm_arm_address_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44908, "Length": 111}
{"ground_truth": ["", "static", "bool", "arm_array_mode_supported_p", "(", "machine_mode", "mode", ",", "unsigned", "HOST_WIDE_INT", "nelems", ")", "{", "if", "(", "TARGET_NEON", "&&", "!", "BYTES_BIG_ENDIAN", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode", ")", ")", "&&", "(", "nelems", ">=", "2", "&&", "nelems", "<=", "4", ")", ")", "return", "true", ";", "if", "(", "TARGET_HAVE_MVE", "&&", "!", "BYTES_BIG_ENDIAN", "&&", "VALID_MVE_MODE", "(", "mode", ")", "&&", "(", "nelems", "==", "2", "||", "nelems", "==", "4", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "array_mode_supported_p", "."], "TS_V_token": ["arm", "2", "4", "2", "4"], "File": "arm", "Func": "arm_array_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44909, "Length": 73}
{"ground_truth": ["", "static", "unsigned", "HOST_WIDE_INT", "arm_asan_shadow_offset", "(", "void", ")", "{", "return", "HOST_WIDE_INT_1U", "<<", "29", ";", "}", ""], "natrual_language": ["Implement", "the", "TARGET_ASAN_SHADOW_OFFSET", "hook", "."], "TS_V_token": ["arm", "29"], "File": "arm", "Func": "arm_asan_shadow_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44910, "Length": 14}
{"ground_truth": ["", "void", "arm_asm_declare_function_name", "(", "FILE", "*", "file", ",", "const", "char", "*", "name", ",", "tree", "decl", ")", "{", "size_t", "cmse_name_len", ";", "char", "*", "cmse_name", "=", "0", ";", "char", "cmse_prefix", "[", "]", "=", "\"__acle_se_\"", ";", "if", "(", "use_cmse", "&&", "lookup_attribute", "(", "\"cmse_nonsecure_entry\"", ",", "DECL_ATTRIBUTES", "(", "decl", ")", ")", ")", "{", "cmse_name_len", "=", "sizeof", "(", "cmse_prefix", ")", "+", "strlen", "(", "name", ")", ";", "cmse_name", "=", "XALLOCAVEC", "(", "char", ",", "cmse_name_len", ")", ";", "snprintf", "(", "cmse_name", ",", "cmse_name_len", ",", "\"%s%s\"", ",", "cmse_prefix", ",", "name", ")", ";", "targetm", ".", "asm_out", ".", "globalize_label", "(", "file", ",", "cmse_name", ")", ";", "ARM_DECLARE_FUNCTION_NAME", "(", "file", ",", "cmse_name", ",", "decl", ")", ";", "ASM_OUTPUT_TYPE_DIRECTIVE", "(", "file", ",", "cmse_name", ",", "\"function\"", ")", ";", "}", "ARM_DECLARE_FUNCTION_NAME", "(", "file", ",", "name", ",", "decl", ")", ";", "ASM_OUTPUT_TYPE_DIRECTIVE", "(", "file", ",", "name", ",", "\"function\"", ")", ";", "ASM_DECLARE_RESULT", "(", "file", ",", "DECL_RESULT", "(", "decl", ")", ")", ";", "ASM_OUTPUT_LABEL", "(", "file", ",", "name", ")", ";", "if", "(", "cmse_name", ")", "ASM_OUTPUT_LABEL", "(", "file", ",", "cmse_name", ")", ";", "ARM_OUTPUT_FN_UNWIND", "(", "file", ",", "TRUE", ")", ";", "}", ""], "natrual_language": ["Output", "in", "FILE", "asm", "statements", "needed", "to", "declare", "the", "NAME", "of", "the", "function", "defined", "by", "its", "DECL", "node", "."], "TS_V_token": ["arm", "0", "\"__acle_se_\"", "\"cmse_nonsecure_entry\"", "\"%s%s\"", "\"function\"", "\"function\""], "File": "arm", "Func": "arm_asm_declare_function_name", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44911, "Length": 165}
{"ground_truth": ["", "static", "bool", "arm_asm_elf_flags_numeric", "(", "unsigned", "int", "flags", ",", "unsigned", "int", "*", "num", ")", "{", "if", "(", "flags", "&", "SECTION_ARM_PURECODE", ")", "{", "*", "num", "=", "0x20000000", ";", "if", "(", "!", "(", "flags", "&", "SECTION_DEBUG", ")", ")", "*", "num", "|=", "0x2", ";", "if", "(", "flags", "&", "SECTION_EXCLUDE", ")", "*", "num", "|=", "0x80000000", ";", "if", "(", "flags", "&", "SECTION_WRITE", ")", "*", "num", "|=", "0x1", ";", "if", "(", "flags", "&", "SECTION_CODE", ")", "*", "num", "|=", "0x4", ";", "if", "(", "flags", "&", "SECTION_MERGE", ")", "*", "num", "|=", "0x10", ";", "if", "(", "flags", "&", "SECTION_STRINGS", ")", "*", "num", "|=", "0x20", ";", "if", "(", "flags", "&", "SECTION_TLS", ")", "*", "num", "|=", "0x400", ";", "if", "(", "HAVE_COMDAT_GROUP", "&&", "(", "flags", "&", "SECTION_LINKONCE", ")", ")", "*", "num", "|=", "0x200", ";", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "the", "TARGET_ASM_ELF_FLAGS_NUMERIC", "hook", ".", "For", "pure-code", "sections", "there", "is", "no", "letter", "code", "for", "this", "attribute", ",", "so", "output", "all", "the", "section", "flags", "numerically", "when", "this", "is", "needed", "."], "TS_V_token": ["arm", "0x20000000", "0x2", "0x80000000", "0x1", "0x4", "0x10", "0x20", "0x400", "0x200"], "File": "arm", "Func": "arm_asm_elf_flags_numeric", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44912, "Length": 129}
{"ground_truth": ["", "static", "void", "arm_asm_emit_except_personality", "(", "rtx", "personality", ")", "{", "fputs", "(", "\"\\t.personality\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "personality", ")", ";", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_ASM_EMIT_EXCEPT_PERSONALITY", "."], "TS_V_token": ["arm", "\"\\t.personality\\t\""], "File": "arm", "Func": "arm_asm_emit_except_personality", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44913, "Length": 30}
{"ground_truth": ["", "static", "void", "arm_asm_init_sections", "(", "void", ")", "{", "exception_section", "=", "get_unnamed_section", "(", "0", ",", "output_section_asm_op", ",", "\"\\t.handlerdata\"", ")", ";", "if", "(", "target_pure_code", ")", "text_section", "->", "unnamed", ".", "data", "=", "\"\\t.section .text,\\\"0x20000006\\\",%progbits\"", ";", "}", ""], "natrual_language": ["Implement", "TARGET_ASM_INITIALIZE_SECTIONS", "."], "TS_V_token": ["arm", "0", "\"\\t.handlerdata\"", "\"\\t.section .text,\\\"0x20000006\\\",%progbits\""], "File": "arm", "Func": "arm_asm_init_sections", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44914, "Length": 31}
{"ground_truth": ["", "void", "arm_asm_output_labelref", "(", "FILE", "*", "stream", ",", "const", "char", "*", "name", ")", "{", "int", "skip", ";", "int", "verbatim", "=", "0", ";", "while", "(", "(", "skip", "=", "arm_get_strip_length", "(", "*", "name", ")", ")", ")", "{", "verbatim", "|=", "(", "*", "name", "==", "'*'", ")", ";", "name", "+=", "skip", ";", "}", "if", "(", "verbatim", ")", "fputs", "(", "name", ",", "stream", ")", ";", "else", "asm_fprintf", "(", "stream", ",", "\"%U%s\"", ",", "name", ")", ";", "}", ""], "natrual_language": ["If", "there", "is", "a", "'", "*", "'", "anywhere", "in", "the", "name", "'s", "prefix", ",", "then", "emit", "the", "stripped", "name", "verbatim", ",", "otherwise", "prepend", "an", "underscore", "if", "leading", "underscores", "are", "being", "used", "."], "TS_V_token": ["arm", "0", "\"%U%s\""], "File": "arm", "Func": "arm_asm_output_labelref", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44915, "Length": 70}
{"ground_truth": ["", "static", "void", "arm_asm_trampoline_template", "(", "FILE", "*", "f", ")", "{", "fprintf", "(", "f", ",", "\"\\t.syntax unified\\n\"", ")", ";", "if", "(", "TARGET_FDPIC", ")", "{", "if", "(", "TARGET_ARM", ")", "fprintf", "(", "f", ",", "\"\\t.arm\\n\"", ")", ";", "else", "if", "(", "TARGET_THUMB2", ")", "fprintf", "(", "f", ",", "\"\\t.thumb\\n\"", ")", ";", "else", "gcc_unreachable", "(", ")", ";", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #%d]\\n\"", ",", "STATIC_CHAIN_REGNUM", ",", "PC_REGNUM", ",", "TARGET_THUMB2", "?", "8", ":", "4", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #%d]\\n\"", ",", "PIC_OFFSET_TABLE_REGNUM", ",", "PC_REGNUM", ",", "TARGET_THUMB2", "?", "8", ":", "4", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #%d]\\n\"", ",", "PC_REGNUM", ",", "PC_REGNUM", ",", "TARGET_THUMB2", "?", "8", ":", "4", ")", ";", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "}", "else", "if", "(", "TARGET_ARM", ")", "{", "fprintf", "(", "f", ",", "\"\\t.arm\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #0]\\n\"", ",", "STATIC_CHAIN_REGNUM", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\t%r, [%r, #0]\\n\"", ",", "PC_REGNUM", ",", "PC_REGNUM", ")", ";", "}", "else", "if", "(", "TARGET_THUMB2", ")", "{", "fprintf", "(", "f", ",", "\"\\t.thumb\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", ",", "STATIC_CHAIN_REGNUM", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", ",", "PC_REGNUM", ",", "PC_REGNUM", ")", ";", "}", "else", "{", "ASM_OUTPUT_ALIGN", "(", "f", ",", "2", ")", ";", "fprintf", "(", "f", ",", "\"\\t.code\\t16\\n\"", ")", ";", "fprintf", "(", "f", ",", "\".Ltrampoline_start:\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tpush\\t{r0, r1}\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\tr0, [%r, #8]\\n\"", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tmov\\t%r, r0\\n\"", ",", "STATIC_CHAIN_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tldr\\tr0, [%r, #8]\\n\"", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tstr\\tr0, [%r, #4]\\n\"", ",", "SP_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tpop\\t{r0, %r}\\n\"", ",", "PC_REGNUM", ")", ";", "}", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "const0_rtx", ")", ";", "}", ""], "natrual_language": ["Output", "assembler", "code", "for", "a", "block", "containing", "the", "constant", "parts", "of", "a", "trampoline", ",", "leaving", "space", "for", "the", "variable", "parts", ".", "On", "the", "ARM", ",", "(", "if", "r8", "is", "the", "static", "chain", "regnum", ",", "and", "remembering", "that", "referencing", "pc", "adds", "an", "offset", "of", "8", ")", "the", "trampoline", "looks", "like", ":", "ldr", "r8", ",", "[", "pc", ",", "#", "0", "]", "ldr", "pc", ",", "[", "pc", "]", ".word", "static", "chain", "value", ".word", "function", "'s", "address", "XXX", "FIXME", ":", "When", "the", "trampoline", "returns", ",", "r8", "will", "be", "clobbered", "."], "TS_V_token": ["arm", "\"\\t.syntax unified\\n\"", "\"\\t.arm\\n\"", "\"\\t.thumb\\n\"", "\"\\tldr\\t%r, [%r, #%d]\\n\"", "8", "4", "\"\\tldr\\t%r, [%r, #%d]\\n\"", "8", "4", "\"\\tldr\\t%r, [%r, #%d]\\n\"", "8", "4", "\"\\t.arm\\n\"", "\"\\tldr\\t%r, [%r, #0]\\n\"", "\"\\tldr\\t%r, [%r, #0]\\n\"", "\"\\t.thumb\\n\"", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", "\"\\tldr.w\\t%r, [%r, #4]\\n\"", "2", "\"\\t.code\\t16\\n\"", "\".Ltrampoline_start:\\n\"", "\"\\tpush\\t{r0, r1}\\n\"", "\"\\tldr\\tr0, [%r, #8]\\n\"", "\"\\tmov\\t%r, r0\\n\"", "\"\\tldr\\tr0, [%r, #8]\\n\"", "\"\\tstr\\tr0, [%r, #4]\\n\"", "\"\\tpop\\t{r0, %r}\\n\""], "File": "arm", "Func": "arm_asm_trampoline_template", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44916, "Length": 285}
{"ground_truth": ["", "static", "bool", "arm_assemble_integer", "(", "rtx", "x", ",", "unsigned", "int", "size", ",", "int", "aligned_p", ")", "{", "machine_mode", "mode", ";", "if", "(", "size", "==", "UNITS_PER_WORD", "&&", "aligned_p", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "NEED_GOT_RELOC", "&&", "flag_pic", "&&", "making_const_table", "&&", "(", "SYMBOL_REF_P", "(", "x", ")", "||", "LABEL_REF_P", "(", "x", ")", ")", ")", "{", "if", "(", "!", "arm_pic_data_is_text_relative", "||", "(", "SYMBOL_REF_P", "(", "x", ")", "&&", "(", "!", "SYMBOL_REF_LOCAL_P", "(", "x", ")", "||", "(", "SYMBOL_REF_DECL", "(", "x", ")", "?", "DECL_WEAK", "(", "SYMBOL_REF_DECL", "(", "x", ")", ")", ":", "0", ")", "||", "(", "SYMBOL_REF_FUNCTION_P", "(", "x", ")", "&&", "!", "arm_fdpic_local_funcdesc_p", "(", "x", ")", ")", ")", ")", ")", "{", "if", "(", "TARGET_FDPIC", "&&", "SYMBOL_REF_FUNCTION_P", "(", "x", ")", ")", "fputs", "(", "\"(GOTFUNCDESC)\"", ",", "asm_out_file", ")", ";", "else", "fputs", "(", "\"(GOT)\"", ",", "asm_out_file", ")", ";", "}", "else", "{", "if", "(", "TARGET_FDPIC", "&&", "SYMBOL_REF_FUNCTION_P", "(", "x", ")", ")", "fputs", "(", "\"(GOTOFFFUNCDESC)\"", ",", "asm_out_file", ")", ";", "else", "{", "bool", "is_readonly", ";", "if", "(", "!", "TARGET_FDPIC", "||", "arm_is_segment_info_known", "(", "x", ",", "&", "is_readonly", ")", ")", "fputs", "(", "\"(GOTOFF)\"", ",", "asm_out_file", ")", ";", "else", "fputs", "(", "\"(GOT)\"", ",", "asm_out_file", ")", ";", "}", "}", "}", "if", "(", "TARGET_FDPIC", "&&", "!", "making_const_table", "&&", "SYMBOL_REF_P", "(", "x", ")", "&&", "SYMBOL_REF_FUNCTION_P", "(", "x", ")", ")", "fputs", "(", "\"(FUNCDESC)\"", ",", "asm_out_file", ")", ";", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "true", ";", "}", "mode", "=", "GET_MODE", "(", "x", ")", ";", "if", "(", "arm_vector_mode_supported_p", "(", "mode", ")", ")", "{", "int", "i", ",", "units", ";", "gcc_assert", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", ";", "units", "=", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "size", "=", "GET_MODE_UNIT_SIZE", "(", "mode", ")", ";", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", ")", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_integer", "(", "elt", ",", "size", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ",", "1", ")", ";", "}", "else", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "i", "++", ")", "{", "rtx", "elt", "=", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ";", "assemble_real", "(", "*", "CONST_DOUBLE_REAL_VALUE", "(", "elt", ")", ",", "as_a", "<", "scalar_float_mode", ">", "(", "GET_MODE_INNER", "(", "mode", ")", ")", ",", "i", "==", "0", "?", "BIGGEST_ALIGNMENT", ":", "size", "*", "BITS_PER_UNIT", ")", ";", "}", "return", "true", ";", "}", "return", "default_assemble_integer", "(", "x", ",", "size", ",", "aligned_p", ")", ";", "}", ""], "natrual_language": ["Target", "hook", "for", "assembling", "integer", "objects", ".", "The", "ARM", "version", "needs", "to", "handle", "word-sized", "values", "specially", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "0", "\"(GOTFUNCDESC)\"", "\"(GOT)\"", "\"(GOTOFFFUNCDESC)\"", "\"(GOTOFF)\"", "\"(GOT)\"", "\"(FUNCDESC)\"", "0", "0", "1", "0", "0"], "File": "arm", "Func": "arm_assemble_integer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44917, "Length": 395}
{"ground_truth": ["", "int", "arm_attr_length_move_neon", "(", "rtx_insn", "*", "insn", ")", "{", "rtx", "reg", ",", "mem", ",", "addr", ";", "int", "load", ";", "machine_mode", "mode", ";", "extract_insn_cached", "(", "insn", ")", ";", "if", "(", "REG_P", "(", "recog_data", ".", "operand", "[", "0", "]", ")", "&&", "REG_P", "(", "recog_data", ".", "operand", "[", "1", "]", ")", ")", "{", "mode", "=", "GET_MODE", "(", "recog_data", ".", "operand", "[", "0", "]", ")", ";", "switch", "(", "mode", ")", "{", "case", "E_EImode", ":", "case", "E_OImode", ":", "return", "8", ";", "case", "E_CImode", ":", "return", "12", ";", "case", "E_XImode", ":", "return", "16", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "load", "=", "REG_P", "(", "recog_data", ".", "operand", "[", "0", "]", ")", ";", "reg", "=", "recog_data", ".", "operand", "[", "!", "load", "]", ";", "mem", "=", "recog_data", ".", "operand", "[", "load", "]", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "addr", ",", "0", ")", ")", "==", "PLUS", ")", "addr", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "if", "(", "LABEL_REF_P", "(", "addr", ")", "||", "GET_CODE", "(", "addr", ")", "==", "PLUS", ")", "{", "int", "insns", "=", "REG_NREGS", "(", "reg", ")", "/", "2", ";", "return", "insns", "*", "4", ";", "}", "else", "return", "4", ";", "}", ""], "natrual_language": ["Compute", "and", "return", "the", "length", "of", "neon_mov", "<", "mode", ">", ",", "where", "<", "mode", ">", "is", "one", "of", "VSTRUCT", "modes", ":", "EI", ",", "OI", ",", "CI", "or", "XI", "."], "TS_V_token": ["arm", "0", "1", "0", "8", "12", "16", "0", "0", "0", "0", "2", "4", "4"], "File": "arm", "Func": "arm_attr_length_move_neon", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44918, "Length": 209}
{"ground_truth": ["", "int", "arm_attr_length_pop_multi", "(", "rtx", "*", "operands", ",", "bool", "return_pc", ",", "bool", "write_back_p", ")", "{", "if", "(", "TARGET_ARM", ")", "return", "4", ";", "if", "(", "TARGET_THUMB1", ")", "return", "2", ";", "rtx", "parallel_op", "=", "operands", "[", "0", "]", ";", "unsigned", "indx", "=", "XVECLEN", "(", "parallel_op", ",", "0", ")", "-", "1", ";", "unsigned", "regno", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "unsigned", "first_indx", "=", "0", ";", "first_indx", "+=", "return_pc", "?", "1", ":", "0", ";", "first_indx", "+=", "write_back_p", "?", "1", ":", "0", ";", "bool", "pop_p", "=", "(", "regno", "==", "SP_REGNUM", "&&", "write_back_p", ")", ";", "bool", "ldm_p", "=", "!", "pop_p", ";", "if", "(", "ldm_p", "&&", "REGNO_REG_CLASS", "(", "regno", ")", "==", "HI_REGS", ")", "return", "4", ";", "for", "(", ";", "indx", ">=", "first_indx", ";", "indx", "--", ")", "{", "regno", "=", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "parallel_op", ",", "0", ",", "indx", ")", ",", "0", ")", ")", ";", "if", "(", "REGNO_REG_CLASS", "(", "regno", ")", "==", "HI_REGS", "&&", "(", "regno", "!=", "PC_REGNUM", "||", "ldm_p", ")", ")", "return", "4", ";", "}", "return", "2", ";", "}", ""], "natrual_language": ["Compute", "the", "attribute", "``", "length", "''", "of", "insn", ".", "Currently", ",", "this", "function", "is", "used", "for", "``", "*", "load_multiple_with_writeback", "''", ",", "``", "*", "pop_multiple_with_return", "''", "and", "``", "*", "pop_multiple_with_writeback_and_return", "''", ".", "OPERANDS", "is", "the", "toplevel", "PARALLEL", "rtx", ",", "RETURN_PC", "is", "true", "if", "OPERANDS", "contains", "return", "insn", ".", "WRITE_BACK_P", "is", "true", "if", "OPERANDS", "contains", "insn", "which", "explicit", "updates", "base", "register", "."], "TS_V_token": ["arm", "4", "2", "0", "0", "1", "1", "0", "1", "0", "1", "0", "4", "0", "0", "4", "2"], "File": "arm", "Func": "arm_attr_length_pop_multi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44919, "Length": 166}
{"ground_truth": ["", "int", "arm_attr_length_push_multi", "(", "rtx", "parallel_op", ",", "rtx", "first_op", ")", "{", "int", "i", ",", "regno", ",", "hi_reg", ";", "int", "num_saves", "=", "XVECLEN", "(", "parallel_op", ",", "0", ")", ";", "if", "(", "TARGET_ARM", ")", "return", "4", ";", "if", "(", "TARGET_THUMB1", ")", "return", "2", ";", "regno", "=", "REGNO", "(", "first_op", ")", ";", "hi_reg", "=", "(", "REGNO_REG_CLASS", "(", "regno", ")", "==", "HI_REGS", ")", "&&", "(", "regno", "!=", "LR_REGNUM", ")", ";", "for", "(", "i", "=", "1", ";", "i", "<", "num_saves", "&&", "!", "hi_reg", ";", "i", "++", ")", "{", "regno", "=", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "parallel_op", ",", "0", ",", "i", ")", ",", "0", ")", ")", ";", "hi_reg", "|=", "(", "REGNO_REG_CLASS", "(", "regno", ")", "==", "HI_REGS", ")", "&&", "(", "regno", "!=", "LR_REGNUM", ")", ";", "}", "if", "(", "!", "hi_reg", ")", "return", "2", ";", "return", "4", ";", "}", ""], "natrual_language": ["Compute", "the", "atrribute", "``", "length", "''", "of", "insn", "``", "*", "push_multi", "''", ".", "So", "this", "function", "MUST", "be", "kept", "in", "sync", "with", "that", "insn", "pattern", "."], "TS_V_token": ["arm", "0", "4", "2", "1", "0", "0", "2", "4"], "File": "arm", "Func": "arm_attr_length_push_multi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44920, "Length": 131}
{"ground_truth": ["", "static", "int", "arm_barrier_cost", "(", "rtx_insn", "*", "insn", ")", "{", "int", "base_cost", "=", "50", ";", "rtx_insn", "*", "next", "=", "next_nonnote_insn", "(", "insn", ")", ";", "if", "(", "next", "!=", "NULL", "&&", "LABEL_P", "(", "next", ")", ")", "base_cost", "-=", "20", ";", "switch", "(", "GET_CODE", "(", "insn", ")", ")", "{", "case", "CODE_LABEL", ":", "return", "50", ";", "case", "INSN", ":", "case", "CALL_INSN", ":", "return", "base_cost", ";", "case", "JUMP_INSN", ":", "return", "base_cost", "-", "10", ";", "default", ":", "return", "base_cost", "+", "10", ";", "}", "}", ""], "natrual_language": ["Return", "the", "cost", "of", "forcibly", "inserting", "a", "barrier", "after", "INSN", "."], "TS_V_token": ["arm", "50", "20", "50", "10", "10"], "File": "arm", "Func": "arm_barrier_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44921, "Length": 78}
{"ground_truth": ["", "static", "void", "arm_block_arith_comp_libfuncs_for_mode", "(", "machine_mode", "mode", ")", "{", "set_optab_libfunc", "(", "add_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "sdiv_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "smul_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "neg_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "sub_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "eq_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "ne_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "lt_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "le_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "ge_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "gt_optab", ",", "mode", ",", "NULL", ")", ";", "set_optab_libfunc", "(", "unord_optab", ",", "mode", ",", "NULL", ")", ";", "}", ""], "natrual_language": ["Record", "that", "we", "have", "no", "arithmetic", "or", "comparison", "libfuncs", "for", "machine", "mode", "MODE", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_block_arith_comp_libfuncs_for_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44922, "Length": 117}
{"ground_truth": ["", "static", "void", "arm_block_move_unaligned_loop", "(", "rtx", "dest", ",", "rtx", "src", ",", "HOST_WIDE_INT", "length", ",", "unsigned", "int", "interleave_factor", ",", "HOST_WIDE_INT", "bytes_per_iter", ")", "{", "rtx", "src_reg", ",", "dest_reg", ",", "final_src", ",", "test", ";", "HOST_WIDE_INT", "leftover", ";", "leftover", "=", "length", "%", "bytes_per_iter", ";", "length", "-=", "leftover", ";", "arm_adjust_block_mem", "(", "src", ",", "bytes_per_iter", ",", "&", "src_reg", ",", "&", "src", ")", ";", "arm_adjust_block_mem", "(", "dest", ",", "bytes_per_iter", ",", "&", "dest_reg", ",", "&", "dest", ")", ";", "final_src", "=", "expand_simple_binop", "(", "Pmode", ",", "PLUS", ",", "src_reg", ",", "GEN_INT", "(", "length", ")", ",", "0", ",", "0", ",", "OPTAB_WIDEN", ")", ";", "rtx_code_label", "*", "label", "=", "gen_label_rtx", "(", ")", ";", "emit_label", "(", "label", ")", ";", "arm_block_move_unaligned_straight", "(", "dest", ",", "src", ",", "bytes_per_iter", ",", "interleave_factor", ")", ";", "emit_move_insn", "(", "src_reg", ",", "plus_constant", "(", "Pmode", ",", "src_reg", ",", "bytes_per_iter", ")", ")", ";", "emit_move_insn", "(", "dest_reg", ",", "plus_constant", "(", "Pmode", ",", "dest_reg", ",", "bytes_per_iter", ")", ")", ";", "test", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "src_reg", ",", "final_src", ")", ";", "emit_jump_insn", "(", "gen_cbranchsi4", "(", "test", ",", "src_reg", ",", "final_src", ",", "label", ")", ")", ";", "if", "(", "leftover", ")", "arm_block_move_unaligned_straight", "(", "dest", ",", "src", ",", "leftover", ",", "interleave_factor", ")", ";", "}", ""], "natrual_language": ["From", "mips_block_move_loop", ":", "Move", "LENGTH", "bytes", "from", "SRC", "to", "DEST", "using", "a", "loop", "that", "moves", "BYTES_PER_ITER", "bytes", "at", "a", "time", ".", "LENGTH", "must", "be", "at", "least", "BYTES_PER_ITER", ".", "Assume", "that", "the", "memory", "regions", "do", "not", "overlap", "."], "TS_V_token": ["arm", "0", "0"], "File": "arm", "Func": "arm_block_move_unaligned_loop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44923, "Length": 184}
{"ground_truth": ["", "static", "int", "arm_block_set_max_insns", "(", "void", ")", "{", "if", "(", "optimize_function_for_size_p", "(", "cfun", ")", ")", "return", "4", ";", "else", "return", "current_tune", "->", "max_insns_inline_memset", ";", "}", ""], "natrual_language": ["Maximum", "number", "of", "instructions", "to", "set", "block", "of", "memory", "."], "TS_V_token": ["arm", "4"], "File": "arm", "Func": "arm_block_set_max_insns", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44924, "Length": 24}
{"ground_truth": ["", "static", "bool", "arm_block_set_non_vect_profit_p", "(", "rtx", "val", ",", "unsigned", "HOST_WIDE_INT", "length", ",", "unsigned", "HOST_WIDE_INT", "align", ",", "bool", "unaligned_p", ",", "bool", "use_strd_p", ")", "{", "int", "num", "=", "0", ";", "const", "int", "leftover", "[", "8", "]", "=", "{", "0", ",", "1", ",", "1", ",", "2", ",", "1", ",", "2", ",", "2", ",", "3", "}", ";", "if", "(", "unaligned_p", ")", "{", "num", "=", "arm_const_inline_cost", "(", "SET", ",", "val", ")", ";", "num", "+=", "length", "/", "align", "+", "length", "%", "align", ";", "}", "else", "if", "(", "use_strd_p", ")", "{", "num", "=", "arm_const_double_inline_cost", "(", "val", ")", ";", "num", "+=", "(", "length", ">>", "3", ")", "+", "leftover", "[", "length", "&", "7", "]", ";", "}", "else", "{", "num", "=", "arm_const_inline_cost", "(", "SET", ",", "val", ")", ";", "num", "+=", "(", "length", ">>", "2", ")", "+", "leftover", "[", "length", "&", "3", "]", ";", "}", "if", "(", "unaligned_access", "&&", "length", ">", "3", "&&", "(", "length", "&", "3", ")", "==", "3", ")", "num", "--", ";", "return", "(", "num", "<=", "arm_block_set_max_insns", "(", ")", ")", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "it", "'s", "profitable", "to", "set", "block", "of", "memory", "for", "non-vectorized", "case", ".", "VAL", "is", "the", "value", "to", "set", "the", "memory", "with", ".", "LENGTH", "is", "the", "number", "of", "bytes", "to", "set", ".", "ALIGN", "is", "the", "alignment", "of", "the", "destination", "memory", "in", "bytes", ".", "UNALIGNED_P", "is", "TRUE", "if", "we", "can", "only", "set", "the", "memory", "with", "instructions", "meeting", "alignment", "requirements", ".", "USE_STRD_P", "is", "TRUE", "if", "we", "can", "use", "strd", "to", "set", "the", "memory", "."], "TS_V_token": ["arm", "0", "8", "0", "1", "1", "2", "1", "2", "2", "3", "3", "7", "2", "3", "3", "3", "3"], "File": "arm", "Func": "arm_block_set_non_vect_profit_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44925, "Length": 162}
{"ground_truth": ["", "static", "bool", "arm_block_set_unaligned_non_vect", "(", "rtx", "dstbase", ",", "unsigned", "HOST_WIDE_INT", "length", ",", "unsigned", "HOST_WIDE_INT", "value", ",", "unsigned", "HOST_WIDE_INT", "align", ")", "{", "unsigned", "int", "i", ";", "rtx", "dst", ",", "addr", ",", "mem", ";", "rtx", "val_exp", ",", "val_reg", ",", "reg", ";", "machine_mode", "mode", ";", "HOST_WIDE_INT", "v", "=", "value", ";", "gcc_assert", "(", "align", "==", "1", "||", "align", "==", "2", ")", ";", "if", "(", "align", "==", "2", ")", "v", "|=", "(", "value", "<<", "BITS_PER_UNIT", ")", ";", "v", "=", "sext_hwi", "(", "v", ",", "BITS_PER_WORD", ")", ";", "val_exp", "=", "GEN_INT", "(", "v", ")", ";", "if", "(", "!", "arm_block_set_non_vect_profit_p", "(", "val_exp", ",", "length", ",", "align", ",", "true", ",", "false", ")", ")", "return", "false", ";", "dst", "=", "copy_addr_to_reg", "(", "XEXP", "(", "dstbase", ",", "0", ")", ")", ";", "mode", "=", "(", "align", "==", "2", "?", "HImode", ":", "QImode", ")", ";", "val_reg", "=", "force_reg", "(", "SImode", ",", "val_exp", ")", ";", "reg", "=", "gen_lowpart", "(", "mode", ",", "val_reg", ")", ";", "for", "(", "i", "=", "0", ";", "(", "i", "+", "GET_MODE_SIZE", "(", "mode", ")", "<=", "length", ")", ";", "i", "+=", "GET_MODE_SIZE", "(", "mode", ")", ")", "{", "addr", "=", "plus_constant", "(", "Pmode", ",", "dst", ",", "i", ")", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "mode", ",", "addr", ",", "i", ")", ";", "emit_move_insn", "(", "mem", ",", "reg", ")", ";", "}", "if", "(", "i", "+", "1", "==", "length", ")", "{", "reg", "=", "gen_lowpart", "(", "QImode", ",", "val_reg", ")", ";", "addr", "=", "plus_constant", "(", "Pmode", ",", "dst", ",", "i", ")", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "QImode", ",", "addr", ",", "i", ")", ";", "emit_move_insn", "(", "mem", ",", "reg", ")", ";", "i", "++", ";", "}", "gcc_assert", "(", "i", "==", "length", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Set", "a", "block", "of", "memory", "using", "plain", "strh/strb", "instructions", ",", "only", "using", "instructions", "allowed", "by", "ALIGN", "on", "processor", ".", "We", "fill", "the", "first", "LENGTH", "bytes", "of", "the", "memory", "area", "starting", "from", "DSTBASE", "with", "byte", "constant", "VALUE", ".", "ALIGN", "is", "the", "alignment", "requirement", "of", "memory", "."], "TS_V_token": ["arm", "1", "2", "2", "0", "2", "0", "1"], "File": "arm", "Func": "arm_block_set_unaligned_non_vect", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44926, "Length": 269}
{"ground_truth": ["", "static", "bool", "arm_block_set_unaligned_vect", "(", "rtx", "dstbase", ",", "unsigned", "HOST_WIDE_INT", "length", ",", "unsigned", "HOST_WIDE_INT", "value", ",", "unsigned", "HOST_WIDE_INT", "align", ")", "{", "unsigned", "int", "i", ",", "nelt_v16", ",", "nelt_v8", ",", "nelt_mode", ";", "rtx", "dst", ",", "mem", ";", "rtx", "val_vec", ",", "reg", ";", "rtx", "(", "*", "gen_func", ")", "(", "rtx", ",", "rtx", ")", ";", "machine_mode", "mode", ";", "unsigned", "HOST_WIDE_INT", "v", "=", "value", ";", "unsigned", "int", "offset", "=", "0", ";", "gcc_assert", "(", "(", "align", "&", "0x3", ")", "!=", "0", ")", ";", "nelt_v8", "=", "GET_MODE_NUNITS", "(", "V8QImode", ")", ";", "nelt_v16", "=", "GET_MODE_NUNITS", "(", "V16QImode", ")", ";", "if", "(", "length", ">=", "nelt_v16", ")", "{", "mode", "=", "V16QImode", ";", "gen_func", "=", "gen_movmisalignv16qi", ";", "}", "else", "{", "mode", "=", "V8QImode", ";", "gen_func", "=", "gen_movmisalignv8qi", ";", "}", "nelt_mode", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "gcc_assert", "(", "length", ">=", "nelt_mode", ")", ";", "if", "(", "!", "arm_block_set_vect_profit_p", "(", "length", ",", "align", ",", "mode", ")", ")", "return", "false", ";", "dst", "=", "copy_addr_to_reg", "(", "XEXP", "(", "dstbase", ",", "0", ")", ")", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "mode", ",", "dst", ",", "offset", ")", ";", "v", "=", "sext_hwi", "(", "v", ",", "BITS_PER_WORD", ")", ";", "reg", "=", "gen_reg_rtx", "(", "mode", ")", ";", "val_vec", "=", "gen_const_vec_duplicate", "(", "mode", ",", "GEN_INT", "(", "v", ")", ")", ";", "emit_move_insn", "(", "reg", ",", "val_vec", ")", ";", "for", "(", "i", "=", "0", ";", "(", "i", "+", "nelt_mode", "<=", "length", ")", ";", "i", "+=", "nelt_mode", ")", "{", "emit_insn", "(", "(", "*", "gen_func", ")", "(", "mem", ",", "reg", ")", ")", ";", "if", "(", "i", "+", "2", "*", "nelt_mode", "<=", "length", ")", "{", "emit_insn", "(", "gen_add2_insn", "(", "dst", ",", "GEN_INT", "(", "nelt_mode", ")", ")", ")", ";", "offset", "+=", "nelt_mode", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "mode", ",", "dst", ",", "offset", ")", ";", "}", "}", "gcc_assert", "(", "(", "i", "+", "nelt_v8", ")", ">", "length", "||", "mode", "==", "V16QImode", ")", ";", "if", "(", "i", "+", "nelt_v8", "<", "length", ")", "{", "emit_insn", "(", "gen_add2_insn", "(", "dst", ",", "GEN_INT", "(", "length", "-", "i", ")", ")", ")", ";", "offset", "+=", "length", "-", "i", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "mode", ",", "dst", ",", "offset", ")", ";", "if", "(", "(", "length", "&", "1", ")", "!=", "0", "&&", "align", ">=", "2", ")", "set_mem_align", "(", "mem", ",", "BITS_PER_UNIT", ")", ";", "emit_insn", "(", "gen_movmisalignv16qi", "(", "mem", ",", "reg", ")", ")", ";", "}", "else", "if", "(", "i", "<", "length", "&&", "i", "+", "nelt_v8", ">=", "length", ")", "{", "if", "(", "mode", "==", "V16QImode", ")", "reg", "=", "gen_lowpart", "(", "V8QImode", ",", "reg", ")", ";", "emit_insn", "(", "gen_add2_insn", "(", "dst", ",", "GEN_INT", "(", "(", "length", "-", "i", ")", "+", "(", "nelt_mode", "-", "nelt_v8", ")", ")", ")", ")", ";", "offset", "+=", "(", "length", "-", "i", ")", "+", "(", "nelt_mode", "-", "nelt_v8", ")", ";", "mem", "=", "adjust_automodify_address", "(", "dstbase", ",", "V8QImode", ",", "dst", ",", "offset", ")", ";", "if", "(", "(", "length", "&", "1", ")", "!=", "0", "&&", "align", ">=", "2", ")", "set_mem_align", "(", "mem", ",", "BITS_PER_UNIT", ")", ";", "emit_insn", "(", "gen_movmisalignv8qi", "(", "mem", ",", "reg", ")", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Set", "a", "block", "of", "memory", "using", "vectorization", "instructions", "for", "the", "unaligned", "case", ".", "We", "fill", "the", "first", "LENGTH", "bytes", "of", "the", "memory", "area", "starting", "from", "DSTBASE", "with", "byte", "constant", "VALUE", ".", "ALIGN", "is", "the", "alignment", "requirement", "of", "memory", ".", "Return", "TRUE", "if", "succeeded", "."], "TS_V_token": ["arm", "0", "0x3", "0", "0", "0", "2", "1", "0", "2", "1", "0", "2"], "File": "arm", "Func": "arm_block_set_unaligned_vect", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44927, "Length": 487}
{"ground_truth": ["", "static", "bool", "arm_block_set_vect", "(", "rtx", "dstbase", ",", "unsigned", "HOST_WIDE_INT", "length", ",", "unsigned", "HOST_WIDE_INT", "value", ",", "unsigned", "HOST_WIDE_INT", "align", ")", "{", "if", "(", "(", "(", "align", "&", "3", ")", "!=", "0", "||", "(", "length", "&", "3", ")", "!=", "0", ")", "&&", "(", "!", "unaligned_access", "||", "BYTES_BIG_ENDIAN", ")", ")", "return", "false", ";", "if", "(", "(", "align", "&", "3", ")", "==", "0", ")", "return", "arm_block_set_aligned_vect", "(", "dstbase", ",", "length", ",", "value", ",", "align", ")", ";", "else", "return", "arm_block_set_unaligned_vect", "(", "dstbase", ",", "length", ",", "value", ",", "align", ")", ";", "}", ""], "natrual_language": ["Set", "a", "block", "of", "memory", "using", "vectorization", "instructions", "for", "both", "aligned", "and", "unaligned", "cases", ".", "We", "fill", "the", "first", "LENGTH", "bytes", "of", "the", "memory", "area", "starting", "from", "DSTBASE", "with", "byte", "constant", "VALUE", ".", "ALIGN", "is", "the", "alignment", "requirement", "of", "memory", "."], "TS_V_token": ["arm", "3", "0", "3", "0", "3", "0"], "File": "arm", "Func": "arm_block_set_vect", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44928, "Length": 86}
{"ground_truth": ["", "static", "bool", "arm_block_set_vect_profit_p", "(", "unsigned", "HOST_WIDE_INT", "length", ",", "unsigned", "HOST_WIDE_INT", "align", ",", "machine_mode", "mode", ")", "{", "int", "num", ";", "bool", "unaligned_p", "=", "(", "(", "align", "&", "3", ")", "!=", "0", ")", ";", "unsigned", "int", "nelt", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "num", "=", "1", ";", "num", "+=", "(", "length", "+", "nelt", "-", "1", ")", "/", "nelt", ";", "if", "(", "!", "unaligned_p", "&&", "(", "length", "&", "3", ")", "!=", "0", ")", "num", "++", ";", "if", "(", "!", "unaligned_p", "&&", "mode", "==", "V16QImode", ")", "num", "--", ";", "return", "(", "num", "<=", "arm_block_set_max_insns", "(", ")", ")", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "it", "'s", "profitable", "to", "set", "block", "of", "memory", "for", "vectorized", "case", ".", "LENGTH", "is", "the", "number", "of", "bytes", "to", "set", ".", "ALIGN", "is", "the", "alignment", "of", "destination", "memory", "in", "bytes", ".", "MODE", "is", "the", "vector", "mode", "used", "to", "set", "the", "memory", "."], "TS_V_token": ["arm", "3", "0", "1", "1", "3", "0"], "File": "arm", "Func": "arm_block_set_vect_profit_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44929, "Length": 95}
{"ground_truth": ["", "static", "tree", "arm_build_builtin_va_list", "(", "void", ")", "{", "tree", "va_list_name", ";", "tree", "ap_field", ";", "if", "(", "!", "TARGET_AAPCS_BASED", ")", "return", "std_build_builtin_va_list", "(", ")", ";", "va_list_type", "=", "lang_hooks", ".", "types", ".", "make_type", "(", "RECORD_TYPE", ")", ";", "va_list_name", "=", "build_decl", "(", "BUILTINS_LOCATION", ",", "TYPE_DECL", ",", "get_identifier", "(", "\"__va_list\"", ")", ",", "va_list_type", ")", ";", "DECL_ARTIFICIAL", "(", "va_list_name", ")", "=", "1", ";", "TYPE_NAME", "(", "va_list_type", ")", "=", "va_list_name", ";", "TYPE_STUB_DECL", "(", "va_list_type", ")", "=", "va_list_name", ";", "ap_field", "=", "build_decl", "(", "BUILTINS_LOCATION", ",", "FIELD_DECL", ",", "get_identifier", "(", "\"__ap\"", ")", ",", "ptr_type_node", ")", ";", "DECL_ARTIFICIAL", "(", "ap_field", ")", "=", "1", ";", "DECL_FIELD_CONTEXT", "(", "ap_field", ")", "=", "va_list_type", ";", "TYPE_FIELDS", "(", "va_list_type", ")", "=", "ap_field", ";", "layout_type", "(", "va_list_type", ")", ";", "return", "va_list_type", ";", "}", ""], "natrual_language": ["Return", "the", "type", "to", "use", "as", "__builtin_va_list", "."], "TS_V_token": ["arm", "\"__va_list\"", "1", "\"__ap\"", "1"], "File": "arm", "Func": "arm_build_builtin_va_list", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44930, "Length": 117}
{"ground_truth": ["", "static", "int", "arm_builtin_vectorization_cost", "(", "enum", "vect_cost_for_stmt", "type_of_cost", ",", "tree", "vectype", ",", "int", "misalign", "ATTRIBUTE_UNUSED", ")", "{", "unsigned", "elements", ";", "switch", "(", "type_of_cost", ")", "{", "case", "scalar_stmt", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_stmt_cost", ";", "case", "scalar_load", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_load_cost", ";", "case", "scalar_store", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_store_cost", ";", "case", "vector_stmt", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_stmt_cost", ";", "case", "vector_load", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_align_load_cost", ";", "case", "vector_store", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_store_cost", ";", "case", "vec_to_scalar", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_to_scalar_cost", ";", "case", "scalar_to_vec", ":", "return", "current_tune", "->", "vec_costs", "->", "scalar_to_vec_cost", ";", "case", "unaligned_load", ":", "case", "vector_gather_load", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_unalign_load_cost", ";", "case", "unaligned_store", ":", "case", "vector_scatter_store", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_unalign_store_cost", ";", "case", "cond_branch_taken", ":", "return", "current_tune", "->", "vec_costs", "->", "cond_taken_branch_cost", ";", "case", "cond_branch_not_taken", ":", "return", "current_tune", "->", "vec_costs", "->", "cond_not_taken_branch_cost", ";", "case", "vec_perm", ":", "case", "vec_promote_demote", ":", "return", "current_tune", "->", "vec_costs", "->", "vec_stmt_cost", ";", "case", "vec_construct", ":", "elements", "=", "TYPE_VECTOR_SUBPARTS", "(", "vectype", ")", ";", "return", "elements", "/", "2", "+", "1", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Implement", "targetm.vectorize.builtin_vectorization_cost", "."], "TS_V_token": ["arm", "2", "1"], "File": "arm", "Func": "arm_builtin_vectorization_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44931, "Length": 188}
{"ground_truth": ["", "static", "bool", "arm_cannot_copy_insn_p", "(", "rtx_insn", "*", "insn", ")", "{", "if", "(", "recog_memoized", "(", "insn", ")", "==", "CODE_FOR_tlscall", ")", "return", "true", ";", "subrtx_iterator", "::", "array_type", "array", ";", "FOR_EACH_SUBRTX", "(", "iter", ",", "array", ",", "PATTERN", "(", "insn", ")", ",", "ALL", ")", "{", "const_rtx", "x", "=", "*", "iter", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "(", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_PIC_BASE", "||", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_PIC_UNIFIED", ")", ")", "return", "true", ";", "}", "rtx", "set", "=", "single_set", "(", "insn", ")", ";", "if", "(", "set", ")", "{", "rtx", "src", "=", "SET_SRC", "(", "set", ")", ";", "if", "(", "GET_CODE", "(", "src", ")", "==", "ZERO_EXTEND", ")", "src", "=", "XEXP", "(", "src", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "src", ")", "==", "UNSPEC_VOLATILE", "&&", "(", "XINT", "(", "src", ",", "1", ")", "==", "VUNSPEC_LL", "||", "XINT", "(", "src", ",", "1", ")", "==", "VUNSPEC_LAX", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Must", "not", "copy", "any", "rtx", "that", "uses", "a", "pc-relative", "address", "."], "TS_V_token": ["arm", "1", "1", "0", "1", "1"], "File": "arm", "Func": "arm_cannot_copy_insn_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44932, "Length": 155}
{"ground_truth": ["", "static", "bool", "arm_cannot_force_const_mem", "(", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "rtx", "x", ")", "{", "rtx", "base", ",", "offset", ";", "split_const", "(", "x", ",", "&", "base", ",", "&", "offset", ")", ";", "if", "(", "SYMBOL_REF_P", "(", "base", ")", ")", "{", "if", "(", "(", "SYMBOL_REF_FLAGS", "(", "base", ")", "&", "SYMBOL_FLAG_FUNCTION", ")", "&&", "INTVAL", "(", "offset", ")", "!=", "0", ")", "return", "true", ";", "if", "(", "ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P", "&&", "!", "offset_within_block_p", "(", "base", ",", "INTVAL", "(", "offset", ")", ")", ")", "return", "true", ";", "}", "return", "arm_tls_referenced_p", "(", "x", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_CANNOT_FORCE_CONST_MEM", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_cannot_force_const_mem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44933, "Length": 83}
{"ground_truth": ["", "static", "bool", "arm_can_change_mode_class", "(", "machine_mode", "from", ",", "machine_mode", "to", ",", "reg_class_t", "rclass", ")", "{", "if", "(", "TARGET_BIG_END", "&&", "!", "(", "GET_MODE_SIZE", "(", "from", ")", "==", "16", "&&", "GET_MODE_SIZE", "(", "to", ")", "==", "8", ")", "&&", "(", "GET_MODE_SIZE", "(", "from", ")", ">", "UNITS_PER_WORD", "||", "GET_MODE_SIZE", "(", "to", ")", ">", "UNITS_PER_WORD", ")", "&&", "reg_classes_intersect_p", "(", "VFP_REGS", ",", "rclass", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Implement", "TARGET_CAN_CHANGE_MODE_CLASS", ".", "In", "VFPv1", ",", "VFP", "registers", "could", "only", "be", "accessed", "in", "the", "mode", "they", "were", "set", ",", "so", "subregs", "would", "be", "invalid", "there", ".", "However", ",", "we", "do", "n't", "support", "VFPv1", "at", "the", "moment", ",", "and", "the", "restriction", "was", "lifted", "in", "VFPv2", ".", "In", "big-endian", "mode", ",", "modes", "greater", "than", "word", "size", "(", "i.e", ".", "DFmode", ")", "are", "stored", "in", "VFP", "registers", "in", "little-endian", "order", ".", "We", "ca", "n't", "describe", "that", "accurately", "to", "GCC", ",", "so", "avoid", "taking", "subregs", "of", "such", "values", ".", "The", "only", "exception", "is", "going", "from", "a", "128-bit", "to", "a", "64-bit", "type", ".", "In", "that", "case", "the", "data", "layout", "happens", "to", "be", "consistent", "for", "big-endian", ",", "so", "we", "explicitly", "allow", "that", "case", "."], "TS_V_token": ["arm", "16", "8"], "File": "arm", "Func": "arm_can_change_mode_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44934, "Length": 65}
{"ground_truth": ["", "bool", "arm_can_eliminate", "(", "const", "int", "from", ",", "const", "int", "to", ")", "{", "return", "(", "(", "to", "==", "FRAME_POINTER_REGNUM", "&&", "from", "==", "ARG_POINTER_REGNUM", ")", "?", "false", ":", "(", "to", "==", "STACK_POINTER_REGNUM", "&&", "frame_pointer_needed", ")", "?", "false", ":", "(", "to", "==", "ARM_HARD_FRAME_POINTER_REGNUM", "&&", "TARGET_THUMB", ")", "?", "false", ":", "(", "to", "==", "THUMB_HARD_FRAME_POINTER_REGNUM", "&&", "TARGET_ARM", ")", "?", "false", ":", "true", ")", ";", "}", ""], "natrual_language": ["Given", "FROM", "and", "TO", "register", "numbers", ",", "say", "whether", "this", "elimination", "is", "allowed", ".", "Frame", "pointer", "elimination", "is", "automatically", "handled", ".", "All", "eliminations", "are", "permissible", ".", "Note", "that", "ARG_POINTER_REGNUM", "and", "HARD_FRAME_POINTER_REGNUM", "are", "in", "fact", "the", "same", "thing", ".", "If", "we", "need", "a", "frame", "pointer", ",", "we", "must", "eliminate", "FRAME_POINTER_REGNUM", "into", "HARD_FRAME_POINTER_REGNUM", "and", "not", "into", "STACK_POINTER_REGNUM", "or", "ARG_POINTER_REGNUM", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_can_eliminate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44935, "Length": 60}
{"ground_truth": ["", "static", "bool", "arm_can_inline_p", "(", "tree", "caller", ",", "tree", "callee", ")", "{", "tree", "caller_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "caller", ")", ";", "tree", "callee_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "callee", ")", ";", "bool", "can_inline", "=", "true", ";", "struct", "cl_target_option", "*", "caller_opts", "=", "TREE_TARGET_OPTION", "(", "caller_tree", "?", "caller_tree", ":", "target_option_default_node", ")", ";", "struct", "cl_target_option", "*", "callee_opts", "=", "TREE_TARGET_OPTION", "(", "callee_tree", "?", "callee_tree", ":", "target_option_default_node", ")", ";", "if", "(", "callee_opts", "==", "caller_opts", ")", "return", "true", ";", "struct", "arm_build_target", "caller_target", ";", "struct", "arm_build_target", "callee_target", ";", "caller_target", ".", "isa", "=", "sbitmap_alloc", "(", "isa_num_bits", ")", ";", "callee_target", ".", "isa", "=", "sbitmap_alloc", "(", "isa_num_bits", ")", ";", "arm_configure_build_target", "(", "&", "caller_target", ",", "caller_opts", ",", "false", ")", ";", "arm_configure_build_target", "(", "&", "callee_target", ",", "callee_opts", ",", "false", ")", ";", "if", "(", "!", "bitmap_subset_p", "(", "callee_target", ".", "isa", ",", "caller_target", ".", "isa", ")", ")", "can_inline", "=", "false", ";", "sbitmap_free", "(", "caller_target", ".", "isa", ")", ";", "sbitmap_free", "(", "callee_target", ".", "isa", ")", ";", "return", "can_inline", ";", "}", ""], "natrual_language": ["Hook", "to", "determine", "if", "one", "function", "can", "safely", "inline", "another", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_can_inline_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44936, "Length": 151}
{"ground_truth": ["", "static", "bool", "arm_can_output_mi_thunk", "(", "const_tree", ",", "HOST_WIDE_INT", ",", "HOST_WIDE_INT", "vcall_offset", ",", "const_tree", ")", "{", "if", "(", "vcall_offset", "&&", "TARGET_THUMB1", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Can", "output", "mi_thunk", "for", "all", "cases", "except", "for", "non-zero", "vcall_offset", "in", "Thumb1", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_can_output_mi_thunk", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44937, "Length": 27}
{"ground_truth": ["", "bool", "arm_change_mode_p", "(", "tree", "func", ")", "{", "if", "(", "TREE_CODE", "(", "func", ")", "!=", "FUNCTION_DECL", ")", "return", "false", ";", "tree", "callee_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "func", ")", ";", "if", "(", "!", "callee_tree", ")", "callee_tree", "=", "target_option_default_node", ";", "struct", "cl_target_option", "*", "callee_opts", "=", "TREE_TARGET_OPTION", "(", "callee_tree", ")", ";", "int", "flags", "=", "callee_opts", "->", "x_target_flags", ";", "return", "(", "TARGET_THUMB_P", "(", "flags", ")", "!=", "TARGET_THUMB", ")", ";", "}", ""], "natrual_language": ["Check", "that", "FUNC", "is", "called", "with", "a", "different", "mode", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_change_mode_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44938, "Length": 64}
{"ground_truth": ["", "static", "bool", "arm_class_likely_spilled_p", "(", "reg_class_t", "rclass", ")", "{", "if", "(", "(", "TARGET_THUMB1", "&&", "rclass", "==", "LO_REGS", ")", "||", "rclass", "==", "CC_REG", ")", "return", "true", ";", "return", "default_class_likely_spilled_p", "(", "rclass", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_CLASS_LIKELY_SPILLED_P", ".", "We", "need", "to", "define", "this", "for", "LO_REGS", "on", "Thumb-1", ".", "Otherwise", "we", "can", "end", "up", "using", "r0-r4", "for", "function", "arguments", ",", "r7", "for", "the", "stack", "frame", "and", "do", "n't", "have", "enough", "left", "over", "to", "do", "doubleword", "arithmetic", ".", "For", "Thumb-2", "all", "the", "potentially", "problematic", "instructions", "accept", "high", "registers", "so", "this", "is", "not", "necessary", ".", "Care", "needs", "to", "be", "taken", "to", "avoid", "adding", "new", "Thumb-2", "patterns", "that", "require", "many", "low", "registers", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_class_likely_spilled_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44939, "Length": 32}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_func_type", "(", "void", ")", "{", "unsigned", "long", "type", "=", "ARM_FT_UNKNOWN", ";", "tree", "a", ";", "tree", "attr", ";", "gcc_assert", "(", "TREE_CODE", "(", "current_function_decl", ")", "==", "FUNCTION_DECL", ")", ";", "if", "(", "optimize", ">", "0", "&&", "(", "TREE_NOTHROW", "(", "current_function_decl", ")", "||", "!", "(", "flag_unwind_tables", "||", "(", "flag_exceptions", "&&", "arm_except_unwind_info", "(", "&", "global_options", ")", "!=", "UI_SJLJ", ")", ")", ")", "&&", "TREE_THIS_VOLATILE", "(", "current_function_decl", ")", ")", "type", "|=", "ARM_FT_VOLATILE", ";", "if", "(", "cfun", "->", "static_chain_decl", "!=", "NULL", ")", "type", "|=", "ARM_FT_NESTED", ";", "attr", "=", "DECL_ATTRIBUTES", "(", "current_function_decl", ")", ";", "a", "=", "lookup_attribute", "(", "\"naked\"", ",", "attr", ")", ";", "if", "(", "a", "!=", "NULL_TREE", ")", "type", "|=", "ARM_FT_NAKED", ";", "a", "=", "lookup_attribute", "(", "\"isr\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "a", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "attr", ")", ";", "if", "(", "a", "==", "NULL_TREE", ")", "type", "|=", "TARGET_INTERWORK", "?", "ARM_FT_INTERWORKED", ":", "ARM_FT_NORMAL", ";", "else", "type", "|=", "arm_isr_value", "(", "TREE_VALUE", "(", "a", ")", ")", ";", "if", "(", "lookup_attribute", "(", "\"cmse_nonsecure_entry\"", ",", "attr", ")", ")", "type", "|=", "ARM_FT_CMSE_ENTRY", ";", "return", "type", ";", "}", ""], "natrual_language": ["Computes", "the", "type", "of", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "\"naked\"", "\"isr\"", "\"interrupt\"", "\"cmse_nonsecure_entry\""], "File": "arm", "Func": "arm_compute_func_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44940, "Length": 173}
{"ground_truth": ["", "HOST_WIDE_INT", "arm_compute_initial_elimination_offset", "(", "unsigned", "int", "from", ",", "unsigned", "int", "to", ")", "{", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "switch", "(", "from", ")", "{", "case", "ARG_POINTER_REGNUM", ":", "switch", "(", "to", ")", "{", "case", "THUMB_HARD_FRAME_POINTER_REGNUM", ":", "return", "0", ";", "case", "FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "soft_frame", "-", "offsets", "->", "saved_args", ";", "case", "ARM_HARD_FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "frame", "-", "offsets", "->", "saved_args", "-", "4", ";", "case", "STACK_POINTER_REGNUM", ":", "return", "offsets", "->", "outgoing_args", "-", "(", "offsets", "->", "saved_args", "+", "4", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "gcc_unreachable", "(", ")", ";", "case", "FRAME_POINTER_REGNUM", ":", "switch", "(", "to", ")", "{", "case", "THUMB_HARD_FRAME_POINTER_REGNUM", ":", "return", "0", ";", "case", "ARM_HARD_FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "frame", "-", "offsets", "->", "soft_frame", ";", "case", "STACK_POINTER_REGNUM", ":", "return", "offsets", "->", "outgoing_args", "-", "offsets", "->", "soft_frame", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "gcc_unreachable", "(", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Compute", "the", "distance", "from", "register", "FROM", "to", "register", "TO", ".", "These", "can", "be", "the", "arg", "pointer", "(", "26", ")", ",", "the", "soft", "frame", "pointer", "(", "25", ")", ",", "the", "stack", "pointer", "(", "13", ")", "or", "the", "hard", "frame", "pointer", "(", "11", ")", ".", "Typical", "stack", "layout", "looks", "like", "this", ":", "old", "stack", "pointer", "-", ">", "|", "|", "--", "--", "|", "|", "\\", "|", "|", "saved", "arguments", "for", "|", "|", "vararg", "functions", "|", "|", "/", "--", "hard", "FP", "&", "arg", "pointer", "-", ">", "|", "|", "\\", "|", "|", "stack", "|", "|", "frame", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "call", "saved", "|", "|", "registers", "soft", "frame", "pointer", "-", ">", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "local", "|", "|", "variables", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "outgoing", "|", "|", "arguments", "current", "stack", "pointer", "-", ">", "|", "|", "/", "--", "For", "a", "given", "funciton", "some", "or", "all", "of", "these", "stack", "compomnents", "may", "not", "be", "needed", ",", "giving", "rise", "to", "the", "possibility", "of", "eliminating", "some", "of", "the", "registers", ".", "The", "values", "returned", "by", "this", "function", "must", "reflect", "the", "behaviour", "of", "arm_expand_prologue", "(", ")", "and", "arm_compute_save_reg_mask", "(", ")", ".", "The", "sign", "of", "the", "number", "returned", "reflects", "the", "direction", "of", "stack", "growth", ",", "so", "the", "values", "are", "positive", "for", "all", "eliminations", "except", "from", "the", "soft", "frame", "pointer", "to", "the", "hard", "frame", "pointer", "."], "TS_V_token": ["arm", "0", "4", "4", "0"], "File": "arm", "Func": "arm_compute_initial_elimination_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44941, "Length": 151}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_core_reg_mask", "(", "void", ")", "{", "unsigned", "int", "save_reg_mask", "=", "0", ";", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "TARGET_ARM", ")", "save_reg_mask", "|=", "(", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ")", "|", "(", "1", "<<", "IP_REGNUM", ")", "|", "(", "1", "<<", "LR_REGNUM", ")", "|", "(", "1", "<<", "PC_REGNUM", ")", ";", "save_reg_mask", "|=", "arm_compute_save_reg0_reg12_mask", "(", ")", ";", "if", "(", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", "||", "(", "save_reg_mask", "&&", "optimize_size", "&&", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_NORMAL", "&&", "!", "crtl", "->", "tail_call_emit", "&&", "!", "crtl", "->", "calls_eh_return", ")", ")", "save_reg_mask", "|=", "1", "<<", "LR_REGNUM", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "save_reg_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "(", "(", "bit_count", "(", "save_reg_mask", ")", "+", "ARM_NUM_INTS", "(", "crtl", "->", "args", ".", "pretend_args_size", "+", "arm_compute_static_chain_stack_bytes", "(", ")", ")", ")", "%", "2", ")", "!=", "0", ")", "{", "for", "(", "reg", "=", "4", ";", "reg", "<=", "12", ";", "reg", "++", ")", "if", "(", "(", "save_reg_mask", "&", "(", "1", "<<", "reg", ")", ")", "==", "0", ")", "break", ";", "if", "(", "reg", "<=", "12", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "else", "{", "cfun", "->", "machine", "->", "sibcall_blocked", "=", "1", ";", "save_reg_mask", "|=", "(", "1", "<<", "3", ")", ";", "}", "}", "if", "(", "TARGET_THUMB2", "&&", "IS_NESTED", "(", "func_type", ")", "&&", "flag_pic", "&&", "(", "save_reg_mask", "&", "THUMB2_WORK_REGS", ")", "==", "0", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "4", ")", ";", "if", "(", "!", "call_used_or_fixed_reg_p", "(", "reg", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "core", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", ".", "This", "is", "used", "by", "arm_compute_frame_layout", ",", "which", "may", "add", "extra", "registers", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "1", "1", "1", "2", "0", "4", "12", "1", "0", "12", "1", "1", "1", "3", "0", "1", "4", "1"], "File": "arm", "Func": "arm_compute_save_core_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44942, "Length": 273}
{"ground_truth": ["", "static", "unsigned", "long", "arm_compute_save_reg0_reg12_mask", "(", "void", ")", "{", "unsigned", "long", "func_type", "=", "arm_current_func_type", "(", ")", ";", "unsigned", "long", "save_reg_mask", "=", "0", ";", "unsigned", "int", "reg", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "{", "unsigned", "int", "max_reg", ";", "if", "(", "ARM_FUNC_TYPE", "(", "func_type", ")", "==", "ARM_FT_FIQ", ")", "max_reg", "=", "7", ";", "else", "max_reg", "=", "12", ";", "for", "(", "reg", "=", "0", ";", "reg", "<=", "max_reg", ";", "reg", "++", ")", "if", "(", "reg_needs_saving_p", "(", "reg", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "if", "(", "PIC_REGISTER_MAY_NEED_SAVING", "&&", "crtl", "->", "uses_pic_offset_table", ")", "save_reg_mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "}", "else", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "{", "if", "(", "frame_pointer_needed", ")", "save_reg_mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "df_regs_ever_live_p", "(", "ARM_HARD_FRAME_POINTER_REGNUM", ")", ")", "save_reg_mask", "|=", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "df_regs_ever_live_p", "(", "THUMB_HARD_FRAME_POINTER_REGNUM", ")", ")", "save_reg_mask", "|=", "1", "<<", "THUMB_HARD_FRAME_POINTER_REGNUM", ";", "}", "else", "{", "for", "(", "reg", "=", "0", ";", "reg", "<=", "11", ";", "reg", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "callee_saved_reg_p", "(", "reg", ")", ")", "save_reg_mask", "|=", "(", "1", "<<", "reg", ")", ";", "if", "(", "frame_pointer_needed", ")", "save_reg_mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "PIC_REGISTER_MAY_NEED_SAVING", "&&", "(", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", "||", "crtl", "->", "uses_pic_offset_table", ")", ")", "save_reg_mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "save_reg_mask", "|=", "1", ";", "}", "if", "(", "crtl", "->", "calls_eh_return", ")", "{", "unsigned", "int", "i", ";", "for", "(", "i", "=", "0", ";", ";", "i", "++", ")", "{", "reg", "=", "EH_RETURN_DATA_REGNO", "(", "i", ")", ";", "if", "(", "reg", "==", "INVALID_REGNUM", ")", "break", ";", "save_reg_mask", "|=", "1", "<<", "reg", ";", "}", "}", "return", "save_reg_mask", ";", "}", ""], "natrual_language": ["Compute", "the", "register", "save", "mask", "for", "registers", "0", "through", "12", "inclusive", ".", "This", "code", "is", "used", "by", "arm_compute_save_reg_mask", "."], "TS_V_token": ["arm", "0", "7", "12", "0", "1", "1", "1", "1", "1", "0", "11", "1", "1", "1", "1", "0", "1"], "File": "arm", "Func": "arm_compute_save_reg0_reg12_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44943, "Length": 272}
{"ground_truth": ["", "static", "int", "arm_compute_static_chain_stack_bytes", "(", "void", ")", "{", "if", "(", "cfun", "->", "machine", "->", "static_chain_stack_bytes", "!=", "-", "1", ")", "return", "cfun", "->", "machine", "->", "static_chain_stack_bytes", ";", "if", "(", "IS_NESTED", "(", "arm_current_func_type", "(", ")", ")", "&&", "(", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "TARGET_ARM", ")", "||", "(", "(", "flag_stack_check", "==", "STATIC_BUILTIN_STACK_CHECK", "||", "flag_stack_clash_protection", ")", "&&", "!", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", ")", ")", "&&", "arm_r3_live_at_start_p", "(", ")", "&&", "crtl", "->", "args", ".", "pretend_args_size", "==", "0", ")", "return", "4", ";", "return", "0", ";", "}", ""], "natrual_language": ["Compute", "the", "number", "of", "bytes", "used", "to", "store", "the", "static", "chain", "register", "on", "the", "stack", ",", "above", "the", "stack", "frame", ".", "We", "need", "to", "know", "this", "accurately", "to", "get", "the", "alignment", "of", "the", "rest", "of", "the", "stack", "frame", "correct", "."], "TS_V_token": ["arm", "1", "0", "4", "0"], "File": "arm", "Func": "arm_compute_static_chain_stack_bytes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44944, "Length": 79}
{"ground_truth": ["", "static", "int", "arm_comp_type_attributes", "(", "const_tree", "type1", ",", "const_tree", "type2", ")", "{", "int", "l1", ",", "l2", ",", "s1", ",", "s2", ";", "tree", "attrs1", "=", "lookup_attribute", "(", "\"Advanced SIMD type\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", ";", "tree", "attrs2", "=", "lookup_attribute", "(", "\"Advanced SIMD type\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", ";", "if", "(", "bool", "(", "attrs1", ")", "!=", "bool", "(", "attrs2", ")", ")", "return", "0", ";", "if", "(", "attrs1", "&&", "!", "attribute_value_equal", "(", "attrs1", ",", "attrs2", ")", ")", "return", "0", ";", "if", "(", "TREE_CODE", "(", "type1", ")", "!=", "FUNCTION_TYPE", ")", "return", "1", ";", "l1", "=", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "l2", "=", "lookup_attribute", "(", "\"long_call\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "s1", "=", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "s2", "=", "lookup_attribute", "(", "\"short_call\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "l1", "|", "l2", "|", "s1", "|", "s2", ")", "{", "if", "(", "(", "l1", "!=", "l2", ")", "||", "(", "s1", "!=", "s2", ")", ")", "return", "0", ";", "if", "(", "(", "l1", "&", "s2", ")", "||", "(", "l2", "&", "s1", ")", ")", "return", "0", ";", "}", "l1", "=", "lookup_attribute", "(", "\"isr\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "if", "(", "!", "l1", ")", "l1", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "l2", "=", "lookup_attribute", "(", "\"isr\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "!", "l2", ")", "l1", "=", "lookup_attribute", "(", "\"interrupt\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "l1", "!=", "l2", ")", "return", "0", ";", "l1", "=", "lookup_attribute", "(", "\"cmse_nonsecure_call\"", ",", "TYPE_ATTRIBUTES", "(", "type1", ")", ")", "!=", "NULL", ";", "l2", "=", "lookup_attribute", "(", "\"cmse_nonsecure_call\"", ",", "TYPE_ATTRIBUTES", "(", "type2", ")", ")", "!=", "NULL", ";", "if", "(", "l1", "!=", "l2", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "0", "if", "the", "attributes", "for", "two", "types", "are", "incompatible", ",", "1", "if", "they", "are", "compatible", ",", "and", "2", "if", "they", "are", "nearly", "compatible", "(", "which", "causes", "a", "warning", "to", "be", "generated", ")", "."], "TS_V_token": ["arm", "\"Advanced SIMD type\"", "\"Advanced SIMD type\"", "0", "0", "1", "\"long_call\"", "\"long_call\"", "\"short_call\"", "\"short_call\"", "0", "0", "\"isr\"", "\"interrupt\"", "\"isr\"", "\"interrupt\"", "0", "\"cmse_nonsecure_call\"", "\"cmse_nonsecure_call\"", "0", "1"], "File": "arm", "Func": "arm_comp_type_attributes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44945, "Length": 306}
{"ground_truth": ["", "static", "HOST_WIDE_INT", "arm_constant_alignment", "(", "const_tree", "exp", ",", "HOST_WIDE_INT", "align", ")", "{", "unsigned", "int", "factor", "=", "(", "TARGET_THUMB", "||", "!", "arm_tune_xscale", "?", "1", ":", "2", ")", ";", "if", "(", "TREE_CODE", "(", "exp", ")", "==", "STRING_CST", "&&", "!", "optimize_size", ")", "return", "MAX", "(", "align", ",", "BITS_PER_WORD", "*", "factor", ")", ";", "return", "align", ";", "}", ""], "natrual_language": ["Implement", "TARGET_CONSTANT_ALIGNMENT", ".", "Make", "strings", "word-aligned", "so", "strcpy", "from", "constants", "will", "be", "faster", "."], "TS_V_token": ["arm", "1", "2"], "File": "arm", "Func": "arm_constant_alignment", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44946, "Length": 52}
{"ground_truth": ["", "inline", "static", "int", "arm_constant_limit", "(", "bool", "size_p", ")", "{", "return", "size_p", "?", "1", ":", "current_tune", "->", "constant_limit", ";", "}", ""], "natrual_language": ["The", "maximum", "number", "of", "insns", "to", "be", "used", "when", "loading", "a", "constant", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_constant_limit", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44947, "Length": 19}
{"ground_truth": ["", "void", "arm_const_bounds", "(", "rtx", "operand", ",", "HOST_WIDE_INT", "low", ",", "HOST_WIDE_INT", "high", ")", "{", "bounds_check", "(", "operand", ",", "low", ",", "high", ",", "NULL_TREE", ",", "\"constant\"", ")", ";", "}", ""], "natrual_language": ["Bounds-check", "constants", "."], "TS_V_token": ["arm", "\"constant\""], "File": "arm", "Func": "arm_const_bounds", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44948, "Length": 27}
{"ground_truth": ["", "bool", "arm_const_double_by_immediates", "(", "rtx", "val", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "val", ")", ";", "rtx", "part", ";", "if", "(", "mode", "==", "VOIDmode", ")", "mode", "=", "DImode", ";", "part", "=", "gen_highpart_mode", "(", "SImode", ",", "mode", ",", "val", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "part", ")", ")", ";", "if", "(", "!", "const_ok_for_arm", "(", "INTVAL", "(", "part", ")", ")", ")", "return", "false", ";", "part", "=", "gen_lowpart", "(", "SImode", ",", "val", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "part", ")", ")", ";", "if", "(", "!", "const_ok_for_arm", "(", "INTVAL", "(", "part", ")", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "true", "if", "it", "is", "possible", "to", "inline", "both", "the", "high", "and", "low", "parts", "of", "a", "64-bit", "constant", "into", "32-bit", "data", "processing", "instructions", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_const_double_by_immediates", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44949, "Length": 96}
{"ground_truth": ["", "bool", "arm_const_double_by_parts", "(", "rtx", "val", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "val", ")", ";", "rtx", "part", ";", "if", "(", "optimize_size", "||", "arm_ld_sched", ")", "return", "true", ";", "if", "(", "mode", "==", "VOIDmode", ")", "mode", "=", "DImode", ";", "part", "=", "gen_highpart_mode", "(", "SImode", ",", "mode", ",", "val", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "part", ")", ")", ";", "if", "(", "const_ok_for_arm", "(", "INTVAL", "(", "part", ")", ")", "||", "const_ok_for_arm", "(", "~", "INTVAL", "(", "part", ")", ")", ")", "return", "true", ";", "part", "=", "gen_lowpart", "(", "SImode", ",", "val", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "part", ")", ")", ";", "if", "(", "const_ok_for_arm", "(", "INTVAL", "(", "part", ")", ")", "||", "const_ok_for_arm", "(", "~", "INTVAL", "(", "part", ")", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Return", "true", "if", "it", "is", "worthwhile", "to", "split", "a", "64-bit", "constant", "into", "two", "32-bit", "operations", ".", "This", "is", "the", "case", "if", "optimizing", "for", "size", ",", "or", "if", "we", "have", "load", "delay", "slots", ",", "or", "if", "one", "32-bit", "part", "can", "be", "done", "with", "a", "single", "data", "operation", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_const_double_by_parts", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44950, "Length": 121}
{"ground_truth": ["", "int", "arm_const_double_inline_cost", "(", "rtx", "val", ")", "{", "rtx", "lowpart", ",", "highpart", ";", "machine_mode", "mode", ";", "mode", "=", "GET_MODE", "(", "val", ")", ";", "if", "(", "mode", "==", "VOIDmode", ")", "mode", "=", "DImode", ";", "gcc_assert", "(", "GET_MODE_SIZE", "(", "mode", ")", "==", "8", ")", ";", "lowpart", "=", "gen_lowpart", "(", "SImode", ",", "val", ")", ";", "highpart", "=", "gen_highpart_mode", "(", "SImode", ",", "mode", ",", "val", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "lowpart", ")", ")", ";", "gcc_assert", "(", "CONST_INT_P", "(", "highpart", ")", ")", ";", "return", "(", "arm_gen_constant", "(", "SET", ",", "SImode", ",", "NULL_RTX", ",", "INTVAL", "(", "lowpart", ")", ",", "NULL_RTX", ",", "NULL_RTX", ",", "0", ",", "0", ")", "+", "arm_gen_constant", "(", "SET", ",", "SImode", ",", "NULL_RTX", ",", "INTVAL", "(", "highpart", ")", ",", "NULL_RTX", ",", "NULL_RTX", ",", "0", ",", "0", ")", ")", ";", "}", ""], "natrual_language": ["Return", "the", "cost", "of", "synthesizing", "a", "64-bit", "constant", "VAL", "inline", ".", "Returns", "the", "number", "of", "insns", "needed", ",", "or", "99", "if", "we", "do", "n't", "know", "how", "to", "do", "it", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0"], "File": "arm", "Func": "arm_const_double_inline_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44951, "Length": 126}
{"ground_truth": ["", "static", "bool", "arm_const_double_prefer_rsbs_rsc", "(", "rtx", "op", ")", "{", "if", "(", "TARGET_THUMB", "||", "!", "CONST_INT_P", "(", "op", ")", ")", "return", "false", ";", "HOST_WIDE_INT", "hi", ",", "lo", ";", "lo", "=", "UINTVAL", "(", "op", ")", "&", "0xffffffffULL", ";", "hi", "=", "UINTVAL", "(", "op", ")", ">>", "32", ";", "return", "const_ok_for_arm", "(", "lo", ")", "&&", "const_ok_for_arm", "(", "hi", ")", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "op", "is", "a", "constant", "where", "both", "the", "low", "and", "top", "words", "are", "suitable", "for", "RSB/RSC", "instructions", ".", "This", "is", "never", "true", "for", "Thumb", ",", "since", "we", "do", "not", "have", "RSC", "in", "that", "case", "."], "TS_V_token": ["arm", "0xffffffffULL", "32"], "File": "arm", "Func": "arm_const_double_prefer_rsbs_rsc", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44952, "Length": 56}
{"ground_truth": ["", "int", "arm_const_double_rtx", "(", "rtx", "x", ")", "{", "const", "REAL_VALUE_TYPE", "*", "r", ";", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "r", "=", "CONST_DOUBLE_REAL_VALUE", "(", "x", ")", ";", "if", "(", "REAL_VALUE_MINUS_ZERO", "(", "*", "r", ")", ")", "return", "0", ";", "if", "(", "real_equal", "(", "r", ",", "&", "value_fp0", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "a", "valid", "immediate", "FP", "constant", "."], "TS_V_token": ["arm", "0", "1", "0"], "File": "arm", "Func": "arm_const_double_rtx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44953, "Length": 56}
{"ground_truth": ["", "static", "inline", "int", "arm_const_inline_cost", "(", "enum", "rtx_code", "code", ",", "rtx", "val", ")", "{", "return", "arm_gen_constant", "(", "code", ",", "SImode", ",", "NULL_RTX", ",", "INTVAL", "(", "val", ")", ",", "NULL_RTX", ",", "NULL_RTX", ",", "1", ",", "0", ")", ";", "}", ""], "natrual_language": ["Cost", "of", "loading", "a", "SImode", "constant", "."], "TS_V_token": ["arm", "1", "0"], "File": "arm", "Func": "arm_const_inline_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44954, "Length": 37}
{"ground_truth": ["", "static", "bool", "arm_const_not_ok_for_debug_p", "(", "rtx", "p", ")", "{", "tree", "decl_op0", "=", "NULL", ";", "tree", "decl_op1", "=", "NULL", ";", "if", "(", "GET_CODE", "(", "p", ")", "==", "UNSPEC", ")", "return", "true", ";", "if", "(", "GET_CODE", "(", "p", ")", "==", "MINUS", ")", "{", "if", "(", "GET_CODE", "(", "XEXP", "(", "p", ",", "1", ")", ")", "==", "SYMBOL_REF", ")", "{", "decl_op1", "=", "SYMBOL_REF_DECL", "(", "XEXP", "(", "p", ",", "1", ")", ")", ";", "if", "(", "decl_op1", "&&", "GET_CODE", "(", "XEXP", "(", "p", ",", "0", ")", ")", "==", "SYMBOL_REF", "&&", "(", "decl_op0", "=", "SYMBOL_REF_DECL", "(", "XEXP", "(", "p", ",", "0", ")", ")", ")", ")", "{", "if", "(", "(", "VAR_P", "(", "decl_op1", ")", "||", "TREE_CODE", "(", "decl_op1", ")", "==", "CONST_DECL", ")", "&&", "(", "VAR_P", "(", "decl_op0", ")", "||", "TREE_CODE", "(", "decl_op0", ")", "==", "CONST_DECL", ")", ")", "return", "(", "get_variable_section", "(", "decl_op1", ",", "false", ")", "!=", "get_variable_section", "(", "decl_op0", ",", "false", ")", ")", ";", "if", "(", "TREE_CODE", "(", "decl_op1", ")", "==", "LABEL_DECL", "&&", "TREE_CODE", "(", "decl_op0", ")", "==", "LABEL_DECL", ")", "return", "(", "DECL_CONTEXT", "(", "decl_op1", ")", "!=", "DECL_CONTEXT", "(", "decl_op0", ")", ")", ";", "}", "return", "true", ";", "}", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "is", "a", "temporary", "fix", "for", "PR60655", ".", "Ideally", "we", "need", "to", "handle", "most", "of", "these", "cases", "in", "the", "generic", "part", "but", "currently", "we", "reject", "minus", "(", "..", ")", "(", "sym_ref", ")", ".", "We", "try", "to", "ameliorate", "the", "case", "with", "minus", "(", "sym_ref1", ")", "(", "sym_ref2", ")", "where", "they", "are", "in", "the", "same", "section", "."], "TS_V_token": ["arm", "1", "1", "0", "0"], "File": "arm", "Func": "arm_const_not_ok_for_debug_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44955, "Length": 184}
{"ground_truth": ["", "static", "bool", "arm_cookie_has_size", "(", "void", ")", "{", "return", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["The", "EABI", "says", "that", "array", "cookies", "should", "also", "contain", "the", "element", "size", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_cookie_has_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44956, "Length": 11}
{"ground_truth": ["", "bool", "arm_coproc_builtin_available", "(", "enum", "unspecv", "builtin", ")", "{", "if", "(", "TARGET_THUMB1", ")", "return", "false", ";", "switch", "(", "builtin", ")", "{", "case", "VUNSPEC_CDP", ":", "case", "VUNSPEC_LDC", ":", "case", "VUNSPEC_LDCL", ":", "case", "VUNSPEC_STC", ":", "case", "VUNSPEC_STCL", ":", "case", "VUNSPEC_MCR", ":", "case", "VUNSPEC_MRC", ":", "if", "(", "arm_arch4", ")", "return", "true", ";", "break", ";", "case", "VUNSPEC_CDP2", ":", "case", "VUNSPEC_LDC2", ":", "case", "VUNSPEC_LDC2L", ":", "case", "VUNSPEC_STC2", ":", "case", "VUNSPEC_STC2L", ":", "case", "VUNSPEC_MCR2", ":", "case", "VUNSPEC_MRC2", ":", "if", "(", "arm_arch5t", ")", "return", "true", ";", "break", ";", "case", "VUNSPEC_MCRR", ":", "case", "VUNSPEC_MRRC", ":", "if", "(", "arm_arch6", "||", "arm_arch5te", ")", "return", "true", ";", "break", ";", "case", "VUNSPEC_MCRR2", ":", "case", "VUNSPEC_MRRC2", ":", "if", "(", "arm_arch6", ")", "return", "true", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "function", "checks", "for", "the", "availability", "of", "the", "coprocessor", "builtin", "passed", "in", "BUILTIN", "for", "the", "current", "target", ".", "Returns", "true", "if", "it", "is", "available", "and", "false", "otherwise", ".", "If", "a", "BUILTIN", "is", "passed", "for", "which", "this", "function", "has", "not", "been", "implemented", "it", "will", "cause", "an", "exception", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_coproc_builtin_available", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44957, "Length": 123}
{"ground_truth": ["", "bool", "arm_coproc_ldc_stc_legitimate_address", "(", "rtx", "op", ")", "{", "HOST_WIDE_INT", "range", ";", "if", "(", "!", "MEM_P", "(", "op", ")", ")", "return", "false", ";", "op", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "REG_P", "(", "op", ")", ")", "return", "true", ";", "switch", "GET_CODE", "(", "op", ")", "{", "case", "PLUS", ":", "{", "if", "(", "!", "REG_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", ")", "return", "false", ";", "op", "=", "XEXP", "(", "op", ",", "1", ")", ";", "if", "(", "!", "CONST_INT_P", "(", "op", ")", ")", "return", "false", ";", "range", "=", "INTVAL", "(", "op", ")", ";", "if", "(", "!", "IN_RANGE", "(", "range", ",", "-", "1020", ",", "1020", ")", ")", "return", "false", ";", "return", "(", "range", "%", "4", ")", "==", "0", ";", "}", "case", "PRE_INC", ":", "case", "POST_INC", ":", "case", "PRE_DEC", ":", "case", "POST_DEC", ":", "return", "REG_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "function", "returns", "true", "if", "OP", "is", "a", "valid", "memory", "operand", "for", "the", "ldc", "and", "stc", "coprocessor", "instructions", "and", "false", "otherwise", "."], "TS_V_token": ["arm", "0", "0", "1", "1020", "1020", "4", "0", "0"], "File": "arm", "Func": "arm_coproc_ldc_stc_legitimate_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44958, "Length": 153}
{"ground_truth": ["", "int", "arm_coproc_mem_operand", "(", "rtx", "op", ",", "bool", "wb", ")", "{", "return", "arm_coproc_mem_operand_wb", "(", "op", ",", "wb", "?", "2", ":", "1", ")", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "valid", "coprocessor", "memory", "address", "pattern", ".", "WB", "if", "true", "if", "writeback", "address", "modes", "are", "allowed", "."], "TS_V_token": ["arm", "2", "1"], "File": "arm", "Func": "arm_coproc_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44959, "Length": 23}
{"ground_truth": ["", "int", "arm_coproc_mem_operand_no_writeback", "(", "rtx", "op", ")", "{", "return", "arm_coproc_mem_operand_wb", "(", "op", ",", "0", ")", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "valid", "coprocessor", "memory", "address", "pattern", "in", "a", "context", "in", "which", "no", "writeback", "address", "modes", "are", "allowed", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_coproc_mem_operand_no_writeback", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44960, "Length": 16}
{"ground_truth": ["", "int", "arm_coproc_mem_operand_wb", "(", "rtx", "op", ",", "int", "wb_level", ")", "{", "gcc_assert", "(", "wb_level", "==", "0", "||", "wb_level", "==", "1", "||", "wb_level", "==", "2", ")", ";", "rtx", "ind", ";", "if", "(", "!", "(", "reload_in_progress", "||", "reload_completed", "||", "lra_in_progress", ")", "&&", "(", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "arg_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_incoming_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_outgoing_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_dynamic_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_vars_rtx", ",", "op", ")", ")", ")", "return", "FALSE", ";", "if", "(", "!", "MEM_P", "(", "op", ")", ")", "return", "FALSE", ";", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "reload_completed", "&&", "(", "LABEL_REF_P", "(", "ind", ")", "||", "(", "GET_CODE", "(", "ind", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "TRUE", ";", "if", "(", "REG_P", "(", "ind", ")", ")", "return", "arm_address_register_rtx_p", "(", "ind", ",", "0", ")", ";", "if", "(", "wb_level", ">", "0", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "POST_INC", "||", "GET_CODE", "(", "ind", ")", "==", "PRE_DEC", "||", "(", "wb_level", ">", "1", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "PRE_INC", "||", "GET_CODE", "(", "ind", ")", "==", "POST_DEC", ")", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ";", "if", "(", "wb_level", ">", "1", "&&", "(", "GET_CODE", "(", "ind", ")", "==", "POST_MODIFY", "||", "GET_CODE", "(", "ind", ")", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "ind", ",", "0", ")", ")", ")", "ind", "=", "XEXP", "(", "ind", ",", "1", ")", ";", "int", "factor", "=", "MIN", "(", "GET_MODE_SIZE", "(", "GET_MODE", "(", "op", ")", ")", ",", "4", ")", ";", "if", "(", "GET_CODE", "(", "ind", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "&&", "REG_MODE_OK_FOR_BASE_P", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "VOIDmode", ")", "&&", "CONST_INT_P", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&&", "IN_RANGE", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", ",", "-", "255", "*", "factor", ",", "255", "*", "factor", ")", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&", "(", "factor", "-", "1", ")", ")", "==", "0", ")", "return", "TRUE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "valid", "coprocessor", "memory", "address", "pattern", ".", "WB", "level", "is", "2", "if", "full", "writeback", "address", "modes", "are", "allowed", ",", "1", "if", "limited", "writeback", "address", "modes", "(", "POST_INC", "and", "PRE_DEC", ")", "are", "allowed", "and", "0", "if", "no", "writeback", "at", "all", "is", "supported", "."], "TS_V_token": ["arm", "0", "1", "2", "0", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "1", "0", "0", "1", "4", "0", "0", "1", "1", "255", "255", "1", "1", "0"], "File": "arm", "Func": "arm_coproc_mem_operand_wb", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44961, "Length": 428}
{"ground_truth": ["", "static", "int", "arm_cortex_m_branch_cost", "(", "bool", "speed_p", ",", "bool", "predictable_p", ")", "{", "return", "(", "TARGET_32BIT", "&&", "speed_p", ")", "?", "1", ":", "arm_default_branch_cost", "(", "speed_p", ",", "predictable_p", ")", ";", "}", ""], "natrual_language": ["Thumb-2", "branches", "are", "relatively", "cheap", "on", "Cortex-M", "processors", "(", "``", "1", "+", "P", "cycles", "''", "on", "Cortex-M4", ",", "where", "P", "varies", "from", "1", "to", "3", "according", "to", "some", "criteria", ")", ",", "since", "sequences", "of", "non-executed", "instructions", "in", "IT", "blocks", "probably", "take", "the", "same", "amount", "of", "time", "as", "executed", "instructions", "(", "and", "the", "IT", "instruction", "itself", "takes", "space", "in", "icache", ")", ".", "This", "function", "was", "experimentally", "determined", "to", "give", "good", "results", "on", "a", "popular", "embedded", "benchmark", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_cortex_m_branch_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44962, "Length": 28}
{"ground_truth": ["", "int", "arm_count_ldrdstrd_insns", "(", "rtx", "*", "operands", ",", "bool", "load", ")", "{", "int", "count", ";", "rtx", "ops", "[", "2", "]", ";", "int", "regnum", ",", "memnum", ";", "if", "(", "load", ")", "regnum", "=", "0", ",", "memnum", "=", "1", ";", "else", "regnum", "=", "1", ",", "memnum", "=", "0", ";", "ops", "[", "regnum", "]", "=", "gen_rtx_REG", "(", "DImode", ",", "REGNO", "(", "operands", "[", "0", "]", ")", ")", ";", "ops", "[", "memnum", "]", "=", "adjust_address", "(", "operands", "[", "2", "]", ",", "DImode", ",", "0", ")", ";", "output_move_double", "(", "ops", ",", "false", ",", "&", "count", ")", ";", "return", "count", ";", "}", ""], "natrual_language": ["Same", "as", "above", ",", "but", "operands", "are", "a", "register/memory", "pair", "in", "SImode", ".", "Assumes", "operands", "has", "the", "base", "register", "in", "position", "0", "and", "memory", "in", "position", "2", "(", "which", "is", "the", "order", "provided", "by", "the", "arm_", "{", "ldrd", ",", "strd", "}", "patterns", ")", "."], "TS_V_token": ["arm", "2", "0", "1", "1", "0", "0", "2", "0"], "File": "arm", "Func": "arm_count_ldrdstrd_insns", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44963, "Length": 95}
{"ground_truth": ["", "int", "arm_count_output_move_double_insns", "(", "rtx", "*", "operands", ")", "{", "int", "count", ";", "rtx", "ops", "[", "2", "]", ";", "ops", "[", "0", "]", "=", "operands", "[", "0", "]", ";", "ops", "[", "1", "]", "=", "operands", "[", "1", "]", ";", "output_move_double", "(", "ops", ",", "false", ",", "&", "count", ")", ";", "return", "count", ";", "}", ""], "natrual_language": ["Compute", "the", "number", "of", "instructions", "emitted", "by", "output_move_double", "."], "TS_V_token": ["arm", "2", "0", "0", "1", "1"], "File": "arm", "Func": "arm_count_output_move_double_insns", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44964, "Length": 51}
{"ground_truth": ["", "static", "int", "arm_cpymemqi_unaligned", "(", "rtx", "*", "operands", ")", "{", "HOST_WIDE_INT", "length", "=", "INTVAL", "(", "operands", "[", "2", "]", ")", ";", "if", "(", "optimize_size", ")", "{", "bool", "src_aligned", "=", "MEM_ALIGN", "(", "operands", "[", "1", "]", ")", ">=", "BITS_PER_WORD", ";", "bool", "dst_aligned", "=", "MEM_ALIGN", "(", "operands", "[", "0", "]", ")", ">=", "BITS_PER_WORD", ";", "unsigned", "int", "interleave_factor", "=", "(", "src_aligned", "||", "dst_aligned", ")", "?", "2", ":", "1", ";", "HOST_WIDE_INT", "bytes_per_iter", "=", "(", "src_aligned", "||", "dst_aligned", ")", "?", "8", ":", "4", ";", "if", "(", "length", ">", "12", ")", "arm_block_move_unaligned_loop", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "interleave_factor", ",", "bytes_per_iter", ")", ";", "else", "arm_block_move_unaligned_straight", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "interleave_factor", ")", ";", "}", "else", "{", "if", "(", "length", ">", "32", ")", "arm_block_move_unaligned_loop", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "4", ",", "16", ")", ";", "else", "arm_block_move_unaligned_straight", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "length", ",", "4", ")", ";", "}", "return", "1", ";", "}", ""], "natrual_language": ["Emit", "a", "block", "move", "when", "either", "the", "source", "or", "destination", "is", "unaligned", "(", "not", "aligned", "to", "a", "four-byte", "boundary", ")", ".", "This", "may", "need", "further", "tuning", "depending", "on", "core", "type", ",", "optimize_size", "setting", ",", "etc", "."], "TS_V_token": ["arm", "2", "1", "0", "2", "1", "8", "4", "12", "0", "1", "0", "1", "32", "0", "1", "4", "16", "0", "1", "4", "1"], "File": "arm", "Func": "arm_cpymemqi_unaligned", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44965, "Length": 172}
{"ground_truth": ["", "unsigned", "long", "arm_current_func_type", "(", "void", ")", "{", "if", "(", "ARM_FUNC_TYPE", "(", "cfun", "->", "machine", "->", "func_type", ")", "==", "ARM_FT_UNKNOWN", ")", "cfun", "->", "machine", "->", "func_type", "=", "arm_compute_func_type", "(", ")", ";", "return", "cfun", "->", "machine", "->", "func_type", ";", "}", ""], "natrual_language": ["Returns", "the", "type", "of", "the", "current", "function", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_current_func_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44966, "Length": 38}
{"ground_truth": ["", "static", "bool", "arm_cxx_cdtor_returns_this", "(", "void", ")", "{", "return", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["The", "EABI", "says", "constructors", "and", "destructors", "should", "return", "a", "pointer", "to", "the", "object", "constructed/destroyed", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_cxx_cdtor_returns_this", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44967, "Length": 11}
{"ground_truth": ["", "static", "bool", "arm_cxx_guard_mask_bit", "(", "void", ")", "{", "return", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["The", "EABI", "says", "test", "the", "least", "significant", "bit", "of", "a", "guard", "variable", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_cxx_guard_mask_bit", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44968, "Length": 11}
{"ground_truth": ["", "static", "tree", "arm_cxx_guard_type", "(", "void", ")", "{", "return", "TARGET_AAPCS_BASED", "?", "integer_type_node", ":", "long_long_integer_type_node", ";", "}", ""], "natrual_language": ["The", "generic", "C++", "ABI", "says", "64-bit", "(", "long", "long", ")", ".", "The", "EABI", "says", "32-bit", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_cxx_guard_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44969, "Length": 15}
{"ground_truth": ["", "static", "bool", "arm_cxx_key_method_may_be_inline", "(", "void", ")", "{", "return", "!", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["The", "EABI", "says", "that", "an", "inline", "function", "may", "never", "be", "the", "key", "method", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_cxx_key_method_may_be_inline", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44970, "Length": 12}
{"ground_truth": ["", "static", "bool", "arm_cxx_use_aeabi_atexit", "(", "void", ")", "{", "return", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["The", "EABI", "says", "__aeabi_atexit", "should", "be", "used", "to", "register", "static", "destructors", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_cxx_use_aeabi_atexit", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44971, "Length": 11}
{"ground_truth": ["", "unsigned", "int", "arm_dbx_register_number", "(", "unsigned", "int", "regno", ")", "{", "if", "(", "regno", "<", "16", ")", "return", "regno", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ")", "return", "64", "+", "regno", "-", "FIRST_VFP_REGNUM", ";", "else", "return", "256", "+", "(", "regno", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ";", "}", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "104", "+", "regno", "-", "FIRST_IWMMXT_GR_REGNUM", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "112", "+", "regno", "-", "FIRST_IWMMXT_REGNUM", ";", "return", "DWARF_FRAME_REGISTERS", ";", "}", ""], "natrual_language": ["Map", "internal", "gcc", "register", "numbers", "to", "DWARF2", "register", "numbers", "."], "TS_V_token": ["arm", "16", "64", "256", "2", "104", "112"], "File": "arm", "Func": "arm_dbx_register_number", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44972, "Length": 85}
{"ground_truth": ["", "int", "arm_debugger_arg_offset", "(", "int", "value", ",", "rtx", "addr", ")", "{", "rtx_insn", "*", "insn", ";", "if", "(", "value", "!=", "0", ")", "return", "0", ";", "if", "(", "!", "REG_P", "(", "addr", ")", ")", "return", "0", ";", "if", "(", "REGNO", "(", "addr", ")", "==", "(", "unsigned", ")", "HARD_FRAME_POINTER_REGNUM", ")", "return", "0", ";", "if", "(", "(", "TARGET_THUMB", "||", "!", "frame_pointer_needed", ")", "&&", "REGNO", "(", "addr", ")", "==", "SP_REGNUM", ")", "return", "0", ";", "for", "(", "insn", "=", "get_insns", "(", ")", ";", "insn", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "{", "if", "(", "NONJUMP_INSN_P", "(", "insn", ")", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "SET", "&&", "REGNO", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "0", ")", ")", "==", "REGNO", "(", "addr", ")", "&&", "GET_CODE", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "0", ")", ")", "&&", "REGNO", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "0", ")", ")", "==", "(", "unsigned", ")", "HARD_FRAME_POINTER_REGNUM", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "1", ")", ")", ")", "{", "value", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "PATTERN", "(", "insn", ")", ",", "1", ")", ",", "1", ")", ")", ";", "break", ";", "}", "}", "if", "(", "value", "==", "0", ")", "{", "debug_rtx", "(", "addr", ")", ";", "warning", "(", "0", ",", "\"unable to compute real location of stacked parameter\"", ")", ";", "value", "=", "8", ";", "}", "return", "value", ";", "}", ""], "natrual_language": ["Handle", "a", "special", "case", "when", "computing", "the", "offset", "of", "an", "argument", "from", "the", "frame", "pointer", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0", "1", "1", "0", "1", "0", "1", "1", "1", "1", "0", "0", "\"unable to compute real location of stacked parameter\"", "8"], "File": "arm", "Func": "arm_debugger_arg_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44973, "Length": 248}
{"ground_truth": ["", "void", "arm_declare_function_name", "(", "FILE", "*", "stream", ",", "const", "char", "*", "name", ",", "tree", "decl", ")", "{", "tree", "target_parts", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "decl", ")", ";", "struct", "cl_target_option", "*", "targ_options", ";", "if", "(", "target_parts", ")", "targ_options", "=", "TREE_TARGET_OPTION", "(", "target_parts", ")", ";", "else", "targ_options", "=", "TREE_TARGET_OPTION", "(", "target_option_current_node", ")", ";", "gcc_assert", "(", "targ_options", ")", ";", "arm_print_asm_arch_directives", "(", "stream", ",", "targ_options", ")", ";", "fprintf", "(", "stream", ",", "\"\\t.syntax unified\\n\"", ")", ";", "if", "(", "TARGET_THUMB", ")", "{", "if", "(", "is_called_in_ARM_mode", "(", "decl", ")", "||", "(", "TARGET_THUMB1", "&&", "!", "TARGET_THUMB1_ONLY", "&&", "cfun", "->", "is_thunk", ")", ")", "fprintf", "(", "stream", ",", "\"\\t.code 32\\n\"", ")", ";", "else", "if", "(", "TARGET_THUMB1", ")", "fprintf", "(", "stream", ",", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", ")", ";", "else", "fprintf", "(", "stream", ",", "\"\\t.thumb\\n\\t.thumb_func\\n\"", ")", ";", "}", "else", "fprintf", "(", "stream", ",", "\"\\t.arm\\n\"", ")", ";", "if", "(", "TARGET_POKE_FUNCTION_NAME", ")", "arm_poke_function_name", "(", "stream", ",", "(", "const", "char", "*", ")", "name", ")", ";", "}", ""], "natrual_language": ["Implement", "ASM_DECLARE_FUNCTION_NAME", ".", "Output", "the", "ISA", "features", "used", "by", "the", "function", "fndecl", "."], "TS_V_token": ["arm", "\"\\t.syntax unified\\n\"", "\"\\t.code 32\\n\"", "\"\\t.code\\t16\\n\\t.thumb_func\\n\"", "\"\\t.thumb\\n\\t.thumb_func\\n\"", "\"\\t.arm\\n\""], "File": "arm", "Func": "arm_declare_function_name", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44974, "Length": 143}
{"ground_truth": ["", "void", "arm_decompose_di_binop", "(", "rtx", "op1", ",", "rtx", "op2", ",", "rtx", "*", "lo_op1", ",", "rtx", "*", "hi_op1", ",", "rtx", "*", "lo_op2", ",", "rtx", "*", "hi_op2", ")", "{", "*", "lo_op1", "=", "gen_lowpart", "(", "SImode", ",", "op1", ")", ";", "*", "hi_op1", "=", "gen_highpart", "(", "SImode", ",", "op1", ")", ";", "*", "lo_op2", "=", "simplify_gen_subreg", "(", "SImode", ",", "op2", ",", "DImode", ",", "subreg_lowpart_offset", "(", "SImode", ",", "DImode", ")", ")", ";", "*", "hi_op2", "=", "simplify_gen_subreg", "(", "SImode", ",", "op2", ",", "DImode", ",", "subreg_highpart_offset", "(", "SImode", ",", "DImode", ")", ")", ";", "}", ""], "natrual_language": ["Decompose", "operands", "for", "a", "64-bit", "binary", "operation", "in", "OP1", "and", "OP2", "into", "its", "component", "32-bit", "subregs", ".", "OP2", "may", "be", "an", "immediate", "constant", "and", "we", "want", "to", "simplify", "it", "in", "that", "case", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_decompose_di_binop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44975, "Length": 85}
{"ground_truth": ["", "static", "bool", "arm_default_short_enums", "(", "void", ")", "{", "return", "ARM_DEFAULT_SHORT_ENUMS", ";", "}", ""], "natrual_language": ["AAPCS", "based", "ABIs", "use", "short", "enums", "by", "default", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_default_short_enums", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44976, "Length": 11}
{"ground_truth": ["", "static", "rtx", "arm_dwarf_register_span", "(", "rtx", "rtl", ")", "{", "machine_mode", "mode", ";", "unsigned", "regno", ";", "rtx", "parts", "[", "16", "]", ";", "int", "nregs", ";", "int", "i", ";", "regno", "=", "REGNO", "(", "rtl", ")", ";", "if", "(", "!", "IS_VFP_REGNUM", "(", "regno", ")", ")", "return", "NULL_RTX", ";", "mode", "=", "GET_MODE", "(", "rtl", ")", ";", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<", "8", ")", "return", "NULL_RTX", ";", "if", "(", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ")", "{", "nregs", "=", "GET_MODE_SIZE", "(", "mode", ")", "/", "4", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nregs", ";", "i", "+=", "2", ")", "if", "(", "TARGET_BIG_END", ")", "{", "parts", "[", "i", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", "+", "i", "+", "1", ")", ";", "parts", "[", "i", "+", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", "+", "i", ")", ";", "}", "else", "{", "parts", "[", "i", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", "+", "i", ")", ";", "parts", "[", "i", "+", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", "+", "i", "+", "1", ")", ";", "}", "}", "else", "{", "nregs", "=", "GET_MODE_SIZE", "(", "mode", ")", "/", "8", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nregs", ";", "i", "++", ")", "parts", "[", "i", "]", "=", "gen_rtx_REG", "(", "DImode", ",", "regno", "+", "i", ")", ";", "}", "return", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec_v", "(", "nregs", ",", "parts", ")", ")", ";", "}", ""], "natrual_language": ["Dwarf", "models", "VFPv3", "registers", "as", "32", "64-bit", "registers", ".", "GCC", "models", "tham", "as", "64", "32-bit", "registers", ",", "so", "we", "need", "to", "describe", "this", "to", "the", "DWARF", "generation", "code", ".", "Other", "registers", "can", "use", "the", "default", "."], "TS_V_token": ["arm", "16", "8", "4", "0", "2", "1", "1", "1", "1", "8", "0"], "File": "arm", "Func": "arm_dwarf_register_span", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44977, "Length": 221}
{"ground_truth": ["", "static", "void", "arm_elf_asm_constructor", "(", "rtx", "symbol", ",", "int", "priority", ")", "{", "arm_elf_asm_cdtor", "(", "symbol", ",", "priority", ",", "true", ")", ";", "}", ""], "natrual_language": ["Add", "a", "function", "to", "the", "list", "of", "static", "constructors", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_elf_asm_constructor", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44978, "Length": 21}
{"ground_truth": ["", "static", "void", "arm_elf_asm_destructor", "(", "rtx", "symbol", ",", "int", "priority", ")", "{", "arm_elf_asm_cdtor", "(", "symbol", ",", "priority", ",", "false", ")", ";", "}", ""], "natrual_language": ["Add", "a", "function", "to", "the", "list", "of", "static", "destructors", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_elf_asm_destructor", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44979, "Length": 21}
{"ground_truth": ["", "static", "unsigned", "int", "arm_elf_section_type_flags", "(", "tree", "decl", ",", "const", "char", "*", "name", ",", "int", "reloc", ")", "{", "unsigned", "int", "flags", "=", "default_section_type_flags", "(", "decl", ",", "name", ",", "reloc", ")", ";", "if", "(", "decl", "&&", "TREE_CODE", "(", "decl", ")", "==", "FUNCTION_DECL", "&&", "target_pure_code", ")", "flags", "|=", "SECTION_ARM_PURECODE", ";", "return", "flags", ";", "}", ""], "natrual_language": ["Implements", "the", "TARGET_SECTION_FLAGS", "hook", ".", "If", "DECL", "is", "a", "function", "declaration", "and", "pure-code", "is", "passed", "as", "an", "option", "then", "add", "the", "SFH_ARM_PURECODE", "attribute", "to", "the", "section", "flags", ".", "NAME", "is", "the", "section", "'s", "name", "and", "RELOC", "indicates", "whether", "the", "declarations", "initializer", "may", "contain", "runtime", "relocations", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_elf_section_type_flags", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44980, "Length": 51}
{"ground_truth": ["", "int", "arm_eliminable_register", "(", "rtx", "x", ")", "{", "return", "REG_P", "(", "x", ")", "&&", "(", "REGNO", "(", "x", ")", "==", "FRAME_POINTER_REGNUM", "||", "REGNO", "(", "x", ")", "==", "ARG_POINTER_REGNUM", "||", "(", "REGNO", "(", "x", ")", ">=", "FIRST_VIRTUAL_REGISTER", "&&", "REGNO", "(", "x", ")", "<=", "LAST_VIRTUAL_REGISTER", ")", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "X", "is", "a", "register", "that", "will", "be", "eliminated", "later", "on", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_eliminable_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44981, "Length": 46}
{"ground_truth": ["", "void", "arm_emit_call_insn", "(", "rtx", "pat", ",", "rtx", "addr", ",", "bool", "sibcall", ")", "{", "rtx", "insn", ";", "insn", "=", "emit_call_insn", "(", "pat", ")", ";", "if", "(", "TARGET_VXWORKS_RTP", "&&", "flag_pic", "&&", "!", "sibcall", "&&", "SYMBOL_REF_P", "(", "addr", ")", "&&", "(", "SYMBOL_REF_DECL", "(", "addr", ")", "?", "!", "targetm", ".", "binds_local_p", "(", "SYMBOL_REF_DECL", "(", "addr", ")", ")", ":", "!", "SYMBOL_REF_LOCAL_P", "(", "addr", ")", ")", ")", "{", "require_pic_register", "(", "NULL_RTX", ",", "false", ")", ";", "use_reg", "(", "&", "CALL_INSN_FUNCTION_USAGE", "(", "insn", ")", ",", "cfun", "->", "machine", "->", "pic_reg", ")", ";", "}", "if", "(", "TARGET_FDPIC", ")", "{", "rtx", "fdpic_reg", "=", "gen_rtx_REG", "(", "Pmode", ",", "FDPIC_REGNUM", ")", ";", "use_reg", "(", "&", "CALL_INSN_FUNCTION_USAGE", "(", "insn", ")", ",", "fdpic_reg", ")", ";", "}", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "rtx", "*", "fusage", "=", "&", "CALL_INSN_FUNCTION_USAGE", "(", "insn", ")", ";", "clobber_reg", "(", "fusage", ",", "gen_rtx_REG", "(", "word_mode", ",", "IP_REGNUM", ")", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "a", "call", "instruction", "with", "pattern", "PAT", ".", "ADDR", "is", "the", "address", "of", "the", "call", "target", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_emit_call_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44982, "Length": 141}
{"ground_truth": ["", "void", "arm_emit_eabi_attribute", "(", "const", "char", "*", "name", ",", "int", "num", ",", "int", "val", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t.eabi_attribute %d, %d\"", ",", "num", ",", "val", ")", ";", "if", "(", "flag_verbose_asm", "||", "flag_debug_asm", ")", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t%s %s\"", ",", "ASM_COMMENT_START", ",", "name", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\n\"", ")", ";", "}", ""], "natrual_language": ["This", "function", "is", "used", "to", "emit", "an", "EABI", "tag", "and", "its", "associated", "value", ".", "We", "emit", "the", "numerical", "value", "of", "the", "tag", "in", "case", "the", "assembler", "does", "not", "support", "textual", "tags", ".", "(", "Eg", "gas", "prior", "to", "2.20", ")", ".", "If", "requested", "we", "include", "the", "tag", "name", "in", "a", "comment", "so", "that", "anyone", "reading", "the", "assembler", "output", "will", "know", "which", "tag", "is", "being", "set", ".", "This", "function", "is", "not", "static", "because", "arm-c.cc", "needs", "it", "too", "."], "TS_V_token": ["arm", "\"\\t.eabi_attribute %d, %d\"", "\"\\t%s %s\"", "\"\\n\""], "File": "arm", "Func": "arm_emit_eabi_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44983, "Length": 51}
{"ground_truth": ["", "void", "arm_emit_fp16_const", "(", "rtx", "c", ")", "{", "long", "bits", ";", "bits", "=", "real_to_target", "(", "NULL", ",", "CONST_DOUBLE_REAL_VALUE", "(", "c", ")", ",", "HFmode", ")", ";", "if", "(", "WORDS_BIG_ENDIAN", ")", "assemble_zeros", "(", "2", ")", ";", "assemble_integer", "(", "GEN_INT", "(", "bits", ")", ",", "2", ",", "BITS_PER_WORD", ",", "1", ")", ";", "if", "(", "!", "WORDS_BIG_ENDIAN", ")", "assemble_zeros", "(", "2", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "fp16", "constant", "appropriately", "padded", "to", "occupy", "a", "4-byte", "word", ".", "HFmode", "constant", "pool", "entries", "are", "actually", "loaded", "with", "ldr", "."], "TS_V_token": ["arm", "2", "2", "1", "2"], "File": "arm", "Func": "arm_emit_fp16_const", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44984, "Length": 58}
{"ground_truth": ["", "static", "void", "arm_emit_ldrd_pop", "(", "unsigned", "long", "saved_regs_mask", ")", "{", "int", "j", "=", "0", ";", "int", "offset", "=", "0", ";", "rtx", "par", "=", "NULL_RTX", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "mem", ";", "gcc_assert", "(", "!", "(", "(", "saved_regs_mask", "&", "(", "1", "<<", "SP_REGNUM", ")", ")", ")", ")", ";", "j", "=", "0", ";", "while", "(", "j", "<=", "LAST_ARM_REGNUM", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "j", ")", ")", "{", "if", "(", "(", "j", "%", "2", ")", "==", "0", "&&", "(", "saved_regs_mask", "&", "(", "1", "<<", "(", "j", "+", "1", ")", ")", ")", "&&", "(", "j", "+", "1", ")", "!=", "PC_REGNUM", ")", "{", "if", "(", "offset", ">", "0", ")", "mem", "=", "gen_frame_mem", "(", "DImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "offset", ")", ")", ";", "else", "mem", "=", "gen_frame_mem", "(", "DImode", ",", "stack_pointer_rtx", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "gen_rtx_REG", "(", "DImode", ",", "j", ")", ",", "mem", ")", ";", "tmp", "=", "emit_insn", "(", "tmp", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "j", ")", ",", "NULL_RTX", ")", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "j", "+", "1", ")", ",", "dwarf", ")", ";", "REG_NOTES", "(", "tmp", ")", "=", "dwarf", ";", "offset", "+=", "8", ";", "j", "+=", "2", ";", "}", "else", "if", "(", "j", "!=", "PC_REGNUM", ")", "{", "if", "(", "offset", ">", "0", ")", "mem", "=", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "offset", ")", ")", ";", "else", "mem", "=", "gen_frame_mem", "(", "SImode", ",", "stack_pointer_rtx", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "gen_rtx_REG", "(", "SImode", ",", "j", ")", ",", "mem", ")", ";", "tmp", "=", "emit_insn", "(", "tmp", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "REG_NOTES", "(", "tmp", ")", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "j", ")", ",", "NULL_RTX", ")", ";", "offset", "+=", "4", ";", "j", "+=", "1", ";", "}", "else", "j", "++", ";", "}", "else", "j", "++", ";", "if", "(", "offset", ">", "0", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "offset", ")", ")", ";", "tmp", "=", "emit_insn", "(", "tmp", ")", ";", "arm_add_cfa_adjust_cfa_note", "(", "tmp", ",", "offset", ",", "stack_pointer_rtx", ",", "stack_pointer_rtx", ")", ";", "offset", "=", "0", ";", "}", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", "{", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "2", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "tmp", "=", "gen_rtx_SET", "(", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ",", "gen_frame_mem", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "SImode", ",", "stack_pointer_rtx", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", "=", "tmp", ";", "par", "=", "emit_jump_insn", "(", "par", ")", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ",", "NULL_RTX", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "UNITS_PER_WORD", ",", "stack_pointer_rtx", ",", "stack_pointer_rtx", ")", ";", "}", "}", ""], "natrual_language": ["LDRD", "in", "ARM", "mode", "needs", "consecutive", "registers", "as", "operands", ".", "This", "function", "emits", "LDRD", "whenever", "possible", ",", "otherwise", "it", "emits", "single-word", "loads", ".", "It", "uses", "offset", "addressing", "and", "then", "generates", "one", "separate", "stack", "udpate", ".", "This", "provides", "more", "scheduling", "freedom", ",", "compared", "to", "writeback", "on", "every", "load", ".", "However", ",", "if", "the", "function", "returns", "using", "load", "into", "PC", "directly", "(", "i.e.", ",", "if", "PC", "is", "in", "SAVED_REGS_MASK", ")", ",", "the", "stack", "needs", "to", "be", "updated", "before", "the", "last", "load", ".", "TODO", ":", "Add", "a", "peephole", "optimization", "to", "recognize", "the", "new", "epilogue", "sequence", "as", "an", "LDM", "instruction", "whenever", "possible", ".", "TODO", ":", "Add", "peephole", "optimization", "to", "merge", "the", "load", "at", "stack-offset", "zero", "with", "the", "stack", "update", "instruction", "using", "load", "with", "writeback", "in", "post-index", "addressing", "mode", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "2", "0", "1", "1", "1", "0", "1", "1", "8", "2", "0", "1", "4", "1", "0", "0", "1", "2", "0", "0", "1", "0", "1"], "File": "arm", "Func": "arm_emit_ldrd_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44985, "Length": 484}
{"ground_truth": ["", "static", "void", "arm_emit_load_exclusive", "(", "machine_mode", "mode", ",", "rtx", "rval", ",", "rtx", "mem", ",", "bool", "acq", ")", "{", "rtx", "(", "*", "gen", ")", "(", "rtx", ",", "rtx", ")", ";", "if", "(", "acq", ")", "{", "switch", "(", "mode", ")", "{", "case", "E_QImode", ":", "gen", "=", "gen_arm_load_acquire_exclusiveqi", ";", "break", ";", "case", "E_HImode", ":", "gen", "=", "gen_arm_load_acquire_exclusivehi", ";", "break", ";", "case", "E_SImode", ":", "gen", "=", "gen_arm_load_acquire_exclusivesi", ";", "break", ";", "case", "E_DImode", ":", "gen", "=", "gen_arm_load_acquire_exclusivedi", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "else", "{", "switch", "(", "mode", ")", "{", "case", "E_QImode", ":", "gen", "=", "gen_arm_load_exclusiveqi", ";", "break", ";", "case", "E_HImode", ":", "gen", "=", "gen_arm_load_exclusivehi", ";", "break", ";", "case", "E_SImode", ":", "gen", "=", "gen_arm_load_exclusivesi", ";", "break", ";", "case", "E_DImode", ":", "gen", "=", "gen_arm_load_exclusivedi", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "emit_insn", "(", "gen", "(", "rval", ",", "mem", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "the", "load-exclusive", "and", "store-exclusive", "instructions", ".", "Use", "acquire", "and", "release", "versions", "if", "necessary", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_emit_load_exclusive", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44986, "Length": 144}
{"ground_truth": ["", "static", "void", "arm_emit_multi_reg_pop", "(", "unsigned", "long", "saved_regs_mask", ")", "{", "int", "num_regs", "=", "0", ";", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "reg", ";", "bool", "return_in_pc", "=", "saved_regs_mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ";", "int", "offset_adj", ";", "int", "emit_update", ";", "offset_adj", "=", "return_in_pc", "?", "1", ":", "0", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "16", ")", ";", "emit_update", "=", "(", "saved_regs_mask", "&", "(", "1", "<<", "SP_REGNUM", ")", ")", "?", "0", ":", "1", ";", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", "+", "emit_update", "+", "offset_adj", ")", ")", ";", "if", "(", "return_in_pc", ")", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "if", "(", "emit_update", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "offset_adj", ")", "=", "tmp", ";", "}", "for", "(", "j", "=", "0", ",", "i", "=", "0", ";", "j", "<", "num_regs", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "if", "(", "(", "num_regs", "==", "1", ")", "&&", "emit_update", "&&", "!", "return_in_pc", ")", "{", "tmp", "=", "gen_frame_mem", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ")", ";", "tmp", "=", "emit_insn", "(", "gen_rtx_SET", "(", "reg", ",", "tmp", ")", ")", ";", "REG_NOTES", "(", "tmp", ")", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "reg", ",", "dwarf", ")", ";", "return", ";", "}", "tmp", "=", "gen_rtx_SET", "(", "reg", ",", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "j", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", "+", "emit_update", "+", "offset_adj", ")", "=", "tmp", ";", "if", "(", "i", "!=", "PC_REGNUM", ")", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "reg", ",", "dwarf", ")", ";", "j", "++", ";", "}", "if", "(", "return_in_pc", ")", "par", "=", "emit_jump_insn", "(", "par", ")", ";", "else", "par", "=", "emit_insn", "(", "par", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "if", "(", "!", "return_in_pc", ")", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "UNITS_PER_WORD", "*", "num_regs", ",", "stack_pointer_rtx", ",", "stack_pointer_rtx", ")", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "pattern", "that", "we", "will", "recognize", "as", "a", "pop_multi", ".", "SAVED_REGS_MASK", "shows", "which", "registers", "need", "to", "be", "restored", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "0", "1", "16", "1", "0", "1", "0", "0", "4", "1", "0", "0", "0", "1", "1", "4", "1", "0"], "File": "arm", "Func": "arm_emit_multi_reg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44987, "Length": 386}
{"ground_truth": ["", "static", "void", "arm_emit_probe_stack_range", "(", "HOST_WIDE_INT", "first", ",", "HOST_WIDE_INT", "size", ",", "unsigned", "int", "regno1", ",", "unsigned", "long", "live_regs", ")", "{", "rtx", "reg1", "=", "gen_rtx_REG", "(", "Pmode", ",", "regno1", ")", ";", "if", "(", "size", "<=", "PROBE_INTERVAL", ")", "{", "emit_move_insn", "(", "reg1", ",", "GEN_INT", "(", "first", "+", "PROBE_INTERVAL", ")", ")", ";", "emit_set_insn", "(", "reg1", ",", "gen_rtx_MINUS", "(", "Pmode", ",", "stack_pointer_rtx", ",", "reg1", ")", ")", ";", "emit_stack_probe", "(", "plus_constant", "(", "Pmode", ",", "reg1", ",", "PROBE_INTERVAL", "-", "size", ")", ")", ";", "}", "else", "if", "(", "size", "<=", "5", "*", "PROBE_INTERVAL", ")", "{", "HOST_WIDE_INT", "i", ",", "rem", ";", "emit_move_insn", "(", "reg1", ",", "GEN_INT", "(", "first", "+", "PROBE_INTERVAL", ")", ")", ";", "emit_set_insn", "(", "reg1", ",", "gen_rtx_MINUS", "(", "Pmode", ",", "stack_pointer_rtx", ",", "reg1", ")", ")", ";", "emit_stack_probe", "(", "reg1", ")", ";", "for", "(", "i", "=", "2", "*", "PROBE_INTERVAL", ";", "i", "<", "size", ";", "i", "+=", "PROBE_INTERVAL", ")", "{", "emit_set_insn", "(", "reg1", ",", "plus_constant", "(", "Pmode", ",", "reg1", ",", "-", "PROBE_INTERVAL", ")", ")", ";", "emit_stack_probe", "(", "reg1", ")", ";", "}", "rem", "=", "size", "-", "(", "i", "-", "PROBE_INTERVAL", ")", ";", "if", "(", "rem", ">", "4095", "||", "(", "TARGET_THUMB2", "&&", "rem", ">", "255", ")", ")", "{", "emit_set_insn", "(", "reg1", ",", "plus_constant", "(", "Pmode", ",", "reg1", ",", "-", "PROBE_INTERVAL", ")", ")", ";", "emit_stack_probe", "(", "plus_constant", "(", "Pmode", ",", "reg1", ",", "PROBE_INTERVAL", "-", "rem", ")", ")", ";", "}", "else", "emit_stack_probe", "(", "plus_constant", "(", "Pmode", ",", "reg1", ",", "-", "rem", ")", ")", ";", "}", "else", "{", "HOST_WIDE_INT", "rounded_size", ";", "struct", "scratch_reg", "sr", ";", "get_scratch_register_on_entry", "(", "&", "sr", ",", "regno1", ",", "live_regs", ")", ";", "emit_move_insn", "(", "reg1", ",", "GEN_INT", "(", "first", ")", ")", ";", "rounded_size", "=", "size", "&", "-", "PROBE_INTERVAL", ";", "emit_move_insn", "(", "sr", ".", "reg", ",", "GEN_INT", "(", "rounded_size", ")", ")", ";", "emit_set_insn", "(", "reg1", ",", "gen_rtx_MINUS", "(", "Pmode", ",", "stack_pointer_rtx", ",", "reg1", ")", ")", ";", "emit_set_insn", "(", "sr", ".", "reg", ",", "gen_rtx_MINUS", "(", "Pmode", ",", "reg1", ",", "sr", ".", "reg", ")", ")", ";", "emit_insn", "(", "gen_probe_stack_range", "(", "reg1", ",", "reg1", ",", "sr", ".", "reg", ")", ")", ";", "if", "(", "size", "!=", "rounded_size", ")", "{", "HOST_WIDE_INT", "rem", "=", "size", "-", "rounded_size", ";", "if", "(", "rem", ">", "4095", "||", "(", "TARGET_THUMB2", "&&", "rem", ">", "255", ")", ")", "{", "emit_set_insn", "(", "sr", ".", "reg", ",", "plus_constant", "(", "Pmode", ",", "sr", ".", "reg", ",", "-", "PROBE_INTERVAL", ")", ")", ";", "emit_stack_probe", "(", "plus_constant", "(", "Pmode", ",", "sr", ".", "reg", ",", "PROBE_INTERVAL", "-", "rem", ")", ")", ";", "}", "else", "emit_stack_probe", "(", "plus_constant", "(", "Pmode", ",", "sr", ".", "reg", ",", "-", "rem", ")", ")", ";", "}", "release_scratch_register_on_entry", "(", "&", "sr", ")", ";", "}", "emit_insn", "(", "gen_blockage", "(", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "code", "to", "probe", "a", "range", "of", "stack", "addresses", "from", "FIRST", "to", "FIRST+SIZE", ",", "inclusive", ".", "These", "are", "offsets", "from", "the", "current", "stack", "pointer", ".", "REGNO1", "is", "the", "index", "number", "of", "the", "1st", "scratch", "register", "and", "LIVE_REGS", "is", "the", "mask", "of", "live", "registers", "."], "TS_V_token": ["arm", "5", "2", "4095", "255", "4095", "255"], "File": "arm", "Func": "arm_emit_probe_stack_range", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44988, "Length": 422}
{"ground_truth": ["", "void", "arm_emit_speculation_barrier_function", "(", ")", "{", "emit_library_call", "(", "speculation_barrier_libfunc", ",", "LCT_NORMAL", ",", "VOIDmode", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "speculation", "barrier", "on", "target", "architectures", "that", "do", "not", "have", "DSB/ISB", "directly", ".", "Such", "systems", "probably", "do", "n't", "need", "a", "barrier", "themselves", ",", "but", "if", "the", "code", "is", "ever", "run", "on", "a", "later", "architecture", ",", "it", "might", "become", "a", "problem", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_emit_speculation_barrier_function", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44989, "Length": 15}
{"ground_truth": ["", "static", "void", "arm_emit_vfp_multi_reg_pop", "(", "int", "first_reg", ",", "int", "num_regs", ",", "rtx", "base_reg", ")", "{", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", "=", "NULL_RTX", ";", "rtx", "tmp", ",", "reg", ";", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "32", ")", ";", "if", "(", "num_regs", "==", "2", "&&", "!", "arm_arch6", ")", "{", "if", "(", "first_reg", "==", "15", ")", "first_reg", "--", ";", "num_regs", "++", ";", "}", "if", "(", "num_regs", ">", "16", ")", "{", "arm_emit_vfp_multi_reg_pop", "(", "first_reg", ",", "16", ",", "base_reg", ")", ";", "arm_emit_vfp_multi_reg_pop", "(", "first_reg", "+", "16", ",", "num_regs", "-", "16", ",", "base_reg", ")", ";", "return", ";", "}", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", "+", "1", ")", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "base_reg", ",", "plus_constant", "(", "Pmode", ",", "base_reg", ",", "8", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "tmp", ";", "for", "(", "j", "=", "0", ",", "i", "=", "first_reg", ";", "j", "<", "num_regs", ";", "i", "+=", "2", ")", "{", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "i", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "reg", ",", "gen_frame_mem", "(", "DFmode", ",", "plus_constant", "(", "Pmode", ",", "base_reg", ",", "8", "*", "j", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", "+", "1", ")", "=", "tmp", ";", "dwarf", "=", "alloc_reg_note", "(", "REG_CFA_RESTORE", ",", "reg", ",", "dwarf", ")", ";", "j", "++", ";", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "REG_NOTES", "(", "par", ")", "=", "dwarf", ";", "if", "(", "REGNO", "(", "base_reg", ")", "==", "IP_REGNUM", ")", "{", "RTX_FRAME_RELATED_P", "(", "par", ")", "=", "1", ";", "add_reg_note", "(", "par", ",", "REG_CFA_DEF_CFA", ",", "hard_frame_pointer_rtx", ")", ";", "}", "else", "arm_add_cfa_adjust_cfa_note", "(", "par", ",", "2", "*", "UNITS_PER_WORD", "*", "num_regs", ",", "base_reg", ",", "base_reg", ")", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "pattern", "that", "we", "will", "recognize", "as", "a", "pop_multi", "of", "NUM_REGS", "consecutive", "VFP", "regs", ",", "starting", "at", "FIRST_REG", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "32", "2", "15", "16", "16", "16", "16", "1", "8", "1", "0", "0", "0", "2", "8", "1", "0", "1", "1", "2"], "File": "arm", "Func": "arm_emit_vfp_multi_reg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44990, "Length": 290}
{"ground_truth": ["", "static", "void", "arm_encode_section_info", "(", "tree", "decl", ",", "rtx", "rtl", ",", "int", "first", ")", "{", "if", "(", "optimize", ">", "0", "&&", "TREE_CONSTANT", "(", "decl", ")", ")", "SYMBOL_REF_FLAG", "(", "XEXP", "(", "rtl", ",", "0", ")", ")", "=", "1", ";", "default_encode_section_info", "(", "decl", ",", "rtl", ",", "first", ")", ";", "}", ""], "natrual_language": ["Symbols", "in", "the", "text", "segment", "can", "be", "accessed", "without", "indirecting", "via", "the", "constant", "pool", ";", "it", "may", "take", "an", "extra", "binary", "operation", ",", "but", "this", "is", "still", "faster", "than", "indirecting", "via", "memory", ".", "Do", "n't", "do", "this", "when", "not", "optimizing", ",", "since", "we", "wo", "n't", "be", "calculating", "al", "of", "the", "offsets", "necessary", "to", "do", "this", "simplification", "."], "TS_V_token": ["arm", "0", "0", "1"], "File": "arm", "Func": "arm_encode_section_info", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44991, "Length": 47}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vext", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "offset", ";", "unsigned", "int", "location", ";", "unsigned", "int", "next", "=", "d", "->", "perm", "[", "0", "]", "+", "1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "return", "false", ";", "for", "(", "i", "=", "1", ";", "i", "<", "nelt", ";", "next", "++", ",", "i", "++", ")", "{", "if", "(", "next", "==", "2", "*", "nelt", ")", "return", "false", ";", "if", "(", "d", "->", "one_vector_p", "&&", "(", "next", "==", "nelt", ")", ")", "{", "if", "(", "(", "nelt", "==", "2", ")", "&&", "(", "d", "->", "vmode", "!=", "V2DImode", ")", ")", "return", "false", ";", "else", "next", "=", "0", ";", "}", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "next", ")", "return", "false", ";", "}", "location", "=", "d", "->", "perm", "[", "0", "]", ";", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "offset", "=", "GEN_INT", "(", "location", ")", ";", "if", "(", "d", "->", "vmode", "==", "E_DImode", ")", "return", "false", ";", "emit_insn", "(", "gen_neon_vext", "(", "d", "->", "vmode", ",", "d", "->", "target", ",", "d", "->", "op0", ",", "d", "->", "op1", ",", "offset", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VEXT", "insns", "."], "TS_V_token": ["arm", "0", "1", "1", "2", "2", "0", "0"], "File": "arm", "Func": "arm_evpc_neon_vext", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44992, "Length": 196}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vrev", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "j", ",", "diff", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "(", "*", "gen", ")", "(", "machine_mode", ",", "rtx", ",", "rtx", ")", ";", "if", "(", "!", "d", "->", "one_vector_p", ")", "return", "false", ";", "diff", "=", "d", "->", "perm", "[", "0", "]", ";", "switch", "(", "diff", ")", "{", "case", "7", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vrev64", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "3", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vrev32", ";", "break", ";", "case", "E_V8HImode", ":", "case", "E_V4HImode", ":", "case", "E_V8HFmode", ":", "case", "E_V4HFmode", ":", "gen", "=", "gen_neon_vrev64", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "case", "1", ":", "switch", "(", "d", "->", "vmode", ")", "{", "case", "E_V16QImode", ":", "case", "E_V8QImode", ":", "gen", "=", "gen_neon_vrev16", ";", "break", ";", "case", "E_V8HImode", ":", "case", "E_V4HImode", ":", "gen", "=", "gen_neon_vrev32", ";", "break", ";", "case", "E_V4SImode", ":", "case", "E_V2SImode", ":", "case", "E_V4SFmode", ":", "case", "E_V2SFmode", ":", "gen", "=", "gen_neon_vrev64", ";", "break", ";", "default", ":", "return", "false", ";", "}", "break", ";", "default", ":", "return", "false", ";", "}", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "diff", "+", "1", ")", "for", "(", "j", "=", "0", ";", "j", "<=", "diff", ";", "j", "+=", "1", ")", "{", "gcc_assert", "(", "i", "+", "j", "<", "nelt", ")", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "j", "]", "!=", "i", "+", "diff", "-", "j", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "emit_insn", "(", "gen", "(", "d", "->", "vmode", ",", "d", "->", "target", ",", "d", "->", "op0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VREV", "insns", "."], "TS_V_token": ["arm", "0", "7", "3", "1", "0", "1", "0", "1"], "File": "arm", "Func": "arm_evpc_neon_vrev", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44993, "Length": 301}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vtbl", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "rtx", "rperm", "[", "MAX_VECT_LEN", "]", ",", "sel", ";", "machine_mode", "vmode", "=", "d", "->", "vmode", ";", "unsigned", "int", "i", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "return", "false", ";", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "if", "(", "vmode", "!=", "V8QImode", "&&", "vmode", "!=", "V16QImode", ")", "return", "false", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "rperm", "[", "i", "]", "=", "GEN_INT", "(", "d", "->", "perm", "[", "i", "]", ")", ";", "sel", "=", "gen_rtx_CONST_VECTOR", "(", "vmode", ",", "gen_rtvec_v", "(", "nelt", ",", "rperm", ")", ")", ";", "sel", "=", "force_reg", "(", "vmode", ",", "sel", ")", ";", "arm_expand_vec_perm_1", "(", "d", "->", "target", ",", "d", "->", "op0", ",", "d", "->", "op1", ",", "sel", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["The", "NEON", "VTBL", "instruction", "is", "a", "fully", "variable", "permuation", "that", "'s", "even", "stronger", "than", "what", "we", "expose", "via", "VEC_PERM_EXPR", ".", "What", "it", "does", "n't", "do", "is", "mask", "the", "index", "operand", "as", "VEC_PERM_EXPR", "requires", ".", "Therefore", "we", "can", "do", "slightly", "better", "by", "expanding", "this", "as", "a", "constant", "where", "we", "do", "n't", "have", "to", "apply", "a", "mask", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_evpc_neon_vtbl", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44994, "Length": 140}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vtrn", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "0", ")", "odd", "=", "0", ";", "else", "if", "(", "d", "->", "perm", "[", "0", "]", "==", "1", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "+=", "2", ")", "{", "if", "(", "d", "->", "perm", "[", "i", "]", "!=", "i", "+", "odd", ")", "return", "false", ";", "if", "(", "d", "->", "perm", "[", "i", "+", "1", "]", "!=", "(", "(", "i", "+", "nelt", "+", "odd", ")", "&", "mask", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "odd", "=", "!", "odd", ";", "}", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen_neon_vtrn_internal", "(", "d", "->", "vmode", ",", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VTRN", "insns", "."], "TS_V_token": ["arm", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "1"], "File": "arm", "Func": "arm_evpc_neon_vtrn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44995, "Length": 253}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vuzp", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "odd", ",", "mask", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "int", "first_elem", ";", "int", "swap_nelt", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "swap_nelt", "=", "BYTES_BIG_ENDIAN", "&&", "!", "d", "->", "one_vector_p", "&&", "GET_MODE_SIZE", "(", "d", "->", "vmode", ")", "==", "8", "?", "nelt", ":", "0", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "]", "^", "swap_nelt", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "odd", "=", "0", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "1", ")", ")", "odd", "=", "1", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "(", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", ")", "*", "2", "+", "odd", ")", "&", "mask", ";", "if", "(", "(", "d", "->", "perm", "[", "i", "]", "^", "swap_nelt", ")", "!=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "elt", ")", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "swap_nelt", "!=", "0", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "odd", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen_neon_vuzp_internal", "(", "d", "->", "vmode", ",", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VUZP", "insns", "."], "TS_V_token": ["arm", "8", "8", "0", "0", "0", "0", "1", "1", "1", "2", "1", "0", "2", "0"], "File": "arm", "Func": "arm_evpc_neon_vuzp", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44996, "Length": 300}
{"ground_truth": ["", "static", "bool", "arm_evpc_neon_vzip", "(", "struct", "expand_vec_perm_d", "*", "d", ")", "{", "unsigned", "int", "i", ",", "high", ",", "mask", ",", "nelt", "=", "d", "->", "perm", ".", "length", "(", ")", ";", "rtx", "out0", ",", "out1", ",", "in0", ",", "in1", ";", "int", "first_elem", ";", "bool", "is_swapped", ";", "if", "(", "GET_MODE_UNIT_SIZE", "(", "d", "->", "vmode", ")", ">=", "8", ")", "return", "false", ";", "is_swapped", "=", "BYTES_BIG_ENDIAN", ";", "first_elem", "=", "d", "->", "perm", "[", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", "^", "is_swapped", "]", ";", "high", "=", "nelt", "/", "2", ";", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "high", ")", ")", ";", "else", "if", "(", "first_elem", "==", "neon_endian_lane_map", "(", "d", "->", "vmode", ",", "0", ")", ")", "high", "=", "0", ";", "else", "return", "false", ";", "mask", "=", "(", "d", "->", "one_vector_p", "?", "nelt", "-", "1", ":", "2", "*", "nelt", "-", "1", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nelt", "/", "2", ";", "i", "++", ")", "{", "unsigned", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "elt", "=", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "i", "+", "nelt", "+", "high", ")", "&", "mask", ";", "if", "(", "d", "->", "perm", "[", "neon_pair_endian_lane_map", "(", "d", "->", "vmode", ",", "2", "*", "i", "+", "!", "is_swapped", ")", "]", "!=", "elt", ")", "return", "false", ";", "}", "if", "(", "d", "->", "testing_p", ")", "return", "true", ";", "in0", "=", "d", "->", "op0", ";", "in1", "=", "d", "->", "op1", ";", "if", "(", "is_swapped", ")", "std", "::", "swap", "(", "in0", ",", "in1", ")", ";", "out0", "=", "d", "->", "target", ";", "out1", "=", "gen_reg_rtx", "(", "d", "->", "vmode", ")", ";", "if", "(", "high", ")", "std", "::", "swap", "(", "out0", ",", "out1", ")", ";", "emit_insn", "(", "gen_neon_vzip_internal", "(", "d", "->", "vmode", ",", "out0", ",", "in0", ",", "in1", ",", "out1", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Recognize", "patterns", "for", "the", "VZIP", "insns", "."], "TS_V_token": ["arm", "8", "0", "2", "0", "0", "1", "2", "1", "0", "2", "2", "2"], "File": "arm", "Func": "arm_evpc_neon_vzip", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44997, "Length": 324}
{"ground_truth": ["", "static", "enum", "flt_eval_method", "arm_excess_precision", "(", "enum", "excess_precision_type", "type", ")", "{", "switch", "(", "type", ")", "{", "case", "EXCESS_PRECISION_TYPE_FAST", ":", "case", "EXCESS_PRECISION_TYPE_STANDARD", ":", "return", "(", "TARGET_VFP_FP16INST", "?", "FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16", ":", "FLT_EVAL_METHOD_PROMOTE_TO_FLOAT", ")", ";", "case", "EXCESS_PRECISION_TYPE_IMPLICIT", ":", "case", "EXCESS_PRECISION_TYPE_FLOAT16", ":", "return", "FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "FLT_EVAL_METHOD_UNPREDICTABLE", ";", "}", ""], "natrual_language": ["Set", "the", "value", "of", "FLT_EVAL_METHOD", ".", "ISO/IEC", "TS", "18661-3", "defines", "two", "values", "that", "we", "'d", "like", "to", "make", "use", "of", ":", "0", ":", "evaluate", "all", "operations", "and", "constants", ",", "whose", "semantic", "type", "has", "at", "most", "the", "range", "and", "precision", "of", "type", "float", ",", "to", "the", "range", "and", "precision", "of", "float", ";", "evaluate", "all", "other", "operations", "and", "constants", "to", "the", "range", "and", "precision", "of", "the", "semantic", "type", ";", "N", ",", "where", "_FloatN", "is", "a", "supported", "interchange", "floating", "type", "evaluate", "all", "operations", "and", "constants", ",", "whose", "semantic", "type", "has", "at", "most", "the", "range", "and", "precision", "of", "_FloatN", "type", ",", "to", "the", "range", "and", "precision", "of", "the", "_FloatN", "type", ";", "evaluate", "all", "other", "operations", "and", "constants", "to", "the", "range", "and", "precision", "of", "the", "semantic", "type", ";", "If", "we", "have", "the", "ARMv8.2-A", "extensions", "then", "we", "support", "_Float16", "in", "native", "precision", ",", "so", "we", "should", "set", "this", "to", "16", ".", "Otherwise", ",", "we", "support", "the", "type", ",", "but", "want", "to", "evaluate", "expressions", "in", "float", "precision", ",", "so", "set", "this", "to", "0", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_excess_precision", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44998, "Length": 50}
{"ground_truth": ["", "static", "void", "arm_expand_builtin_va_start", "(", "tree", "valist", ",", "rtx", "nextarg", ")", "{", "valist", "=", "arm_extract_valist_ptr", "(", "valist", ")", ";", "std_expand_builtin_va_start", "(", "valist", ",", "nextarg", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_EXPAND_BUILTIN_VA_START", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_expand_builtin_va_start", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 44999, "Length": 26}
{"ground_truth": ["", "void", "arm_expand_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "bval", ",", "bdst", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ",", "x", ";", "machine_mode", "mode", ",", "cmp_mode", ";", "bval", "=", "operands", "[", "0", "]", ";", "rval", "=", "operands", "[", "1", "]", ";", "mem", "=", "operands", "[", "2", "]", ";", "oldval", "=", "operands", "[", "3", "]", ";", "newval", "=", "operands", "[", "4", "]", ";", "is_weak", "=", "operands", "[", "5", "]", ";", "mod_s", "=", "operands", "[", "6", "]", ";", "mod_f", "=", "operands", "[", "7", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "if", "(", "TARGET_HAVE_LDACQ", "&&", "is_mm_acquire", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_f", ")", ")", ")", "&&", "is_mm_release", "(", "memmodel_from_int", "(", "INTVAL", "(", "mod_s", ")", ")", ")", ")", "mod_s", "=", "GEN_INT", "(", "MEMMODEL_ACQ_REL", ")", ";", "switch", "(", "mode", ")", "{", "case", "E_QImode", ":", "case", "E_HImode", ":", "rval", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "oldval", "=", "convert_modes", "(", "SImode", ",", "mode", ",", "oldval", ",", "true", ")", ";", "case", "E_SImode", ":", "if", "(", "!", "arm_add_operand", "(", "oldval", ",", "SImode", ")", ")", "oldval", "=", "force_reg", "(", "SImode", ",", "oldval", ")", ";", "break", ";", "case", "E_DImode", ":", "if", "(", "!", "cmpdi_operand", "(", "oldval", ",", "mode", ")", ")", "oldval", "=", "force_reg", "(", "mode", ",", "oldval", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "if", "(", "TARGET_THUMB1", ")", "cmp_mode", "=", "E_SImode", ";", "else", "cmp_mode", "=", "CC_Zmode", ";", "bdst", "=", "TARGET_THUMB1", "?", "bval", ":", "gen_rtx_REG", "(", "CC_Zmode", ",", "CC_REGNUM", ")", ";", "emit_insn", "(", "gen_atomic_compare_and_swap_1", "(", "cmp_mode", ",", "mode", ",", "bdst", ",", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "is_weak", ",", "mod_s", ",", "mod_f", ")", ")", ";", "if", "(", "mode", "==", "QImode", "||", "mode", "==", "HImode", ")", "emit_move_insn", "(", "operands", "[", "1", "]", ",", "gen_lowpart", "(", "mode", ",", "rval", ")", ")", ";", "if", "(", "TARGET_THUMB1", ")", "emit_insn", "(", "gen_cstoresi_eq0_thumb1", "(", "bval", ",", "bdst", ")", ")", ";", "else", "{", "x", "=", "gen_rtx_EQ", "(", "SImode", ",", "bdst", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "bval", ",", "x", ")", ")", ";", "}", "}", ""], "natrual_language": ["Expand", "a", "compare", "and", "swap", "pattern", "."], "TS_V_token": ["arm", "0", "1", "2", "3", "4", "5", "6", "7", "1"], "File": "arm", "Func": "arm_expand_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45000, "Length": 333}
{"ground_truth": ["", "static", "void", "arm_expand_divmod_libfunc", "(", "rtx", "libfunc", ",", "machine_mode", "mode", ",", "rtx", "op0", ",", "rtx", "op1", ",", "rtx", "*", "quot_p", ",", "rtx", "*", "rem_p", ")", "{", "if", "(", "mode", "==", "SImode", ")", "gcc_assert", "(", "!", "TARGET_IDIV", ")", ";", "scalar_int_mode", "libval_mode", "=", "smallest_int_mode_for_size", "(", "2", "*", "GET_MODE_BITSIZE", "(", "mode", ")", ")", ";", "rtx", "libval", "=", "emit_library_call_value", "(", "libfunc", ",", "NULL_RTX", ",", "LCT_CONST", ",", "libval_mode", ",", "op0", ",", "mode", ",", "op1", ",", "mode", ")", ";", "rtx", "quotient", "=", "simplify_gen_subreg", "(", "mode", ",", "libval", ",", "libval_mode", ",", "0", ")", ";", "rtx", "remainder", "=", "simplify_gen_subreg", "(", "mode", ",", "libval", ",", "libval_mode", ",", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "gcc_assert", "(", "quotient", ")", ";", "gcc_assert", "(", "remainder", ")", ";", "*", "quot_p", "=", "quotient", ";", "*", "rem_p", "=", "remainder", ";", "}", ""], "natrual_language": ["Generate", "call", "to", "__aeabi_", "[", "mode", "]", "divmod", "(", "op0", ",", "op1", ")", "."], "TS_V_token": ["arm", "2", "0"], "File": "arm", "Func": "arm_expand_divmod_libfunc", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45001, "Length": 124}
{"ground_truth": ["", "void", "arm_expand_vcond", "(", "rtx", "*", "operands", ",", "machine_mode", "cmp_result_mode", ")", "{", "rtx", "mask", ";", "if", "(", "TARGET_HAVE_MVE", ")", "mask", "=", "gen_reg_rtx", "(", "arm_mode_to_pred_mode", "(", "cmp_result_mode", ")", ".", "require", "(", ")", ")", ";", "else", "mask", "=", "gen_reg_rtx", "(", "cmp_result_mode", ")", ";", "bool", "inverted", "=", "arm_expand_vector_compare", "(", "mask", ",", "GET_CODE", "(", "operands", "[", "3", "]", ")", ",", "operands", "[", "4", "]", ",", "operands", "[", "5", "]", ",", "true", ")", ";", "if", "(", "inverted", ")", "std", "::", "swap", "(", "operands", "[", "1", "]", ",", "operands", "[", "2", "]", ")", ";", "if", "(", "TARGET_NEON", ")", "emit_insn", "(", "gen_neon_vbsl", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ",", "operands", "[", "0", "]", ",", "mask", ",", "operands", "[", "1", "]", ",", "operands", "[", "2", "]", ")", ")", ";", "else", "{", "machine_mode", "cmp_mode", "=", "GET_MODE", "(", "operands", "[", "0", "]", ")", ";", "switch", "(", "GET_MODE_CLASS", "(", "cmp_mode", ")", ")", "{", "case", "MODE_VECTOR_INT", ":", "emit_insn", "(", "gen_mve_vpselq", "(", "VPSELQ_S", ",", "cmp_mode", ",", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "operands", "[", "2", "]", ",", "mask", ")", ")", ";", "break", ";", "case", "MODE_VECTOR_FLOAT", ":", "if", "(", "TARGET_HAVE_MVE_FLOAT", ")", "emit_insn", "(", "gen_mve_vpselq_f", "(", "cmp_mode", ",", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "operands", "[", "2", "]", ",", "mask", ")", ")", ";", "else", "gcc_unreachable", "(", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "}", ""], "natrual_language": ["Expand", "a", "vcond", "or", "vcondu", "pattern", "with", "operands", "OPERANDS", ".", "CMP_RESULT_MODE", "is", "the", "mode", "of", "the", "comparison", "result", "."], "TS_V_token": ["arm", "3", "4", "5", "1", "2", "0", "0", "1", "2", "0", "0", "1", "2", "0", "1", "2"], "File": "arm", "Func": "arm_expand_vcond", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45002, "Length": 223}
{"ground_truth": ["", "static", "void", "arm_expand_vec_perm_1", "(", "rtx", "target", ",", "rtx", "op0", ",", "rtx", "op1", ",", "rtx", "sel", ")", "{", "machine_mode", "vmode", "=", "GET_MODE", "(", "target", ")", ";", "bool", "one_vector_p", "=", "rtx_equal_p", "(", "op0", ",", "op1", ")", ";", "gcc_checking_assert", "(", "vmode", "==", "V8QImode", "||", "vmode", "==", "V16QImode", ")", ";", "gcc_checking_assert", "(", "GET_MODE", "(", "op0", ")", "==", "vmode", ")", ";", "gcc_checking_assert", "(", "GET_MODE", "(", "op1", ")", "==", "vmode", ")", ";", "gcc_checking_assert", "(", "GET_MODE", "(", "sel", ")", "==", "vmode", ")", ";", "gcc_checking_assert", "(", "TARGET_NEON", ")", ";", "if", "(", "one_vector_p", ")", "{", "if", "(", "vmode", "==", "V8QImode", ")", "emit_insn", "(", "gen_neon_vtbl1v8qi", "(", "target", ",", "op0", ",", "sel", ")", ")", ";", "else", "emit_insn", "(", "gen_neon_vtbl1v16qi", "(", "target", ",", "op0", ",", "sel", ")", ")", ";", "}", "else", "{", "rtx", "pair", ";", "if", "(", "vmode", "==", "V8QImode", ")", "{", "pair", "=", "gen_reg_rtx", "(", "V16QImode", ")", ";", "emit_insn", "(", "gen_neon_vcombinev8qi", "(", "pair", ",", "op0", ",", "op1", ")", ")", ";", "pair", "=", "gen_lowpart", "(", "TImode", ",", "pair", ")", ";", "emit_insn", "(", "gen_neon_vtbl2v8qi", "(", "target", ",", "pair", ",", "sel", ")", ")", ";", "}", "else", "{", "pair", "=", "gen_reg_rtx", "(", "OImode", ")", ";", "emit_insn", "(", "gen_neon_vcombinev16qi", "(", "pair", ",", "op0", ",", "op1", ")", ")", ";", "emit_insn", "(", "gen_neon_vtbl2v16qi", "(", "target", ",", "pair", ",", "sel", ")", ")", ";", "}", "}", "}", ""], "natrual_language": ["Generate", "a", "variable", "permutation", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_expand_vec_perm_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45003, "Length": 207}
{"ground_truth": ["", "static", "tree", "arm_extract_valist_ptr", "(", "tree", "valist", ")", "{", "if", "(", "TREE_TYPE", "(", "valist", ")", "==", "error_mark_node", ")", "return", "error_mark_node", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "tree", "ap_field", "=", "TYPE_FIELDS", "(", "TREE_TYPE", "(", "valist", ")", ")", ";", "valist", "=", "build3", "(", "COMPONENT_REF", ",", "TREE_TYPE", "(", "ap_field", ")", ",", "valist", ",", "ap_field", ",", "NULL_TREE", ")", ";", "}", "return", "valist", ";", "}", ""], "natrual_language": ["Return", "an", "expression", "of", "type", "``", "void", "*", "''", "pointing", "to", "the", "next", "available", "argument", "in", "a", "variable-argument", "list", ".", "VALIST", "is", "the", "user-level", "va_list", "object", ",", "of", "type", "__builtin_va_list", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_extract_valist_ptr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45004, "Length": 59}
{"ground_truth": ["", "static", "bool", "arm_fdpic_local_funcdesc_p", "(", "rtx", "fnx", ")", "{", "tree", "fn", ";", "enum", "symbol_visibility", "vis", ";", "bool", "ret", ";", "if", "(", "!", "TARGET_FDPIC", ")", "return", "true", ";", "if", "(", "!", "SYMBOL_REF_LOCAL_P", "(", "fnx", ")", ")", "return", "false", ";", "fn", "=", "SYMBOL_REF_DECL", "(", "fnx", ")", ";", "if", "(", "!", "fn", ")", "return", "false", ";", "vis", "=", "DECL_VISIBILITY", "(", "fn", ")", ";", "if", "(", "vis", "==", "VISIBILITY_PROTECTED", ")", "DECL_VISIBILITY", "(", "fn", ")", "=", "VISIBILITY_DEFAULT", ";", "ret", "=", "default_binds_local_p_1", "(", "fn", ",", "flag_pic", ")", ";", "DECL_VISIBILITY", "(", "fn", ")", "=", "vis", ";", "return", "ret", ";", "}", ""], "natrual_language": ["Test", "whether", "a", "local", "function", "descriptor", "is", "canonical", ",", "i.e.", ",", "whether", "we", "can", "use", "GOTOFFFUNCDESC", "to", "compute", "the", "address", "of", "the", "function", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_fdpic_local_funcdesc_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45005, "Length": 92}
{"ground_truth": ["", "static", "int", "arm_first_cycle_multipass_dfa_lookahead", "(", "void", ")", "{", "int", "issue_rate", "=", "arm_issue_rate", "(", ")", ";", "return", "issue_rate", ">", "1", "&&", "!", "sched_fusion", "?", "issue_rate", ":", "0", ";", "}", ""], "natrual_language": ["Return", "how", "many", "instructions", "should", "scheduler", "lookahead", "to", "choose", "the", "best", "one", "."], "TS_V_token": ["arm", "1", "0"], "File": "arm", "Func": "arm_first_cycle_multipass_dfa_lookahead", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45006, "Length": 27}
{"ground_truth": ["", "static", "int", "arm_first_cycle_multipass_dfa_lookahead_guard", "(", "rtx_insn", "*", "insn", ",", "int", "ready_index", ")", "{", "return", "autopref_multipass_dfa_lookahead_guard", "(", "insn", ",", "ready_index", ")", ";", "}", ""], "natrual_language": ["Enable", "modeling", "of", "L2", "auto-prefetcher", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_first_cycle_multipass_dfa_lookahead_guard", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45007, "Length": 21}
{"ground_truth": ["", "static", "bool", "arm_fixed_condition_code_regs", "(", "unsigned", "int", "*", "p1", ",", "unsigned", "int", "*", "p2", ")", "{", "if", "(", "!", "TARGET_32BIT", ")", "return", "false", ";", "*", "p1", "=", "CC_REGNUM", ";", "*", "p2", "=", "TARGET_VFP_BASE", "?", "VFPCC_REGNUM", ":", "INVALID_REGNUM", ";", "return", "true", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FIXED_CONDITION_CODE_REGS", ".", "We", "only", "have", "condition", "code", "registers", "when", "not", "targetting", "Thumb1", ".", "The", "VFP", "condition", "register", "only", "exists", "when", "generating", "hard-float", "code", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_fixed_condition_code_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45008, "Length": 41}
{"ground_truth": ["", "static", "opt_scalar_float_mode", "arm_floatn_mode", "(", "int", "n", ",", "bool", "extended", ")", "{", "if", "(", "!", "extended", "&&", "n", "==", "16", ")", "{", "if", "(", "arm_fp16_format", "==", "ARM_FP16_FORMAT_IEEE", ")", "return", "HFmode", ";", "return", "opt_scalar_float_mode", "(", ")", ";", "}", "return", "default_floatn_mode", "(", "n", ",", "extended", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FLOATN_MODE", ".", "Make", "very", "sure", "that", "we", "do", "n't", "provide", "_Float16", "if", "we", "are", "using", "anything", "other", "than", "ieee", "format", "for", "16-bit", "floating", "point", ".", "Otherwise", ",", "punt", "to", "the", "default", "implementation", "."], "TS_V_token": ["arm", "16"], "File": "arm", "Func": "arm_floatn_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45009, "Length": 45}
{"ground_truth": ["", "bool", "arm_frame_pointer_required", "(", "void", ")", "{", "if", "(", "SUBTARGET_FRAME_POINTER_REQUIRED", ")", "return", "true", ";", "if", "(", "cfun", "->", "has_nonlocal_label", ")", "return", "true", ";", "if", "(", "TARGET_ARM", "&&", "TARGET_APCS_FRAME", "&&", "!", "crtl", "->", "is_leaf", ")", "return", "true", ";", "if", "(", "!", "IS_INTERRUPT", "(", "arm_current_func_type", "(", ")", ")", "&&", "(", "flag_stack_check", "==", "STATIC_BUILTIN_STACK_CHECK", "||", "flag_stack_clash_protection", ")", "&&", "arm_except_unwind_info", "(", "&", "global_options", ")", "==", "UI_TARGET", "&&", "cfun", "->", "can_throw_non_call_exceptions", ")", "{", "HOST_WIDE_INT", "size", "=", "get_frame_size", "(", ")", ";", "if", "(", "size", "<=", "0", ")", "return", "false", ";", "if", "(", "crtl", "->", "is_leaf", "&&", "!", "cfun", "->", "calls_alloca", ")", "{", "size", "+=", "32", "*", "UNITS_PER_WORD", ";", "if", "(", "size", ">", "PROBE_INTERVAL", "&&", "size", ">", "get_stack_check_protect", "(", ")", ")", "return", "true", ";", "}", "else", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FRAME_POINTER_REQUIRED", "."], "TS_V_token": ["arm", "0", "32"], "File": "arm", "Func": "arm_frame_pointer_required", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45010, "Length": 126}
{"ground_truth": ["", "static", "rtx", "arm_function_arg", "(", "cumulative_args_t", "pcum_v", ",", "const", "function_arg_info", "&", "arg", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "if", "(", "arg", ".", "end_marker_p", "(", ")", ")", "return", "const0_rtx", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "aapcs_layout_arg", "(", "pcum", ",", "arg", ".", "mode", ",", "arg", ".", "type", ",", "arg", ".", "named", ")", ";", "return", "pcum", "->", "aapcs_reg", ";", "}", "if", "(", "TARGET_IWMMXT_ABI", "&&", "arm_vector_mode_supported_p", "(", "arg", ".", "mode", ")", "&&", "pcum", "->", "named_count", ">", "pcum", "->", "nargs", "+", "1", ")", "{", "if", "(", "pcum", "->", "iwmmxt_nregs", "<=", "9", ")", "return", "gen_rtx_REG", "(", "arg", ".", "mode", ",", "pcum", "->", "iwmmxt_nregs", "+", "FIRST_IWMMXT_REGNUM", ")", ";", "else", "{", "pcum", "->", "can_split", "=", "false", ";", "return", "NULL_RTX", ";", "}", "}", "if", "(", "(", "pcum", "->", "nregs", "&", "1", ")", "&&", "ARM_DOUBLEWORD_ALIGN", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "arg", ".", "mode", ",", "arg", ".", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", ",", "arg", ".", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "{", "pcum", "->", "nregs", "++", ";", "if", "(", "res", ">", "1", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\"", ",", "arg", ".", "type", ")", ";", "}", "}", "if", "(", "pcum", "->", "can_split", ")", "nregs", "=", "1", ";", "else", "nregs", "=", "ARM_NUM_REGS2", "(", "arg", ".", "mode", ",", "arg", ".", "type", ")", ";", "if", "(", "!", "arg", ".", "named", "||", "pcum", "->", "nregs", "+", "nregs", ">", "NUM_ARG_REGS", ")", "return", "NULL_RTX", ";", "return", "gen_rtx_REG", "(", "arg", ".", "mode", ",", "pcum", "->", "nregs", ")", ";", "}", ""], "natrual_language": ["Determine", "where", "to", "put", "an", "argument", "to", "a", "function", ".", "Value", "is", "zero", "to", "push", "the", "argument", "on", "the", "stack", ",", "or", "a", "hard", "register", "in", "which", "to", "store", "the", "argument", ".", "MODE", "is", "the", "argument", "'s", "machine", "mode", ".", "TYPE", "is", "the", "data", "type", "of", "the", "argument", "(", "as", "a", "tree", ")", ".", "This", "is", "null", "for", "libcalls", "where", "that", "information", "may", "not", "be", "available", ".", "CUM", "is", "a", "variable", "of", "type", "CUMULATIVE_ARGS", "which", "gives", "info", "about", "the", "preceding", "args", "and", "about", "the", "function", "being", "called", ".", "NAMED", "is", "nonzero", "if", "this", "argument", "is", "a", "named", "parameter", "(", "otherwise", "it", "is", "an", "extra", "parameter", "matching", "an", "ellipsis", ")", ".", "On", "the", "ARM", ",", "normally", "the", "first", "16", "bytes", "are", "passed", "in", "registers", "r0-r3", ";", "all", "other", "arguments", "are", "passed", "on", "the", "stack", ".", "If", "(", "NAMED", "==", "0", ")", "(", "which", "happens", "only", "in", "assign_parms", ",", "since", "TARGET_SETUP_INCOMING_VARARGS", "is", "defined", ")", ",", "say", "it", "is", "passed", "in", "the", "stack", "(", "function_prologue", "will", "indeed", "make", "it", "pass", "in", "the", "stack", "if", "necessary", ")", "."], "TS_V_token": ["arm", "1", "9", "1", "0", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 7.1\"", "0", "1", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\"", "1"], "File": "arm", "Func": "arm_function_arg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45011, "Length": 262}
{"ground_truth": ["", "static", "void", "arm_function_arg_advance", "(", "cumulative_args_t", "pcum_v", ",", "const", "function_arg_info", "&", "arg", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "aapcs_layout_arg", "(", "pcum", ",", "arg", ".", "mode", ",", "arg", ".", "type", ",", "arg", ".", "named", ")", ";", "if", "(", "pcum", "->", "aapcs_cprc_slot", ">=", "0", ")", "{", "aapcs_cp_arg_layout", "[", "pcum", "->", "aapcs_cprc_slot", "]", ".", "advance", "(", "pcum", ",", "arg", ".", "mode", ",", "arg", ".", "type", ")", ";", "pcum", "->", "aapcs_cprc_slot", "=", "-", "1", ";", "}", "pcum", "->", "aapcs_arg_processed", "=", "false", ";", "pcum", "->", "aapcs_ncrn", "=", "pcum", "->", "aapcs_next_ncrn", ";", "pcum", "->", "aapcs_reg", "=", "NULL_RTX", ";", "pcum", "->", "aapcs_partial", "=", "0", ";", "}", "else", "{", "pcum", "->", "nargs", "+=", "1", ";", "if", "(", "arm_vector_mode_supported_p", "(", "arg", ".", "mode", ")", "&&", "pcum", "->", "named_count", ">", "pcum", "->", "nargs", "&&", "TARGET_IWMMXT_ABI", ")", "pcum", "->", "iwmmxt_nregs", "+=", "1", ";", "else", "pcum", "->", "nregs", "+=", "ARM_NUM_REGS2", "(", "arg", ".", "mode", ",", "arg", ".", "type", ")", ";", "}", "}", ""], "natrual_language": ["Update", "the", "data", "in", "PCUM", "to", "advance", "over", "an", "argument", "of", "mode", "MODE", "and", "data", "type", "TYPE", ".", "(", "TYPE", "is", "null", "for", "libcalls", "where", "that", "information", "may", "not", "be", "available", ".", ")"], "TS_V_token": ["arm", "0", "1", "0", "1", "1"], "File": "arm", "Func": "arm_function_arg_advance", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45012, "Length": 163}
{"ground_truth": ["", "static", "pad_direction", "arm_function_arg_padding", "(", "machine_mode", "mode", ",", "const_tree", "type", ")", "{", "if", "(", "!", "TARGET_AAPCS_BASED", ")", "return", "default_function_arg_padding", "(", "mode", ",", "type", ")", ";", "if", "(", "type", "&&", "BYTES_BIG_ENDIAN", "&&", "INTEGRAL_TYPE_P", "(", "type", ")", ")", "return", "PAD_DOWNWARD", ";", "return", "PAD_UPWARD", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FUNCTION_ARG_PADDING", ";", "return", "PAD_UPWARD", "if", "the", "lowest", "byte", "of", "a", "stack", "argument", "has", "useful", "data", ".", "For", "legacy", "APCS", "ABIs", "we", "use", "the", "default", ".", "For", "AAPCS", "based", "ABIs", "small", "aggregate", "types", "are", "placed", "in", "the", "lowest", "memory", "address", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_function_arg_padding", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45013, "Length": 42}
{"ground_truth": ["", "static", "bool", "arm_function_in_section_p", "(", "tree", "decl", ",", "section", "*", "section", ")", "{", "if", "(", "!", "decl_binds_to_current_def_p", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "!", "DECL_SECTION_NAME", "(", "decl", ")", ")", "{", "if", "(", "flag_function_sections", "||", "DECL_COMDAT_GROUP", "(", "decl", ")", ")", "return", "false", ";", "}", "return", "function_section", "(", "decl", ")", "==", "section", ";", "}", ""], "natrual_language": ["Return", "true", "if", "DECL", "is", "known", "to", "be", "linked", "into", "section", "SECTION", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_function_in_section_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45014, "Length": 54}
{"ground_truth": ["", "static", "bool", "arm_function_ok_for_sibcall", "(", "tree", "decl", ",", "tree", "exp", ")", "{", "unsigned", "long", "func_type", ";", "if", "(", "cfun", "->", "machine", "->", "sibcall_blocked", ")", "return", "false", ";", "if", "(", "TARGET_FDPIC", ")", "{", "if", "(", "decl", "==", "NULL", ")", "return", "false", ";", "}", "if", "(", "TARGET_THUMB1", ")", "return", "false", ";", "if", "(", "TARGET_VXWORKS_RTP", "&&", "flag_pic", "&&", "decl", "&&", "!", "targetm", ".", "binds_local_p", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "TARGET_APCS_FRAME", "&&", "TARGET_ARM", "&&", "TARGET_HARD_FLOAT", "&&", "decl", "&&", "arm_is_long_call_p", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "TARGET_INTERWORK", "&&", "decl", "&&", "TREE_PUBLIC", "(", "decl", ")", "&&", "!", "TREE_ASM_WRITTEN", "(", "decl", ")", ")", "return", "false", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", "return", "false", ";", "if", "(", "TREE_CODE", "(", "exp", ")", "==", "CALL_EXPR", ")", "{", "tree", "fntype", "=", "TREE_TYPE", "(", "TREE_TYPE", "(", "CALL_EXPR_FN", "(", "exp", ")", ")", ")", ";", "if", "(", "lookup_attribute", "(", "\"cmse_nonsecure_call\"", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ")", "return", "false", ";", "}", "if", "(", "!", "VOID_TYPE_P", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ")", ")", "{", "rtx", "a", ",", "b", ";", "tree", "decl_or_type", "=", "decl", ";", "if", "(", "!", "decl", ")", "decl_or_type", "=", "TREE_TYPE", "(", "TREE_TYPE", "(", "CALL_EXPR_FN", "(", "exp", ")", ")", ")", ";", "a", "=", "arm_function_value", "(", "TREE_TYPE", "(", "exp", ")", ",", "decl_or_type", ",", "false", ")", ";", "b", "=", "arm_function_value", "(", "TREE_TYPE", "(", "DECL_RESULT", "(", "cfun", "->", "decl", ")", ")", ",", "cfun", "->", "decl", ",", "false", ")", ";", "if", "(", "!", "rtx_equal_p", "(", "a", ",", "b", ")", ")", "return", "false", ";", "}", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "return", "false", ";", "if", "(", "TARGET_AAPCS_BASED", "&&", "arm_abi", "==", "ARM_ABI_AAPCS", "&&", "decl", "&&", "DECL_WEAK", "(", "decl", ")", ")", "return", "false", ";", "if", "(", "!", "decl", "&&", "CALL_EXPR_BY_DESCRIPTOR", "(", "exp", ")", "&&", "!", "flag_trampolines", ")", "{", "tree", "fntype", "=", "TREE_TYPE", "(", "TREE_TYPE", "(", "CALL_EXPR_FN", "(", "exp", ")", ")", ")", ";", "CUMULATIVE_ARGS", "cum", ";", "cumulative_args_t", "cum_v", ";", "arm_init_cumulative_args", "(", "&", "cum", ",", "fntype", ",", "NULL_RTX", ",", "NULL_TREE", ")", ";", "cum_v", "=", "pack_cumulative_args", "(", "&", "cum", ")", ";", "for", "(", "tree", "t", "=", "TYPE_ARG_TYPES", "(", "fntype", ")", ";", "t", ";", "t", "=", "TREE_CHAIN", "(", "t", ")", ")", "{", "tree", "type", "=", "TREE_VALUE", "(", "t", ")", ";", "if", "(", "!", "VOID_TYPE_P", "(", "type", ")", ")", "{", "function_arg_info", "arg", "(", "type", ",", "true", ")", ";", "arm_function_arg_advance", "(", "cum_v", ",", "arg", ")", ";", "}", "}", "function_arg_info", "arg", "(", "integer_type_node", ",", "true", ")", ";", "if", "(", "!", "arm_function_arg", "(", "cum_v", ",", "arg", ")", ")", "return", "false", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "it", "is", "ok", "to", "make", "a", "tail-call", "to", "DECL", "."], "TS_V_token": ["arm", "\"cmse_nonsecure_call\""], "File": "arm", "Func": "arm_function_ok_for_sibcall", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45015, "Length": 429}
{"ground_truth": ["", "static", "section", "*", "arm_function_section", "(", "tree", "decl", ",", "enum", "node_frequency", "freq", ",", "bool", "startup", ",", "bool", "exit", ")", "{", "const", "char", "*", "section_name", ";", "section", "*", "sec", ";", "if", "(", "!", "decl", "||", "TREE_CODE", "(", "decl", ")", "!=", "FUNCTION_DECL", ")", "return", "default_function_section", "(", "decl", ",", "freq", ",", "startup", ",", "exit", ")", ";", "if", "(", "!", "target_pure_code", ")", "return", "default_function_section", "(", "decl", ",", "freq", ",", "startup", ",", "exit", ")", ";", "section_name", "=", "DECL_SECTION_NAME", "(", "decl", ")", ";", "if", "(", "!", "section_name", ")", "{", "section", "*", "default_sec", "=", "default_function_section", "(", "decl", ",", "freq", ",", "startup", ",", "exit", ")", ";", "if", "(", "default_sec", ")", "default_sec", "->", "common", ".", "flags", "|=", "SECTION_ARM_PURECODE", ";", "return", "default_sec", ";", "}", "sec", "=", "get_named_section", "(", "decl", ",", "section_name", ",", "0", ")", ";", "if", "(", "!", "sec", ")", "sec", "=", "get_named_section", "(", "decl", ",", "NULL", ",", "0", ")", ";", "sec", "->", "common", ".", "flags", "|=", "SECTION_ARM_PURECODE", ";", "return", "sec", ";", "}", ""], "natrual_language": ["Implement", "the", "TARGET_ASM_FUNCTION_SECTION", "hook", ".", "If", "pure-code", "is", "passed", "as", "an", "option", ",", "make", "sure", "all", "functions", "are", "in", "sections", "that", "have", "the", "SHF_ARM_PURECODE", "attribute", "."], "TS_V_token": ["arm", "0", "0"], "File": "arm", "Func": "arm_function_section", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45016, "Length": 152}
{"ground_truth": ["", "static", "rtx", "arm_function_value", "(", "const_tree", "type", ",", "const_tree", "func", ",", "bool", "outgoing", "ATTRIBUTE_UNUSED", ")", "{", "machine_mode", "mode", ";", "int", "unsignedp", "ATTRIBUTE_UNUSED", ";", "rtx", "r", "ATTRIBUTE_UNUSED", ";", "mode", "=", "TYPE_MODE", "(", "type", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "return", "aapcs_allocate_return_reg", "(", "mode", ",", "type", ",", "func", ")", ";", "if", "(", "INTEGRAL_TYPE_P", "(", "type", ")", ")", "mode", "=", "arm_promote_function_mode", "(", "type", ",", "mode", ",", "&", "unsignedp", ",", "func", ",", "1", ")", ";", "if", "(", "arm_return_in_msb", "(", "type", ")", ")", "{", "HOST_WIDE_INT", "size", "=", "int_size_in_bytes", "(", "type", ")", ";", "if", "(", "size", "%", "UNITS_PER_WORD", "!=", "0", ")", "{", "size", "+=", "UNITS_PER_WORD", "-", "size", "%", "UNITS_PER_WORD", ";", "mode", "=", "int_mode_for_size", "(", "size", "*", "BITS_PER_UNIT", ",", "0", ")", ".", "require", "(", ")", ";", "}", "}", "return", "arm_libcall_value_1", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Define", "how", "to", "find", "the", "value", "returned", "by", "a", "function", "."], "TS_V_token": ["arm", "1", "0", "0"], "File": "arm", "Func": "arm_function_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45017, "Length": 127}
{"ground_truth": ["", "static", "bool", "arm_function_value_regno_p", "(", "const", "unsigned", "int", "regno", ")", "{", "if", "(", "regno", "==", "ARG_REGISTER", "(", "1", ")", "||", "(", "TARGET_32BIT", "&&", "TARGET_AAPCS_BASED", "&&", "TARGET_HARD_FLOAT", "&&", "regno", "==", "FIRST_VFP_REGNUM", ")", "||", "(", "TARGET_IWMMXT_ABI", "&&", "regno", "==", "FIRST_IWMMXT_REGNUM", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "TARGET_FUNCTION_VALUE_REGNO_P", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_function_value_regno_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45018, "Length": 46}
{"ground_truth": ["", "bool", "arm_fusion_enabled_p", "(", "tune_params", "::", "fuse_ops", "op", ")", "{", "return", "current_tune", "->", "fusible_ops", "&", "op", ";", "}", ""], "natrual_language": ["Return", "true", "iff", "the", "instruction", "fusion", "described", "by", "OP", "is", "enabled", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_fusion_enabled_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45019, "Length": 17}
{"ground_truth": ["", "rtx", "arm_gen_compare_reg", "(", "rtx_code", "code", ",", "rtx", "x", ",", "rtx", "y", ",", "rtx", "scratch", ")", "{", "if", "(", "GET_MODE", "(", "x", ")", "==", "DImode", "||", "GET_MODE", "(", "y", ")", "==", "DImode", ")", "return", "arm_gen_dicompare_reg", "(", "code", ",", "x", ",", "y", ",", "scratch", ")", ";", "machine_mode", "mode", "=", "SELECT_CC_MODE", "(", "code", ",", "x", ",", "y", ")", ";", "rtx", "cc_reg", "=", "gen_rtx_REG", "(", "mode", ",", "CC_REGNUM", ")", ";", "if", "(", "mode", "==", "CC_RSBmode", ")", "{", "if", "(", "!", "scratch", ")", "scratch", "=", "gen_rtx_SCRATCH", "(", "SImode", ")", ";", "emit_insn", "(", "gen_rsb_imm_compare_scratch", "(", "scratch", ",", "GEN_INT", "(", "~", "UINTVAL", "(", "x", ")", ")", ",", "y", ")", ")", ";", "}", "else", "emit_set_insn", "(", "cc_reg", ",", "gen_rtx_COMPARE", "(", "mode", ",", "x", ",", "y", ")", ")", ";", "return", "cc_reg", ";", "}", ""], "natrual_language": ["X", "and", "Y", "are", "two", "things", "to", "compare", "using", "CODE", ".", "Emit", "the", "compare", "insn", "and", "return", "the", "rtx", "for", "register", "0", "in", "the", "proper", "mode", ".", "FP", "means", "this", "is", "a", "floating", "point", "compare", ":", "I", "do", "n't", "think", "that", "it", "is", "needed", "on", "the", "arm", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_gen_compare_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45020, "Length": 124}
{"ground_truth": ["", "const", "char", "*", "arm_gen_far_branch", "(", "rtx", "*", "operands", ",", "int", "pos_label", ",", "const", "char", "*", "dest", ",", "const", "char", "*", "branch_format", ")", "{", "rtx_code_label", "*", "tmp_label", "=", "gen_label_rtx", "(", ")", ";", "char", "label_buf", "[", "256", "]", ";", "char", "buffer", "[", "128", "]", ";", "ASM_GENERATE_INTERNAL_LABEL", "(", "label_buf", ",", "dest", ",", "\\", "CODE_LABEL_NUMBER", "(", "tmp_label", ")", ")", ";", "const", "char", "*", "label_ptr", "=", "arm_strip_name_encoding", "(", "label_buf", ")", ";", "rtx", "dest_label", "=", "operands", "[", "pos_label", "]", ";", "operands", "[", "pos_label", "]", "=", "tmp_label", ";", "snprintf", "(", "buffer", ",", "sizeof", "(", "buffer", ")", ",", "\"%s%s\"", ",", "branch_format", ",", "label_ptr", ")", ";", "output_asm_insn", "(", "buffer", ",", "operands", ")", ";", "snprintf", "(", "buffer", ",", "sizeof", "(", "buffer", ")", ",", "\"b\\t%%l0%d\\n%s:\"", ",", "pos_label", ",", "label_ptr", ")", ";", "operands", "[", "pos_label", "]", "=", "dest_label", ";", "output_asm_insn", "(", "buffer", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "enable", "conditional", "branches", "in", "functions", "over", "1", "MiB", ".", "Parameters", "are", ":", "operands", ":", "is", "the", "operands", "list", "of", "the", "asm", "insn", "(", "see", "arm_cond_branch", "or", "arm_cond_branch_reversed", ")", ".", "pos_label", ":", "is", "an", "index", "into", "the", "operands", "array", "where", "operands", "[", "pos_label", "]", "is", "the", "asm", "label", "of", "the", "final", "jump", "destination", ".", "dest", ":", "is", "a", "string", "which", "is", "used", "to", "generate", "the", "asm", "label", "of", "the", "intermediate", "destination", "branch_format", ":", "is", "a", "string", "denoting", "the", "intermediate", "branch", "format", ",", "e.g", ".", "``", "beq", "''", ",", "``", "bne", "''", ",", "etc", "."], "TS_V_token": ["arm", "256", "128", "\"%s%s\"", "\"b\\t%%l0%d\\n%s:\"", "\"\""], "File": "arm", "Func": "arm_gen_far_branch", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45021, "Length": 138}
{"ground_truth": ["", "rtx", "arm_gen_load_multiple", "(", "int", "*", "regs", ",", "int", "count", ",", "rtx", "basereg", ",", "int", "write_back", ",", "rtx", "basemem", ",", "HOST_WIDE_INT", "*", "offsetp", ")", "{", "return", "arm_gen_multiple_op", "(", "TRUE", ",", "regs", ",", "count", ",", "basereg", ",", "write_back", ",", "basemem", ",", "offsetp", ")", ";", "}", ""], "natrual_language": ["Routines", "for", "use", "in", "generating", "RTL", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_gen_load_multiple", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45022, "Length": 43}
{"ground_truth": ["", "static", "rtx", "arm_gen_load_multiple_1", "(", "int", "count", ",", "int", "*", "regs", ",", "rtx", "*", "mems", ",", "rtx", "basereg", ",", "HOST_WIDE_INT", "wback_offset", ")", "{", "int", "i", "=", "0", ",", "j", ";", "rtx", "result", ";", "if", "(", "!", "multiple_operation_profitable_p", "(", "false", ",", "count", ",", "0", ")", ")", "{", "rtx", "seq", ";", "start_sequence", "(", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "emit_move_insn", "(", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "i", "]", ")", ",", "mems", "[", "i", "]", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "emit_move_insn", "(", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "seq", "=", "get_insns", "(", ")", ";", "end_sequence", "(", ")", ";", "return", "seq", ";", "}", "result", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "(", "wback_offset", "!=", "0", "?", "1", ":", "0", ")", ")", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "{", "XVECEXP", "(", "result", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "i", "=", "1", ";", "count", "++", ";", "}", "for", "(", "j", "=", "0", ";", "i", "<", "count", ";", "i", "++", ",", "j", "++", ")", "XVECEXP", "(", "result", ",", "0", ",", "i", ")", "=", "gen_rtx_SET", "(", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "j", "]", ")", ",", "mems", "[", "j", "]", ")", ";", "return", "result", ";", "}", ""], "natrual_language": ["Generate", "a", "load-multiple", "instruction", ".", "COUNT", "is", "the", "number", "of", "loads", "in", "the", "instruction", ";", "REGS", "and", "MEMS", "are", "arrays", "containing", "the", "operands", ".", "BASEREG", "is", "the", "base", "register", "to", "be", "used", "in", "addressing", "the", "memory", "operands", ".", "WBACK_OFFSET", "is", "nonzero", "if", "the", "instruction", "should", "update", "the", "base", "register", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0"], "File": "arm", "Func": "arm_gen_load_multiple_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45023, "Length": 224}
{"ground_truth": ["", "static", "rtx", "arm_gen_multiple_op", "(", "bool", "is_load", ",", "int", "*", "regs", ",", "int", "count", ",", "rtx", "basereg", ",", "bool", "write_back", ",", "rtx", "basemem", ",", "HOST_WIDE_INT", "*", "offsetp", ")", "{", "rtx", "mems", "[", "MAX_LDM_STM_OPS", "]", ";", "HOST_WIDE_INT", "offset", "=", "*", "offsetp", ";", "int", "i", ";", "gcc_assert", "(", "count", "<=", "MAX_LDM_STM_OPS", ")", ";", "if", "(", "GET_CODE", "(", "basereg", ")", "==", "PLUS", ")", "basereg", "=", "XEXP", "(", "basereg", ",", "0", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "{", "rtx", "addr", "=", "plus_constant", "(", "Pmode", ",", "basereg", ",", "i", "*", "4", ")", ";", "mems", "[", "i", "]", "=", "adjust_automodify_address_nv", "(", "basemem", ",", "SImode", ",", "addr", ",", "offset", ")", ";", "offset", "+=", "4", ";", "}", "if", "(", "write_back", ")", "*", "offsetp", "=", "offset", ";", "if", "(", "is_load", ")", "return", "arm_gen_load_multiple_1", "(", "count", ",", "regs", ",", "mems", ",", "basereg", ",", "write_back", "?", "4", "*", "count", ":", "0", ")", ";", "else", "return", "arm_gen_store_multiple_1", "(", "count", ",", "regs", ",", "mems", ",", "basereg", ",", "write_back", "?", "4", "*", "count", ":", "0", ")", ";", "}", ""], "natrual_language": ["Generate", "either", "a", "load-multiple", "or", "a", "store-multiple", "instruction", ".", "This", "function", "can", "be", "used", "in", "situations", "where", "we", "can", "start", "with", "a", "single", "MEM", "rtx", "and", "adjust", "its", "address", "upwards", ".", "COUNT", "is", "the", "number", "of", "operations", "in", "the", "instruction", ",", "not", "counting", "a", "possible", "update", "of", "the", "base", "register", ".", "REGS", "is", "an", "array", "containing", "the", "register", "operands", ".", "BASEREG", "is", "the", "base", "register", "to", "be", "used", "in", "addressing", "the", "memory", "operands", ",", "which", "are", "constructed", "from", "BASEMEM", ".", "WRITE_BACK", "specifies", "whether", "the", "generated", "instruction", "should", "include", "an", "update", "of", "the", "base", "register", ".", "OFFSETP", "is", "used", "to", "pass", "an", "offset", "to", "and", "from", "this", "function", ";", "this", "offset", "is", "not", "used", "when", "constructing", "the", "address", "(", "instead", "BASEMEM", "should", "have", "an", "appropriate", "offset", "in", "its", "address", ")", ",", "it", "is", "used", "only", "for", "setting", "MEM_OFFSET", ".", "It", "is", "updated", "only", "if", "WRITE_BACK", "is", "true", "."], "TS_V_token": ["arm", "0", "0", "4", "4", "4", "0", "4", "0"], "File": "arm", "Func": "arm_gen_multiple_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45024, "Length": 172}
{"ground_truth": ["", "rtx", "arm_gen_return_addr_mask", "(", "void", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "emit_insn", "(", "gen_return_addr_mask", "(", "reg", ")", ")", ";", "return", "reg", ";", "}", ""], "natrual_language": ["Generate", "a", "sequence", "of", "insns", "that", "will", "generate", "the", "correct", "return", "address", "mask", "depending", "on", "the", "physical", "architecture", "that", "the", "program", "is", "running", "on", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_gen_return_addr_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45025, "Length": 26}
{"ground_truth": ["", "bool", "arm_gen_setmem", "(", "rtx", "*", "operands", ")", "{", "rtx", "dstbase", "=", "operands", "[", "0", "]", ";", "unsigned", "HOST_WIDE_INT", "length", ";", "unsigned", "HOST_WIDE_INT", "value", ";", "unsigned", "HOST_WIDE_INT", "align", ";", "if", "(", "!", "CONST_INT_P", "(", "operands", "[", "2", "]", ")", "||", "!", "CONST_INT_P", "(", "operands", "[", "1", "]", ")", ")", "return", "false", ";", "length", "=", "UINTVAL", "(", "operands", "[", "1", "]", ")", ";", "if", "(", "length", ">", "64", ")", "return", "false", ";", "value", "=", "(", "UINTVAL", "(", "operands", "[", "2", "]", ")", "&", "0xFF", ")", ";", "align", "=", "UINTVAL", "(", "operands", "[", "3", "]", ")", ";", "if", "(", "TARGET_NEON", "&&", "length", ">=", "8", "&&", "current_tune", "->", "string_ops_prefer_neon", "&&", "arm_block_set_vect", "(", "dstbase", ",", "length", ",", "value", ",", "align", ")", ")", "return", "true", ";", "if", "(", "!", "unaligned_access", "&&", "(", "align", "&", "3", ")", "!=", "0", ")", "return", "arm_block_set_unaligned_non_vect", "(", "dstbase", ",", "length", ",", "value", ",", "align", ")", ";", "return", "arm_block_set_aligned_non_vect", "(", "dstbase", ",", "length", ",", "value", ",", "align", ")", ";", "}", ""], "natrual_language": ["Expand", "string", "store", "operation", ".", "Firstly", "we", "try", "to", "do", "that", "by", "using", "vectorization", "instructions", ",", "then", "try", "with", "ARM", "unaligned", "access", "and", "double-word", "store", "if", "profitable", ".", "OPERANDS", "[", "0", "]", "is", "the", "destination", ",", "OPERANDS", "[", "1", "]", "is", "the", "number", "of", "bytes", ",", "operands", "[", "2", "]", "is", "the", "value", "to", "initialize", "the", "memory", ",", "OPERANDS", "[", "3", "]", "is", "the", "known", "alignment", "of", "the", "destination", "."], "TS_V_token": ["arm", "0", "2", "1", "1", "64", "2", "0xFF", "3", "8", "3", "0"], "File": "arm", "Func": "arm_gen_setmem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45026, "Length": 158}
{"ground_truth": ["", "static", "rtx", "arm_gen_store_multiple_1", "(", "int", "count", ",", "int", "*", "regs", ",", "rtx", "*", "mems", ",", "rtx", "basereg", ",", "HOST_WIDE_INT", "wback_offset", ")", "{", "int", "i", "=", "0", ",", "j", ";", "rtx", "result", ";", "if", "(", "GET_CODE", "(", "basereg", ")", "==", "PLUS", ")", "basereg", "=", "XEXP", "(", "basereg", ",", "0", ")", ";", "if", "(", "!", "multiple_operation_profitable_p", "(", "false", ",", "count", ",", "0", ")", ")", "{", "rtx", "seq", ";", "start_sequence", "(", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "emit_move_insn", "(", "mems", "[", "i", "]", ",", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "i", "]", ")", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "emit_move_insn", "(", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "seq", "=", "get_insns", "(", ")", ";", "end_sequence", "(", ")", ";", "return", "seq", ";", "}", "result", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "(", "wback_offset", "!=", "0", "?", "1", ":", "0", ")", ")", ")", ";", "if", "(", "wback_offset", "!=", "0", ")", "{", "XVECEXP", "(", "result", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "basereg", ",", "plus_constant", "(", "Pmode", ",", "basereg", ",", "wback_offset", ")", ")", ";", "i", "=", "1", ";", "count", "++", ";", "}", "for", "(", "j", "=", "0", ";", "i", "<", "count", ";", "i", "++", ",", "j", "++", ")", "XVECEXP", "(", "result", ",", "0", ",", "i", ")", "=", "gen_rtx_SET", "(", "mems", "[", "j", "]", ",", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "j", "]", ")", ")", ";", "return", "result", ";", "}", ""], "natrual_language": ["Generate", "a", "store-multiple", "instruction", ".", "COUNT", "is", "the", "number", "of", "stores", "in", "the", "instruction", ";", "REGS", "and", "MEMS", "are", "arrays", "containing", "the", "operands", ".", "BASEREG", "is", "the", "base", "register", "to", "be", "used", "in", "addressing", "the", "memory", "operands", ".", "WBACK_OFFSET", "is", "nonzero", "if", "the", "instruction", "should", "update", "the", "base", "register", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0"], "File": "arm", "Func": "arm_gen_store_multiple_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45027, "Length": 242}
{"ground_truth": ["", "void", "arm_gen_unlikely_cbranch", "(", "enum", "rtx_code", "code", ",", "machine_mode", "cc_mode", ",", "rtx", "label_ref", ")", "{", "rtx", "x", ";", "x", "=", "gen_rtx_fmt_ee", "(", "code", ",", "VOIDmode", ",", "gen_rtx_REG", "(", "cc_mode", ",", "CC_REGNUM", ")", ",", "const0_rtx", ")", ";", "x", "=", "gen_rtx_IF_THEN_ELSE", "(", "VOIDmode", ",", "x", ",", "gen_rtx_LABEL_REF", "(", "VOIDmode", ",", "label_ref", ")", ",", "pc_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_rtx_SET", "(", "pc_rtx", ",", "x", ")", ")", ";", "}", ""], "natrual_language": ["Generate", "RTL", "for", "a", "conditional", "branch", "with", "rtx", "comparison", "CODE", "in", "mode", "CC_MODE", ".", "The", "destination", "of", "the", "unlikely", "conditional", "branch", "is", "LABEL_REF", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_gen_unlikely_cbranch", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45028, "Length": 64}
{"ground_truth": ["", "static", "tree", "arm_get_cookie_size", "(", "tree", "type", ")", "{", "tree", "size", ";", "if", "(", "!", "TARGET_AAPCS_BASED", ")", "return", "default_cxx_get_cookie_size", "(", "type", ")", ";", "size", "=", "build_int_cst", "(", "sizetype", ",", "8", ")", ";", "return", "size", ";", "}", ""], "natrual_language": ["The", "EABI", "specifies", "that", "all", "array", "cookies", "are", "8", "bytes", "long", "."], "TS_V_token": ["arm", "8"], "File": "arm", "Func": "arm_get_cookie_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45029, "Length": 35}
{"ground_truth": ["", "static", "arm_stack_offsets", "*", "arm_get_frame_offsets", "(", "void", ")", "{", "struct", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "&", "cfun", "->", "machine", "->", "stack_offsets", ";", "return", "offsets", ";", "}", ""], "natrual_language": ["Calculate", "stack", "offsets", ".", "These", "are", "used", "to", "calculate", "register", "elimination", "offsets", "and", "in", "prologue/epilogue", "code", ".", "Also", "calculates", "which", "registers", "should", "be", "saved", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_get_frame_offsets", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45030, "Length": 26}
{"ground_truth": ["", "opt_machine_mode", "arm_get_mask_mode", "(", "machine_mode", "mode", ")", "{", "if", "(", "TARGET_HAVE_MVE", ")", "return", "arm_mode_to_pred_mode", "(", "mode", ")", ";", "return", "default_get_mask_mode", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_VECTORIZE_GET_MASK_MODE", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_get_mask_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45031, "Length": 24}
{"ground_truth": ["", "static", "enum", "arm_pcs", "arm_get_pcs_model", "(", "const_tree", "type", ",", "const_tree", "decl", "ATTRIBUTE_UNUSED", ")", "{", "bool", "user_convention", "=", "false", ";", "enum", "arm_pcs", "user_pcs", "=", "arm_pcs_default", ";", "tree", "attr", ";", "gcc_assert", "(", "type", ")", ";", "attr", "=", "lookup_attribute", "(", "\"pcs\"", ",", "TYPE_ATTRIBUTES", "(", "type", ")", ")", ";", "if", "(", "attr", ")", "{", "user_pcs", "=", "arm_pcs_from_attribute", "(", "TREE_VALUE", "(", "attr", ")", ")", ";", "user_convention", "=", "true", ";", "}", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "bool", "base_rules", "=", "stdarg_p", "(", "type", ")", ";", "if", "(", "user_convention", ")", "{", "if", "(", "user_pcs", ">", "ARM_PCS_AAPCS_LOCAL", ")", "sorry", "(", "\"non-AAPCS derived PCS variant\"", ")", ";", "else", "if", "(", "base_rules", "&&", "user_pcs", "!=", "ARM_PCS_AAPCS", ")", "error", "(", "\"variadic functions must use the base AAPCS variant\"", ")", ";", "}", "if", "(", "base_rules", ")", "return", "ARM_PCS_AAPCS", ";", "else", "if", "(", "user_convention", ")", "return", "user_pcs", ";", "else", "if", "(", "decl", "&&", "flag_unit_at_a_time", ")", "{", "cgraph_node", "*", "local_info_node", "=", "cgraph_node", "::", "local_info_node", "(", "CONST_CAST_TREE", "(", "decl", ")", ")", ";", "if", "(", "local_info_node", "&&", "local_info_node", "->", "local", ")", "return", "ARM_PCS_AAPCS_LOCAL", ";", "}", "}", "else", "if", "(", "user_convention", "&&", "user_pcs", "!=", "arm_pcs_default", ")", "sorry", "(", "\"PCS variant\"", ")", ";", "return", "arm_pcs_default", ";", "}", ""], "natrual_language": ["Get", "the", "PCS", "variant", "to", "use", "for", "this", "call", ".", "TYPE", "is", "the", "function", "'s", "type", "specification", ",", "DECL", "is", "the", "specific", "declartion", ".", "DECL", "may", "be", "null", "if", "the", "call", "could", "be", "indirect", "or", "if", "this", "is", "a", "library", "call", "."], "TS_V_token": ["arm", "\"pcs\"", "\"non-AAPCS derived PCS variant\"", "\"variadic functions must use the base AAPCS variant\"", "\"PCS variant\""], "File": "arm", "Func": "arm_get_pcs_model", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45032, "Length": 176}
{"ground_truth": ["", "static", "int", "arm_get_strip_length", "(", "int", "c", ")", "{", "switch", "(", "c", ")", "{", "ARM_NAME_ENCODING_LENGTHS", "default", ":", "return", "0", ";", "}", "}", ""], "natrual_language": ["Return", "the", "length", "of", "a", "function", "name", "prefix", "that", "starts", "with", "the", "character", "'", "c", "'", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_get_strip_length", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45033, "Length": 21}
{"ground_truth": ["", "static", "int", "arm_get_vfp_saved_size", "(", "void", ")", "{", "unsigned", "int", "regno", ";", "int", "count", ";", "int", "saved", ";", "saved", "=", "0", ";", "if", "(", "TARGET_VFP_BASE", ")", "{", "count", "=", "0", ";", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<", "LAST_VFP_REGNUM", ";", "regno", "+=", "2", ")", "{", "if", "(", "!", "reg_needs_saving_p", "(", "regno", ")", "&&", "!", "reg_needs_saving_p", "(", "regno", "+", "1", ")", ")", "{", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", ";", "}", "count", "=", "0", ";", "}", "else", "count", "++", ";", "}", "if", "(", "count", ">", "0", ")", "{", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "count", "++", ";", "saved", "+=", "count", "*", "8", ";", "}", "}", "return", "saved", ";", "}", ""], "natrual_language": ["Return", "the", "number", "of", "bytes", "required", "to", "save", "VFP", "registers", "."], "TS_V_token": ["arm", "0", "0", "2", "1", "0", "2", "8", "0", "0", "2", "8"], "File": "arm", "Func": "arm_get_vfp_saved_size", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45034, "Length": 129}
{"ground_truth": ["", "static", "tree", "arm_gimplify_va_arg_expr", "(", "tree", "valist", ",", "tree", "type", ",", "gimple_seq", "*", "pre_p", ",", "gimple_seq", "*", "post_p", ")", "{", "valist", "=", "arm_extract_valist_ptr", "(", "valist", ")", ";", "return", "std_gimplify_va_arg_expr", "(", "valist", ",", "type", ",", "pre_p", ",", "post_p", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_GIMPLIFY_VA_ARG_EXPR", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_gimplify_va_arg_expr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45035, "Length": 39}
{"ground_truth": ["", "static", "tree", "arm_handle_cmse_nonsecure_call", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", ",", "int", ",", "bool", "*", "no_add_attrs", ")", "{", "tree", "decl", "=", "NULL_TREE", ",", "fntype", "=", "NULL_TREE", ";", "tree", "type", ";", "if", "(", "!", "use_cmse", ")", "{", "*", "no_add_attrs", "=", "true", ";", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute ignored without %<-mcmse%> \"", "\"option\"", ",", "name", ")", ";", "return", "NULL_TREE", ";", "}", "if", "(", "TREE_CODE", "(", "*", "node", ")", "==", "VAR_DECL", "||", "TREE_CODE", "(", "*", "node", ")", "==", "TYPE_DECL", ")", "{", "decl", "=", "*", "node", ";", "fntype", "=", "TREE_TYPE", "(", "decl", ")", ";", "}", "while", "(", "fntype", "!=", "NULL_TREE", "&&", "TREE_CODE", "(", "fntype", ")", "==", "POINTER_TYPE", ")", "fntype", "=", "TREE_TYPE", "(", "fntype", ")", ";", "if", "(", "!", "decl", "||", "TREE_CODE", "(", "fntype", ")", "!=", "FUNCTION_TYPE", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute only applies to base type of a \"", "\"function pointer\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "return", "NULL_TREE", ";", "}", "*", "no_add_attrs", "|=", "cmse_func_args_or_return_in_stack", "(", "NULL", ",", "name", ",", "fntype", ")", ";", "if", "(", "*", "no_add_attrs", ")", "return", "NULL_TREE", ";", "type", "=", "TREE_TYPE", "(", "decl", ")", ";", "type", "=", "build_distinct_type_copy", "(", "type", ")", ";", "TREE_TYPE", "(", "decl", ")", "=", "type", ";", "fntype", "=", "type", ";", "while", "(", "TREE_CODE", "(", "fntype", ")", "!=", "FUNCTION_TYPE", ")", "{", "type", "=", "fntype", ";", "fntype", "=", "TREE_TYPE", "(", "fntype", ")", ";", "fntype", "=", "build_distinct_type_copy", "(", "fntype", ")", ";", "TREE_TYPE", "(", "type", ")", "=", "fntype", ";", "}", "tree", "attrs", "=", "tree_cons", "(", "get_identifier", "(", "\"cmse_nonsecure_call\"", ")", ",", "NULL_TREE", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ";", "TYPE_ATTRIBUTES", "(", "fntype", ")", "=", "attrs", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Called", "upon", "detection", "of", "the", "use", "of", "the", "cmse_nonsecure_call", "attribute", ",", "this", "function", "will", "check", "whether", "the", "attribute", "is", "allowed", "here", "and", "will", "add", "the", "attribute", "to", "the", "function", "type", "tree", "or", "otherwise", "issue", "a", "diagnostic", ".", "The", "reason", "we", "check", "this", "at", "declaration", "time", "is", "to", "only", "allow", "the", "use", "of", "the", "attribute", "with", "declarations", "of", "function", "pointers", "and", "not", "function", "declarations", ".", "This", "function", "checks", "NODE", "is", "of", "the", "expected", "type", "and", "issues", "diagnostics", "otherwise", "using", "NAME", ".", "If", "it", "is", "not", "of", "the", "expected", "type", "*", "NO_ADD_ATTRS", "will", "be", "set", "to", "true", "."], "TS_V_token": ["arm", "\"%qE attribute ignored without %<-mcmse%> \"", "\"option\"", "\"%qE attribute only applies to base type of a \"", "\"function pointer\"", "\"cmse_nonsecure_call\""], "File": "arm", "Func": "arm_handle_cmse_nonsecure_call", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45036, "Length": 251}
{"ground_truth": ["", "static", "tree", "arm_handle_cmse_nonsecure_entry", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", ",", "int", ",", "bool", "*", "no_add_attrs", ")", "{", "tree", "fndecl", ";", "if", "(", "!", "use_cmse", ")", "{", "*", "no_add_attrs", "=", "true", ";", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute ignored without %<-mcmse%> \"", "\"option\"", ",", "name", ")", ";", "return", "NULL_TREE", ";", "}", "if", "(", "TREE_CODE", "(", "*", "node", ")", "!=", "FUNCTION_DECL", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute only applies to functions\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "return", "NULL_TREE", ";", "}", "fndecl", "=", "*", "node", ";", "if", "(", "!", "TREE_PUBLIC", "(", "fndecl", ")", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute has no effect on functions \"", "\"with static linkage\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "return", "NULL_TREE", ";", "}", "*", "no_add_attrs", "|=", "cmse_func_args_or_return_in_stack", "(", "fndecl", ",", "name", ",", "TREE_TYPE", "(", "fndecl", ")", ")", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Called", "upon", "detection", "of", "the", "use", "of", "the", "cmse_nonsecure_entry", "attribute", ",", "this", "function", "will", "check", "whether", "the", "attribute", "is", "allowed", "here", "and", "will", "add", "the", "attribute", "to", "the", "function", "declaration", "tree", "or", "otherwise", "issue", "a", "warning", "."], "TS_V_token": ["arm", "\"%qE attribute ignored without %<-mcmse%> \"", "\"option\"", "\"%qE attribute only applies to functions\"", "\"%qE attribute has no effect on functions \"", "\"with static linkage\""], "File": "arm", "Func": "arm_handle_cmse_nonsecure_entry", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45037, "Length": 129}
{"ground_truth": ["", "static", "tree", "arm_handle_fndecl_attribute", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", "args", "ATTRIBUTE_UNUSED", ",", "int", "flags", "ATTRIBUTE_UNUSED", ",", "bool", "*", "no_add_attrs", ")", "{", "if", "(", "TREE_CODE", "(", "*", "node", ")", "!=", "FUNCTION_DECL", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute only applies to functions\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Handle", "an", "attribute", "requiring", "a", "FUNCTION_DECL", ";", "arguments", "as", "in", "struct", "attribute_spec.handler", "."], "TS_V_token": ["arm", "\"%qE attribute only applies to functions\""], "File": "arm", "Func": "arm_handle_fndecl_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45038, "Length": 54}
{"ground_truth": ["", "static", "tree", "arm_handle_isr_attribute", "(", "tree", "*", "node", ",", "tree", "name", ",", "tree", "args", ",", "int", "flags", ",", "bool", "*", "no_add_attrs", ")", "{", "if", "(", "DECL_P", "(", "*", "node", ")", ")", "{", "if", "(", "TREE_CODE", "(", "*", "node", ")", "!=", "FUNCTION_DECL", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute only applies to functions\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "else", "if", "(", "TARGET_VFP_BASE", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"FP registers might be clobbered despite %qE attribute: compile with %<-mgeneral-regs-only%>\"", ",", "name", ")", ";", "}", "}", "else", "{", "if", "(", "TREE_CODE", "(", "*", "node", ")", "==", "FUNCTION_TYPE", "||", "TREE_CODE", "(", "*", "node", ")", "==", "METHOD_TYPE", ")", "{", "if", "(", "arm_isr_value", "(", "args", ")", "==", "ARM_FT_UNKNOWN", ")", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute ignored\"", ",", "name", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "}", "else", "if", "(", "TREE_CODE", "(", "*", "node", ")", "==", "POINTER_TYPE", "&&", "(", "TREE_CODE", "(", "TREE_TYPE", "(", "*", "node", ")", ")", "==", "FUNCTION_TYPE", "||", "TREE_CODE", "(", "TREE_TYPE", "(", "*", "node", ")", ")", "==", "METHOD_TYPE", ")", "&&", "arm_isr_value", "(", "args", ")", "!=", "ARM_FT_UNKNOWN", ")", "{", "*", "node", "=", "build_variant_type_copy", "(", "*", "node", ")", ";", "TREE_TYPE", "(", "*", "node", ")", "=", "build_type_attribute_variant", "(", "TREE_TYPE", "(", "*", "node", ")", ",", "tree_cons", "(", "name", ",", "args", ",", "TYPE_ATTRIBUTES", "(", "TREE_TYPE", "(", "*", "node", ")", ")", ")", ")", ";", "*", "no_add_attrs", "=", "true", ";", "}", "else", "{", "if", "(", "flags", "&", "(", "(", "int", ")", "ATTR_FLAG_DECL_NEXT", "|", "(", "int", ")", "ATTR_FLAG_FUNCTION_NEXT", "|", "(", "int", ")", "ATTR_FLAG_ARRAY_NEXT", ")", ")", "{", "*", "no_add_attrs", "=", "true", ";", "return", "tree_cons", "(", "name", ",", "args", ",", "NULL_TREE", ")", ";", "}", "else", "{", "warning", "(", "OPT_Wattributes", ",", "\"%qE attribute ignored\"", ",", "name", ")", ";", "}", "}", "}", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Handle", "an", "``", "interrupt", "''", "or", "``", "isr", "''", "attribute", ";", "arguments", "as", "in", "struct", "attribute_spec.handler", "."], "TS_V_token": ["arm", "\"%qE attribute only applies to functions\"", "\"FP registers might be clobbered despite %qE attribute: compile with %<-mgeneral-regs-only%>\"", "\"%qE attribute ignored\"", "\"%qE attribute ignored\""], "File": "arm", "Func": "arm_handle_isr_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45039, "Length": 268}
{"ground_truth": ["", "static", "tree", "arm_handle_notshared_attribute", "(", "tree", "*", "node", ",", "tree", "name", "ATTRIBUTE_UNUSED", ",", "tree", "args", "ATTRIBUTE_UNUSED", ",", "int", "flags", "ATTRIBUTE_UNUSED", ",", "bool", "*", "no_add_attrs", ")", "{", "tree", "decl", "=", "TYPE_NAME", "(", "*", "node", ")", ";", "if", "(", "decl", ")", "{", "DECL_VISIBILITY", "(", "decl", ")", "=", "VISIBILITY_HIDDEN", ";", "DECL_VISIBILITY_SPECIFIED", "(", "decl", ")", "=", "1", ";", "*", "no_add_attrs", "=", "false", ";", "}", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Handle", "the", "``", "notshared", "''", "attribute", ".", "This", "attribute", "is", "another", "way", "of", "requesting", "hidden", "visibility", ".", "ARM", "'s", "compiler", "supports", "``", "__declspec", "(", "notshared", ")", "''", ";", "we", "support", "the", "same", "thing", "via", "an", "attribute", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_handle_notshared_attribute", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45040, "Length": 63}
{"ground_truth": ["", "static", "bool", "arm_hard_regno_mode_ok", "(", "unsigned", "int", "regno", ",", "machine_mode", "mode", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_CC", ")", "return", "(", "regno", "==", "CC_REGNUM", "||", "(", "TARGET_VFP_BASE", "&&", "regno", "==", "VFPCC_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "CC_REGNUM", "&&", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_CC", ")", "return", "false", ";", "if", "(", "IS_VPR_REGNUM", "(", "regno", ")", ")", "return", "mode", "==", "HImode", "||", "mode", "==", "V16BImode", "||", "mode", "==", "V8BImode", "||", "mode", "==", "V4BImode", ";", "if", "(", "TARGET_THUMB1", ")", "return", "(", "ARM_NUM_REGS", "(", "mode", ")", "<", "2", ")", "||", "(", "regno", "<", "LAST_LO_REGNUM", ")", ";", "if", "(", "TARGET_VFP_BASE", "&&", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "mode", "==", "DFmode", "||", "mode", "==", "DImode", ")", "return", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ";", "if", "(", "mode", "==", "HFmode", "||", "mode", "==", "BFmode", "||", "mode", "==", "HImode", "||", "mode", "==", "SFmode", "||", "mode", "==", "SImode", ")", "return", "VFP_REGNO_OK_FOR_SINGLE", "(", "regno", ")", ";", "if", "(", "TARGET_NEON", ")", "return", "(", "VALID_NEON_DREG_MODE", "(", "mode", ")", "&&", "VFP_REGNO_OK_FOR_DOUBLE", "(", "regno", ")", ")", "||", "(", "VALID_NEON_QREG_MODE", "(", "mode", ")", "&&", "NEON_REGNO_OK_FOR_QUAD", "(", "regno", ")", ")", "||", "(", "mode", "==", "TImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "2", ")", ")", "||", "(", "mode", "==", "EImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "3", ")", ")", "||", "(", "mode", "==", "OImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "4", ")", ")", "||", "(", "mode", "==", "CImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "6", ")", ")", "||", "(", "mode", "==", "XImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "8", ")", ")", ";", "if", "(", "TARGET_HAVE_MVE", ")", "return", "(", "(", "VALID_MVE_MODE", "(", "mode", ")", "&&", "NEON_REGNO_OK_FOR_QUAD", "(", "regno", ")", ")", "||", "(", "mode", "==", "OImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "4", ")", ")", "||", "(", "mode", "==", "XImode", "&&", "NEON_REGNO_OK_FOR_NREGS", "(", "regno", ",", "8", ")", ")", ")", ";", "return", "false", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "{", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "mode", "==", "SImode", ";", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ";", "}", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", ")", "{", "if", "(", "ARM_NUM_REGS", "(", "mode", ")", ">", "4", ")", "return", "false", ";", "if", "(", "TARGET_THUMB2", "&&", "!", "(", "TARGET_HAVE_MVE", "||", "TARGET_CDE", ")", ")", "return", "true", ";", "return", "!", "(", "(", "TARGET_LDRD", "||", "TARGET_CDE", ")", "&&", "GET_MODE_SIZE", "(", "mode", ")", ">", "4", "&&", "(", "regno", "&", "1", ")", "!=", "0", ")", ";", "}", "if", "(", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_INT", ";", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "REGNO", "is", "a", "valid", "register", "for", "holding", "a", "quantity", "of", "type", "MODE", "."], "TS_V_token": ["arm", "2", "2", "3", "4", "6", "8", "4", "8", "4", "4", "1", "0"], "File": "arm", "Func": "arm_hard_regno_mode_ok", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45041, "Length": 405}
{"ground_truth": ["", "static", "unsigned", "int", "arm_hard_regno_nregs", "(", "unsigned", "int", "regno", ",", "machine_mode", "mode", ")", "{", "if", "(", "IS_VPR_REGNUM", "(", "regno", ")", ")", "return", "CEIL", "(", "GET_MODE_SIZE", "(", "mode", ")", ",", "2", ")", ";", "if", "(", "TARGET_32BIT", "&&", "regno", ">", "PC_REGNUM", "&&", "regno", "!=", "FRAME_POINTER_REGNUM", "&&", "regno", "!=", "ARG_POINTER_REGNUM", "&&", "!", "IS_VFP_REGNUM", "(", "regno", ")", ")", "return", "1", ";", "return", "ARM_NUM_REGS", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_HARD_REGNO_NREGS", ".", "On", "the", "ARM", "core", "regs", "are", "UNITS_PER_WORD", "bytes", "wide", "."], "TS_V_token": ["arm", "2", "1"], "File": "arm", "Func": "arm_hard_regno_nregs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45042, "Length": 63}
{"ground_truth": ["", "static", "bool", "arm_have_conditional_execution", "(", "void", ")", "{", "bool", "has_cond_exec", ",", "enable_ifcvt_trans", ";", "has_cond_exec", "=", "!", "TARGET_THUMB1", ";", "enable_ifcvt_trans", "=", "TARGET_COND_ARITH", "&&", "!", "reload_completed", ";", "return", "has_cond_exec", "&&", "!", "enable_ifcvt_trans", ";", "}", ""], "natrual_language": ["Implement", "the", "TARGET_HAVE_CONDITIONAL_EXECUTION", "hook", ".", "All", "modes", "except", "THUMB1", "have", "conditional", "execution", ".", "If", "we", "have", "conditional", "arithmetic", ",", "return", "false", "before", "reload", "to", "enable", "some", "ifcvt", "transformations", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_have_conditional_execution", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45043, "Length": 31}
{"ground_truth": ["", "static", "const", "char", "*", "arm_identify_fpu_from_isa", "(", "sbitmap", "isa", ")", "{", "auto_sbitmap", "fpubits", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "cand_fpubits", "(", "isa_num_bits", ")", ";", "bitmap_and", "(", "fpubits", ",", "isa", ",", "isa_all_fpubits_internal", ")", ";", "if", "(", "bitmap_empty_p", "(", "fpubits", ")", ")", "return", "\"softvfp\"", ";", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "TARGET_FPU_auto", ";", "i", "++", ")", "{", "arm_initialize_isa", "(", "cand_fpubits", ",", "all_fpus", "[", "i", "]", ".", "isa_bits", ")", ";", "if", "(", "bitmap_equal_p", "(", "fpubits", ",", "cand_fpubits", ")", ")", "return", "all_fpus", "[", "i", "]", ".", "name", ";", "}", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Match", "an", "ISA", "feature", "bitmap", "to", "a", "named", "FPU", ".", "We", "always", "use", "the", "first", "entry", "that", "exactly", "matches", "the", "feature", "set", ",", "so", "that", "we", "effectively", "canonicalize", "the", "FPU", "name", "for", "the", "assembler", "."], "TS_V_token": ["arm", "\"softvfp\"", "0"], "File": "arm", "Func": "arm_identify_fpu_from_isa", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45044, "Length": 92}
{"ground_truth": ["", "void", "arm_init_cumulative_args", "(", "CUMULATIVE_ARGS", "*", "pcum", ",", "tree", "fntype", ",", "rtx", "libname", ",", "tree", "fndecl", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "fntype", ")", "pcum", "->", "pcs_variant", "=", "arm_get_pcs_model", "(", "fntype", ",", "fndecl", ")", ";", "else", "pcum", "->", "pcs_variant", "=", "arm_pcs_default", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "if", "(", "arm_libcall_uses_aapcs_base", "(", "libname", ")", ")", "pcum", "->", "pcs_variant", "=", "ARM_PCS_AAPCS", ";", "pcum", "->", "aapcs_ncrn", "=", "pcum", "->", "aapcs_next_ncrn", "=", "0", ";", "pcum", "->", "aapcs_reg", "=", "NULL_RTX", ";", "pcum", "->", "aapcs_partial", "=", "0", ";", "pcum", "->", "aapcs_arg_processed", "=", "false", ";", "pcum", "->", "aapcs_cprc_slot", "=", "-", "1", ";", "pcum", "->", "can_split", "=", "true", ";", "if", "(", "pcum", "->", "pcs_variant", "!=", "ARM_PCS_AAPCS", ")", "{", "int", "i", ";", "for", "(", "i", "=", "0", ";", "i", "<", "ARM_NUM_COPROC_SLOTS", ";", "i", "++", ")", "{", "pcum", "->", "aapcs_cprc_failed", "[", "i", "]", "=", "false", ";", "aapcs_cp_arg_layout", "[", "i", "]", ".", "cum_init", "(", "pcum", ",", "fntype", ",", "libname", ",", "fndecl", ")", ";", "}", "}", "return", ";", "}", "pcum", "->", "nregs", "=", "0", ";", "pcum", "->", "iwmmxt_nregs", "=", "0", ";", "pcum", "->", "can_split", "=", "true", ";", "pcum", "->", "named_count", "=", "0", ";", "pcum", "->", "nargs", "=", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "fntype", ")", "{", "tree", "fn_arg", ";", "for", "(", "fn_arg", "=", "TYPE_ARG_TYPES", "(", "fntype", ")", ";", "fn_arg", ";", "fn_arg", "=", "TREE_CHAIN", "(", "fn_arg", ")", ")", "pcum", "->", "named_count", "+=", "1", ";", "if", "(", "!", "pcum", "->", "named_count", ")", "pcum", "->", "named_count", "=", "INT_MAX", ";", "}", "}", ""], "natrual_language": ["Initialize", "a", "variable", "CUM", "of", "type", "CUMULATIVE_ARGS", "for", "a", "call", "to", "a", "function", "whose", "data", "type", "is", "FNTYPE", ".", "For", "a", "library", "call", ",", "FNTYPE", "is", "NULL", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "0", "0", "0", "0", "1"], "File": "arm", "Func": "arm_init_cumulative_args", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45045, "Length": 238}
{"ground_truth": ["", "void", "arm_init_expanders", "(", "void", ")", "{", "init_machine_status", "=", "arm_init_machine_status", ";", "if", "(", "cfun", ")", "mark_reg_pointer", "(", "arg_pointer_rtx", ",", "PARM_BOUNDARY", ")", ";", "}", ""], "natrual_language": ["Do", "anything", "needed", "before", "RTL", "is", "emitted", "for", "each", "function", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_init_expanders", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45046, "Length": 22}
{"ground_truth": ["", "static", "struct", "machine_function", "*", "arm_init_machine_status", "(", "void", ")", "{", "struct", "machine_function", "*", "machine", ";", "machine", "=", "ggc_cleared_alloc", "<", "machine_function", ">", "(", ")", ";", "machine", "->", "func_type", "=", "ARM_FT_UNKNOWN", ";", "machine", "->", "static_chain_stack_bytes", "=", "-", "1", ";", "return", "machine", ";", "}", ""], "natrual_language": ["Functions", "to", "save", "and", "restore", "machine-specific", "function", "data", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_init_machine_status", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45047, "Length": 40}
{"ground_truth": ["", "static", "void", "arm_insert_attributes", "(", "tree", "fndecl", ",", "tree", "*", "attributes", ")", "{", "const", "char", "*", "mode", ";", "if", "(", "!", "TARGET_FLIP_THUMB", ")", "return", ";", "if", "(", "TREE_CODE", "(", "fndecl", ")", "!=", "FUNCTION_DECL", "||", "DECL_EXTERNAL", "(", "fndecl", ")", "||", "fndecl_built_in_p", "(", "fndecl", ")", "||", "DECL_ARTIFICIAL", "(", "fndecl", ")", ")", "return", ";", "if", "(", "current_function_decl", ")", "{", "mode", "=", "TARGET_THUMB", "?", "\"thumb\"", ":", "\"arm\"", ";", "add_attribute", "(", "mode", ",", "attributes", ")", ";", "return", ";", "}", "if", "(", "lookup_attribute", "(", "\"target\"", ",", "*", "attributes", ")", "!=", "NULL", ")", "return", ";", "mode", "=", "thumb_flipper", "?", "\"thumb\"", ":", "\"arm\"", ";", "add_attribute", "(", "mode", ",", "attributes", ")", ";", "thumb_flipper", "=", "!", "thumb_flipper", ";", "}", ""], "natrual_language": ["For", "testing", ".", "Insert", "thumb", "or", "arm", "modes", "alternatively", "on", "functions", "."], "TS_V_token": ["arm", "\"thumb\"", "\"arm\"", "\"target\"", "\"thumb\"", "\"arm\""], "File": "arm", "Func": "arm_insert_attributes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45048, "Length": 108}
{"ground_truth": ["", "static", "const", "char", "*", "arm_invalid_binary_op", "(", "int", "op", "ATTRIBUTE_UNUSED", ",", "const_tree", "type1", ",", "const_tree", "type2", ")", "{", "if", "(", "element_mode", "(", "type1", ")", "==", "BFmode", "||", "element_mode", "(", "type2", ")", "==", "BFmode", ")", "return", "N_", "(", "\"operation not permitted on type %\"", ")", ";", "return", "NULL", ";", "}", ""], "natrual_language": ["Return", "the", "diagnostic", "message", "string", "if", "the", "binary", "operation", "OP", "is", "not", "permitted", "on", "TYPE1", "and", "TYPE2", ",", "NULL", "otherwise", "."], "TS_V_token": ["arm", "\"operation not permitted on type %\""], "File": "arm", "Func": "arm_invalid_binary_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45049, "Length": 43}
{"ground_truth": ["", "static", "const", "char", "*", "arm_invalid_conversion", "(", "const_tree", "fromtype", ",", "const_tree", "totype", ")", "{", "if", "(", "element_mode", "(", "fromtype", ")", "!=", "element_mode", "(", "totype", ")", ")", "{", "if", "(", "TYPE_MODE", "(", "fromtype", ")", "==", "BFmode", ")", "return", "N_", "(", "\"invalid conversion from type %\"", ")", ";", "if", "(", "TYPE_MODE", "(", "totype", ")", "==", "BFmode", ")", "return", "N_", "(", "\"invalid conversion to type %\"", ")", ";", "}", "return", "NULL", ";", "}", ""], "natrual_language": ["Return", "the", "diagnostic", "message", "string", "if", "conversion", "from", "FROMTYPE", "to", "TOTYPE", "is", "not", "allowed", ",", "NULL", "otherwise", "."], "TS_V_token": ["arm", "\"invalid conversion from type %\"", "\"invalid conversion to type %\""], "File": "arm", "Func": "arm_invalid_conversion", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45050, "Length": 61}
{"ground_truth": ["", "static", "const", "char", "*", "arm_invalid_unary_op", "(", "int", "op", ",", "const_tree", "type", ")", "{", "if", "(", "element_mode", "(", "type", ")", "==", "BFmode", "&&", "op", "!=", "ADDR_EXPR", ")", "return", "N_", "(", "\"operation not permitted on type %\"", ")", ";", "return", "NULL", ";", "}", ""], "natrual_language": ["Return", "the", "diagnostic", "message", "string", "if", "the", "unary", "operation", "OP", "is", "not", "permitted", "on", "TYPE", ",", "NULL", "otherwise", "."], "TS_V_token": ["arm", "\"operation not permitted on type %\""], "File": "arm", "Func": "arm_invalid_unary_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45051, "Length": 36}
{"ground_truth": ["", "static", "const", "char", "*", "arm_invalid_within_doloop", "(", "const", "rtx_insn", "*", "insn", ")", "{", "if", "(", "!", "TARGET_HAVE_LOB", ")", "return", "default_invalid_within_doloop", "(", "insn", ")", ";", "if", "(", "CALL_P", "(", "insn", ")", ")", "return", "\"Function call in the loop.\"", ";", "if", "(", "reg_mentioned_p", "(", "gen_rtx_REG", "(", "SImode", ",", "LR_REGNUM", ")", ",", "insn", ")", ")", "return", "\"LR is used inside loop.\"", ";", "return", "NULL", ";", "}", ""], "natrual_language": ["NULL", "if", "insn", "INSN", "is", "valid", "within", "a", "low-overhead", "loop", ".", "Otherwise", "return", "why", "doloop", "can", "not", "be", "applied", "."], "TS_V_token": ["arm", "\"Function call in the loop.\"", "\"LR is used inside loop.\""], "File": "arm", "Func": "arm_invalid_within_doloop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45052, "Length": 54}
{"ground_truth": ["", "static", "unsigned", "long", "arm_isr_value", "(", "tree", "argument", ")", "{", "const", "isr_attribute_arg", "*", "ptr", ";", "const", "char", "*", "arg", ";", "if", "(", "!", "arm_arch_notm", ")", "return", "ARM_FT_NORMAL", "|", "ARM_FT_STACKALIGN", ";", "if", "(", "argument", "==", "NULL_TREE", ")", "return", "ARM_FT_ISR", ";", "if", "(", "TREE_VALUE", "(", "argument", ")", "==", "NULL_TREE", "||", "TREE_CODE", "(", "TREE_VALUE", "(", "argument", ")", ")", "!=", "STRING_CST", ")", "return", "ARM_FT_UNKNOWN", ";", "arg", "=", "TREE_STRING_POINTER", "(", "TREE_VALUE", "(", "argument", ")", ")", ";", "for", "(", "ptr", "=", "isr_attribute_args", ";", "ptr", "->", "arg", "!=", "NULL", ";", "ptr", "++", ")", "if", "(", "streq", "(", "arg", ",", "ptr", "->", "arg", ")", ")", "return", "ptr", "->", "return_value", ";", "return", "ARM_FT_UNKNOWN", ";", "}", ""], "natrual_language": ["Returns", "the", "(", "interrupt", ")", "function", "type", "of", "the", "current", "function", ",", "or", "ARM_FT_UNKNOWN", "if", "the", "type", "can", "not", "be", "determined", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_isr_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45053, "Length": 105}
{"ground_truth": ["", "static", "int", "arm_issue_rate", "(", "void", ")", "{", "return", "current_tune", "->", "issue_rate", ";", "}", ""], "natrual_language": ["Most", "ARM", "cores", "are", "single", "issue", ",", "but", "some", "newer", "ones", "can", "dual", "issue", ".", "The", "scheduler", "descriptions", "rely", "on", "this", "being", "correct", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_issue_rate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45054, "Length": 13}
{"ground_truth": ["", "extern", "bool", "arm_is_constant_pool_ref", "(", "rtx", "x", ")", "{", "return", "(", "MEM_P", "(", "x", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "XEXP", "(", "x", ",", "0", ")", ")", ")", ";", "}", ""], "natrual_language": ["return", "TRUE", "if", "x", "is", "a", "reference", "to", "a", "value", "in", "a", "constant", "pool"], "TS_V_token": ["arm", "0", "0"], "File": "arm", "Func": "arm_is_constant_pool_ref", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45055, "Length": 39}
{"ground_truth": ["", "bool", "arm_is_long_call_p", "(", "tree", "decl", ")", "{", "tree", "attrs", ";", "if", "(", "!", "decl", ")", "return", "TARGET_LONG_CALLS", ";", "attrs", "=", "TYPE_ATTRIBUTES", "(", "TREE_TYPE", "(", "decl", ")", ")", ";", "if", "(", "lookup_attribute", "(", "\"short_call\"", ",", "attrs", ")", ")", "return", "false", ";", "if", "(", "!", "flag_reorder_blocks_and_partition", "&&", "TREE_CODE", "(", "decl", ")", "==", "FUNCTION_DECL", "&&", "arm_function_in_section_p", "(", "decl", ",", "current_function_section", "(", ")", ")", ")", "return", "false", ";", "if", "(", "lookup_attribute", "(", "\"long_call\"", ",", "attrs", ")", ")", "return", "true", ";", "return", "TARGET_LONG_CALLS", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "a", "32-bit", "``", "long_call", "''", "should", "be", "generated", "for", "a", "call", "from", "the", "current", "function", "to", "DECL", ".", "We", "generate", "a", "long_call", "if", "the", "function", ":", "a.", "has", "an", "__attribute__", "(", "(", "long", "call", ")", ")", "or", "b.", "is", "within", "the", "scope", "of", "a", "#", "pragma", "long_calls", "or", "c.", "the", "-mlong-calls", "command", "line", "switch", "has", "been", "specified", "However", "we", "do", "not", "generate", "a", "long", "call", "if", "the", "function", ":", "d.", "has", "an", "__attribute__", "(", "(", "short_call", ")", ")", "or", "e.", "is", "inside", "the", "scope", "of", "a", "#", "pragma", "no_long_calls", "or", "f.", "is", "defined", "in", "the", "same", "section", "as", "the", "current", "function", "."], "TS_V_token": ["arm", "\"short_call\"", "\"long_call\""], "File": "arm", "Func": "arm_is_long_call_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45056, "Length": 80}
{"ground_truth": ["", "static", "bool", "arm_is_segment_info_known", "(", "rtx", "orig", ",", "bool", "*", "is_readonly", ")", "{", "*", "is_readonly", "=", "false", ";", "if", "(", "LABEL_REF_P", "(", "orig", ")", ")", "{", "*", "is_readonly", "=", "true", ";", "return", "true", ";", "}", "if", "(", "SYMBOL_REF_P", "(", "orig", ")", ")", "{", "if", "(", "CONSTANT_POOL_ADDRESS_P", "(", "orig", ")", ")", "{", "*", "is_readonly", "=", "true", ";", "return", "true", ";", "}", "if", "(", "SYMBOL_REF_LOCAL_P", "(", "orig", ")", "&&", "!", "SYMBOL_REF_EXTERNAL_P", "(", "orig", ")", "&&", "SYMBOL_REF_DECL", "(", "orig", ")", "&&", "(", "!", "DECL_P", "(", "SYMBOL_REF_DECL", "(", "orig", ")", ")", "||", "!", "DECL_COMMON", "(", "SYMBOL_REF_DECL", "(", "orig", ")", ")", ")", ")", "{", "tree", "decl", "=", "SYMBOL_REF_DECL", "(", "orig", ")", ";", "tree", "init", "=", "(", "TREE_CODE", "(", "decl", ")", "==", "VAR_DECL", ")", "?", "DECL_INITIAL", "(", "decl", ")", ":", "(", "TREE_CODE", "(", "decl", ")", "==", "CONSTRUCTOR", ")", "?", "decl", ":", "0", ";", "int", "reloc", "=", "0", ";", "bool", "named_section", ",", "readonly", ";", "if", "(", "init", "&&", "init", "!=", "error_mark_node", ")", "reloc", "=", "compute_reloc_for_constant", "(", "init", ")", ";", "named_section", "=", "TREE_CODE", "(", "decl", ")", "==", "VAR_DECL", "&&", "lookup_attribute", "(", "\"section\"", ",", "DECL_ATTRIBUTES", "(", "decl", ")", ")", ";", "readonly", "=", "decl_readonly_section", "(", "decl", ",", "reloc", ")", ";", "if", "(", "named_section", ")", "return", "false", ";", "*", "is_readonly", "=", "readonly", ";", "return", "true", ";", "}", "return", "false", ";", "}", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Try", "to", "determine", "whether", "an", "object", ",", "referenced", "via", "ORIG", ",", "will", "be", "placed", "in", "the", "text", "or", "data", "segment", ".", "This", "is", "used", "in", "FDPIC", "mode", ",", "to", "decide", "which", "relocations", "to", "use", "when", "accessing", "ORIG", ".", "*", "IS_READONLY", "is", "set", "to", "true", "if", "ORIG", "is", "a", "read-only", "location", ",", "false", "otherwise", ".", "Return", "true", "if", "we", "could", "determine", "the", "location", "of", "ORIG", ",", "false", "otherwise", ".", "*", "IS_READONLY", "is", "valid", "only", "when", "we", "return", "true", "."], "TS_V_token": ["arm", "0", "0", "\"section\""], "File": "arm", "Func": "arm_is_segment_info_known", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45057, "Length": 214}
{"ground_truth": ["", "int", "arm_legitimate_address_outer_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "RTX_CODE", "outer", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "if", "(", "use_ldrd", "&&", "GET_CODE", "(", "x", ")", "==", "POST_MODIFY", "&&", "REG_P", "(", "addend", ")", ")", "return", "0", ";", "return", "(", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "addend", ",", "outer", ",", "strict_p", ")", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "(", "(", "CONST_INT_P", "(", "xop1", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop1", ",", "outer", ",", "strict_p", ")", ")", "||", "(", "!", "strict_p", "&&", "will_be_in_index_register", "(", "xop1", ")", ")", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop0", ",", "outer", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "MINUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "arm_legitimate_index_p", "(", "mode", ",", "xop1", ",", "outer", ",", "strict_p", ")", ")", ";", "}", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "ARM", "state", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "1", "0"], "File": "arm", "Func": "arm_legitimate_address_outer_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45058, "Length": 497}
{"ground_truth": ["", "bool", "arm_legitimate_address_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "bool", "strict_p", ")", "{", "if", "(", "TARGET_ARM", ")", "return", "arm_legitimate_address_outer_p", "(", "mode", ",", "x", ",", "SET", ",", "strict_p", ")", ";", "else", "if", "(", "TARGET_THUMB2", ")", "return", "thumb2_legitimate_address_p", "(", "mode", ",", "x", ",", "strict_p", ")", ";", "else", "return", "thumb1_legitimate_address_p", "(", "mode", ",", "x", ",", "strict_p", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "ARM", "state", "address", "operand", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_legitimate_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45059, "Length": 56}
{"ground_truth": ["", "static", "bool", "arm_legitimate_constant_p_1", "(", "machine_mode", ",", "rtx", "x", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", "&&", "!", "neon_make_constant", "(", "x", ",", "false", ")", ")", "return", "false", ";", "return", "flag_pic", "||", "!", "label_mentioned_p", "(", "x", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_LEGITIMATE_CONSTANT_P", ".", "On", "the", "ARM", ",", "allow", "any", "integer", "(", "invalid", "ones", "are", "removed", "later", "by", "insn", "patterns", ")", ",", "nice", "doubles", "and", "symbol_refs", "which", "refer", "to", "the", "function", "'s", "constant", "pool", "XXX", ".", "When", "generating", "pic", "allow", "anything", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_legitimate_constant_p_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45060, "Length": 40}
{"ground_truth": ["", "static", "rtx", "arm_libcall_value", "(", "machine_mode", "mode", ",", "const_rtx", "libcall", ")", "{", "if", "(", "TARGET_AAPCS_BASED", "&&", "arm_pcs_default", "!=", "ARM_PCS_AAPCS", "&&", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_FLOAT", ")", "{", "if", "(", "arm_libcall_uses_aapcs_base", "(", "libcall", ")", ")", "return", "gen_rtx_REG", "(", "mode", ",", "ARG_REGISTER", "(", "1", ")", ")", ";", "}", "return", "arm_libcall_value_1", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Define", "how", "to", "find", "the", "value", "returned", "by", "a", "library", "function", "assuming", "the", "value", "has", "mode", "MODE", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_libcall_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45061, "Length": 53}
{"ground_truth": ["", "rtx", "arm_load_function_descriptor", "(", "rtx", "funcdesc", ")", "{", "rtx", "fnaddr_reg", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "rtx", "pic_reg", "=", "gen_rtx_REG", "(", "Pmode", ",", "FDPIC_REGNUM", ")", ";", "rtx", "fnaddr", "=", "gen_rtx_MEM", "(", "Pmode", ",", "funcdesc", ")", ";", "rtx", "gotaddr", "=", "gen_rtx_MEM", "(", "Pmode", ",", "plus_constant", "(", "Pmode", ",", "funcdesc", ",", "4", ")", ")", ";", "emit_move_insn", "(", "fnaddr_reg", ",", "fnaddr", ")", ";", "emit_insn", "(", "gen_restore_pic_register_after_call", "(", "pic_reg", ",", "gotaddr", ")", ")", ";", "return", "fnaddr_reg", ";", "}", ""], "natrual_language": ["Emit", "insns", "to", "load", "the", "function", "address", "from", "FUNCDESC", "(", "an", "FDPIC", "function", "descriptor", ")", "into", "a", "register", "and", "the", "GOT", "address", "into", "the", "FDPIC", "register", ",", "returning", "an", "rtx", "for", "the", "register", "holding", "the", "function", "address", "."], "TS_V_token": ["arm", "4"], "File": "arm", "Func": "arm_load_function_descriptor", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45062, "Length": 73}
{"ground_truth": ["", "void", "arm_load_pic_register", "(", "unsigned", "long", "saved_regs", "ATTRIBUTE_UNUSED", ",", "rtx", "pic_reg", ")", "{", "rtx", "l1", ",", "labelno", ",", "pic_tmp", ",", "pic_rtx", ";", "if", "(", "crtl", "->", "uses_pic_offset_table", "==", "0", "||", "TARGET_SINGLE_PIC_BASE", "||", "TARGET_FDPIC", ")", "return", ";", "gcc_assert", "(", "flag_pic", ")", ";", "if", "(", "pic_reg", "==", "NULL_RTX", ")", "pic_reg", "=", "cfun", "->", "machine", "->", "pic_reg", ";", "if", "(", "TARGET_VXWORKS_RTP", ")", "{", "pic_rtx", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_BASE", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "emit_insn", "(", "gen_pic_load_addr_32bit", "(", "pic_reg", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "pic_reg", ",", "gen_rtx_MEM", "(", "Pmode", ",", "pic_reg", ")", ")", ")", ";", "pic_tmp", "=", "gen_rtx_SYMBOL_REF", "(", "Pmode", ",", "VXWORKS_GOTT_INDEX", ")", ";", "emit_insn", "(", "gen_pic_offset_arm", "(", "pic_reg", ",", "pic_reg", ",", "pic_tmp", ")", ")", ";", "}", "else", "{", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "pic_rtx", "=", "plus_constant", "(", "Pmode", ",", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "pic_rtx", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "pic_rtx", ")", ",", "UNSPEC_GOTSYM_OFF", ")", ";", "pic_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "pic_rtx", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "else", "{", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", ">", "LAST_LO_REGNUM", ")", "{", "pic_tmp", "=", "gen_rtx_REG", "(", "SImode", ",", "thumb_find_work_register", "(", "saved_regs", ")", ")", ";", "emit_insn", "(", "gen_pic_load_addr_thumb1", "(", "pic_tmp", ",", "pic_rtx", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "pic_offset_table_rtx", ",", "pic_tmp", ")", ")", ";", "emit_insn", "(", "gen_pic_add_dot_plus_four", "(", "pic_reg", ",", "pic_reg", ",", "labelno", ")", ")", ";", "}", "else", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", "&&", "REGNO", "(", "pic_reg", ")", "<=", "LAST_LO_REGNUM", ")", "{", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "emit_move_insn", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ",", "pic_reg", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ")", ";", "}", "else", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "pic_reg", ",", "pic_rtx", ",", "labelno", ")", ")", ";", "}", "}", "emit_use", "(", "pic_reg", ")", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "PIC", "register", ".", "In", "thumb", "mode", "SCRATCH", "is", "a", "low", "register", "."], "TS_V_token": ["arm", "0", "1", "8", "4", "1"], "File": "arm", "Func": "arm_load_pic_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45063, "Length": 353}
{"ground_truth": ["", "int", "arm_max_const_double_inline_cost", "(", ")", "{", "return", "(", "(", "optimize_size", "||", "arm_ld_sched", ")", "?", "3", ":", "4", ")", ";", "}", ""], "natrual_language": ["Return", "maximum", "allowed", "cost", "of", "synthesizing", "a", "64-bit", "constant", "VAL", "inline", ".", "Returns", "the", "number", "of", "insns", "needed", ",", "or", "99", "if", "we", "always", "want", "to", "synthesize", "the", "value", "."], "TS_V_token": ["arm", "3", "4"], "File": "arm", "Func": "arm_max_const_double_inline_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45064, "Length": 19}
{"ground_truth": ["", "int", "arm_memory_move_cost", "(", "machine_mode", "mode", ",", "reg_class_t", "rclass", ",", "bool", "in", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "TARGET_32BIT", ")", "return", "10", ";", "else", "{", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<", "4", ")", "return", "8", ";", "else", "return", "(", "(", "2", "*", "GET_MODE_SIZE", "(", "mode", ")", ")", "*", "(", "rclass", "==", "LO_REGS", "?", "1", ":", "2", ")", ")", ";", "}", "}", ""], "natrual_language": ["Implement", "TARGET_MEMORY_MOVE_COST", "."], "TS_V_token": ["arm", "10", "4", "8", "2", "1", "2"], "File": "arm", "Func": "arm_memory_move_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45065, "Length": 60}
{"ground_truth": ["", "static", "bool", "arm_mem_costs", "(", "rtx", "x", ",", "const", "struct", "cpu_cost_table", "*", "extra_cost", ",", "int", "*", "cost", ",", "bool", "speed_p", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "x", ")", ";", "*", "cost", "=", "COSTS_N_INSNS", "(", "1", ")", ";", "if", "(", "flag_pic", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "will_be_in_index_register", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", "*", "cost", "+=", "COSTS_N_INSNS", "(", "1", ")", ";", "if", "(", "speed_p", ")", "{", "arm_addr_mode_op", "op_type", ";", "switch", "(", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "default", ":", "case", "REG", ":", "op_type", "=", "AMO_DEFAULT", ";", "break", ";", "case", "MINUS", ":", "case", "PLUS", ":", "op_type", "=", "AMO_NO_WB", ";", "break", ";", "case", "PRE_INC", ":", "case", "PRE_DEC", ":", "case", "POST_INC", ":", "case", "POST_DEC", ":", "case", "PRE_MODIFY", ":", "case", "POST_MODIFY", ":", "op_type", "=", "AMO_WB", ";", "break", ";", "}", "if", "(", "VECTOR_MODE_P", "(", "mode", ")", ")", "*", "cost", "+=", "current_tune", "->", "addr_mode_costs", "->", "vector", "[", "op_type", "]", ";", "else", "if", "(", "FLOAT_MODE_P", "(", "mode", ")", ")", "*", "cost", "+=", "current_tune", "->", "addr_mode_costs", "->", "fp", "[", "op_type", "]", ";", "else", "*", "cost", "+=", "current_tune", "->", "addr_mode_costs", "->", "integer", "[", "op_type", "]", ";", "}", "if", "(", "speed_p", ")", "{", "if", "(", "FLOAT_MODE_P", "(", "mode", ")", ")", "{", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "==", "8", ")", "*", "cost", "+=", "extra_cost", "->", "ldst", ".", "loadd", ";", "else", "*", "cost", "+=", "extra_cost", "->", "ldst", ".", "loadf", ";", "}", "else", "if", "(", "VECTOR_MODE_P", "(", "mode", ")", ")", "*", "cost", "+=", "extra_cost", "->", "ldst", ".", "loadv", ";", "else", "{", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "==", "8", ")", "*", "cost", "+=", "extra_cost", "->", "ldst", ".", "ldrd", ";", "else", "*", "cost", "+=", "extra_cost", "->", "ldst", ".", "load", ";", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Helper", "function", "for", "arm_rtx_costs_internal", ".", "Calculates", "the", "cost", "of", "a", "MEM", ",", "considering", "the", "costs", "of", "the", "addressing", "mode", "and", "memory", "access", "separately", "."], "TS_V_token": ["arm", "1", "0", "0", "1", "1", "0", "8", "8"], "File": "arm", "Func": "arm_mem_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45066, "Length": 293}
{"ground_truth": ["", "static", "bool", "arm_modes_tieable_p", "(", "machine_mode", "mode1", ",", "machine_mode", "mode2", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "mode1", ")", "==", "GET_MODE_CLASS", "(", "mode2", ")", ")", "return", "true", ";", "if", "(", "(", "TARGET_NEON", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode1", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode1", ")", ")", "&&", "(", "VALID_NEON_DREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_QREG_MODE", "(", "mode2", ")", "||", "VALID_NEON_STRUCT_MODE", "(", "mode2", ")", ")", ")", "||", "(", "TARGET_HAVE_MVE", "&&", "(", "VALID_MVE_MODE", "(", "mode1", ")", "||", "VALID_MVE_STRUCT_MODE", "(", "mode1", ")", ")", "&&", "(", "VALID_MVE_MODE", "(", "mode2", ")", "||", "VALID_MVE_STRUCT_MODE", "(", "mode2", ")", ")", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implement", "MODES_TIEABLE_P", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_modes_tieable_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45067, "Length": 101}
{"ground_truth": ["", "enum", "reg_class", "arm_mode_base_reg_class", "(", "machine_mode", "mode", ")", "{", "if", "(", "TARGET_HAVE_MVE", "&&", "(", "mode", "==", "E_V8QImode", "||", "mode", "==", "E_V4QImode", "||", "mode", "==", "E_V4HImode", ")", ")", "return", "LO_REGS", ";", "return", "MODE_BASE_REG_REG_CLASS", "(", "mode", ")", ";", "}", ""], "natrual_language": ["If", "given", "mode", "matches", ",", "load", "from", "memory", "to", "LO_REGS", ".", "(", "i.e", "[", "Rn", "]", ",", "Rn", "<", "=", "LO_REGS", ")", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_mode_base_reg_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45068, "Length": 36}
{"ground_truth": ["", "opt_machine_mode", "arm_mode_to_pred_mode", "(", "machine_mode", "mode", ")", "{", "switch", "(", "GET_MODE_NUNITS", "(", "mode", ")", ")", "{", "case", "16", ":", "return", "V16BImode", ";", "case", "8", ":", "return", "V8BImode", ";", "case", "4", ":", "return", "V4BImode", ";", "}", "return", "opt_machine_mode", "(", ")", ";", "}", ""], "natrual_language": ["Return", "the", "mode", "for", "the", "MVE", "vector", "of", "predicates", "corresponding", "to", "MODE", "."], "TS_V_token": ["arm", "16", "8", "4"], "File": "arm", "Func": "arm_mode_to_pred_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45069, "Length": 40}
{"ground_truth": ["", "static", "bool", "arm_must_pass_in_stack", "(", "const", "function_arg_info", "&", "arg", ")", "{", "if", "(", "TARGET_AAPCS_BASED", ")", "return", "must_pass_in_stack_var_size", "(", "arg", ")", ";", "else", "return", "must_pass_in_stack_var_size_or_pad", "(", "arg", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "a", "type", "must", "be", "passed", "in", "memory", ".", "For", "AAPCS", ",", "small", "aggregates", "(", "padded", "to", "the", "size", "of", "a", "word", ")", "should", "be", "passed", "in", "a", "register", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_must_pass_in_stack", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45070, "Length": 28}
{"ground_truth": ["", "static", "int", "arm_needs_doubleword_align", "(", "machine_mode", "mode", ",", "const_tree", "type", ")", "{", "if", "(", "!", "type", ")", "return", "GET_MODE_ALIGNMENT", "(", "mode", ")", ">", "PARM_BOUNDARY", ";", "if", "(", "!", "AGGREGATE_TYPE_P", "(", "type", ")", ")", "return", "TYPE_ALIGN", "(", "TYPE_MAIN_VARIANT", "(", "type", ")", ")", ">", "PARM_BOUNDARY", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "ARRAY_TYPE", ")", "return", "TYPE_ALIGN", "(", "TREE_TYPE", "(", "type", ")", ")", ">", "PARM_BOUNDARY", ";", "int", "ret", "=", "0", ";", "int", "ret2", "=", "0", ";", "for", "(", "tree", "field", "=", "TYPE_FIELDS", "(", "type", ")", ";", "field", ";", "field", "=", "DECL_CHAIN", "(", "field", ")", ")", "if", "(", "DECL_ALIGN", "(", "field", ")", ">", "PARM_BOUNDARY", ")", "{", "if", "(", "TREE_CODE", "(", "field", ")", "==", "FIELD_DECL", ")", "return", "1", ";", "else", "ret", "=", "-", "1", ";", "}", "else", "if", "(", "TREE_CODE", "(", "field", ")", "==", "FIELD_DECL", "&&", "DECL_BIT_FIELD_TYPE", "(", "field", ")", "&&", "TYPE_ALIGN", "(", "DECL_BIT_FIELD_TYPE", "(", "field", ")", ")", ">", "PARM_BOUNDARY", ")", "ret2", "=", "1", ";", "if", "(", "ret2", ")", "return", "2", ";", "return", "ret", ";", "}", ""], "natrual_language": ["Return", "1", "if", "double", "word", "alignment", "is", "required", "for", "argument", "passing", ".", "Return", "-1", "if", "double", "word", "alignment", "used", "to", "be", "required", "for", "argument", "passing", "before", "PR77728", "ABI", "fix", ",", "but", "is", "not", "required", "anymore", ".", "Return", "0", "if", "double", "word", "alignment", "is", "not", "required", "and", "was", "n't", "requried", "before", "either", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "2"], "File": "arm", "Func": "arm_needs_doubleword_align", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45071, "Length": 161}
{"ground_truth": ["", "void", "arm_options_perform_arch_sanity_checks", "(", "void", ")", "{", "if", "(", "TARGET_INTERWORK", ")", "arm_cpp_interwork", "=", "1", ";", "if", "(", "arm_arch5t", ")", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "if", "(", "TARGET_IWMMXT", "&&", "!", "ARM_DOUBLEWORD_ALIGN", ")", "error", "(", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", ")", ";", "if", "(", "TARGET_IWMMXT_ABI", "&&", "!", "TARGET_IWMMXT", ")", "error", "(", "\"iwmmxt abi requires an iwmmxt capable cpu\"", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "TARGET_BPABI", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support interworking\"", ")", ";", "target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_SOFT_FLOAT", ")", "arm_fpu_attr", "=", "FPU_NONE", ";", "else", "arm_fpu_attr", "=", "FPU_VFP", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "TARGET_CALLER_INTERWORKING", ")", "error", "(", "\"AAPCS does not support %<-mcaller-super-interworking%>\"", ")", ";", "else", "if", "(", "TARGET_CALLEE_INTERWORKING", ")", "error", "(", "\"AAPCS does not support %<-mcallee-super-interworking%>\"", ")", ";", "}", "if", "(", "!", "arm_arch4", "&&", "arm_fp16_format", "!=", "ARM_FP16_FORMAT_NONE", ")", "sorry", "(", "\"%<__fp16%> and no ldrh\"", ")", ";", "if", "(", "use_cmse", "&&", "!", "arm_arch_cmse", ")", "error", "(", "\"target CPU does not support ARMv8-M Security Extensions\"", ")", ";", "if", "(", "use_cmse", "&&", "TARGET_HARD_FLOAT", "&&", "LAST_VFP_REGNUM", ">", "LAST_LO_VFP_REGNUM", ")", "error", "(", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "arm_abi", "==", "ARM_ABI_IWMMXT", ")", "arm_pcs_default", "=", "ARM_PCS_AAPCS_IWMMXT", ";", "else", "if", "(", "TARGET_HARD_FLOAT_ABI", ")", "{", "arm_pcs_default", "=", "ARM_PCS_AAPCS_VFP", ";", "if", "(", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_vfpv2", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_mve", ")", ")", "error", "(", "\"%<-mfloat-abi=hard%>: selected architecture lacks an FPU\"", ")", ";", "}", "else", "arm_pcs_default", "=", "ARM_PCS_AAPCS", ";", "}", "else", "{", "if", "(", "arm_float_abi", "==", "ARM_FLOAT_ABI_HARD", ")", "sorry", "(", "\"%<-mfloat-abi=hard%> and VFP\"", ")", ";", "if", "(", "arm_abi", "==", "ARM_ABI_APCS", ")", "arm_pcs_default", "=", "ARM_PCS_APCS", ";", "else", "arm_pcs_default", "=", "ARM_PCS_ATPCS", ";", "}", "}", ""], "natrual_language": ["Perform", "some", "validation", "between", "the", "desired", "architecture", "and", "the", "rest", "of", "the", "options", "."], "TS_V_token": ["arm", "1", "\"iwmmxt requires an AAPCS compatible ABI for proper operation\"", "\"iwmmxt abi requires an iwmmxt capable cpu\"", "0", "\"target CPU does not support interworking\"", "\"AAPCS does not support %<-mcaller-super-interworking%>\"", "\"AAPCS does not support %<-mcallee-super-interworking%>\"", "\"%<__fp16%> and no ldrh\"", "\"target CPU does not support ARMv8-M Security Extensions\"", "\"ARMv8-M Security Extensions incompatible with selected FPU\"", "\"%<-mfloat-abi=hard%>: selected architecture lacks an FPU\"", "\"%<-mfloat-abi=hard%> and VFP\""], "File": "arm", "Func": "arm_options_perform_arch_sanity_checks", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45072, "Length": 246}
{"ground_truth": ["", "static", "void", "arm_option_check_internal", "(", "struct", "gcc_options", "*", "opts", ")", "{", "int", "flags", "=", "opts", "->", "x_target_flags", ";", "if", "(", "TARGET_IWMMXT", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_neon", ")", ")", "error", "(", "\"iWMMXt and NEON are incompatible\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_notm", ")", ")", "error", "(", "\"target CPU does not support ARM mode\"", ")", ";", "if", "(", "(", "TARGET_TPCS_FRAME", "||", "TARGET_TPCS_LEAF_FRAME", ")", "&&", "TARGET_ARM_P", "(", "flags", ")", ")", "warning", "(", "0", ",", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "warning", "(", "0", ",", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", ")", ";", "if", "(", "TARGET_ARM_P", "(", "flags", ")", "&&", "write_symbols", "!=", "NO_DEBUG", "&&", "!", "TARGET_APCS_FRAME", "&&", "(", "TARGET_DEFAULT", "&", "MASK_APCS_FRAME", ")", ")", "warning", "(", "0", ",", "\"%<-g%> with %<-mno-apcs-frame%> may not give sensible \"", "\"debugging\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_IWMMXT", ")", "error", "(", "\"iWMMXt unsupported under Thumb mode\"", ")", ";", "if", "(", "TARGET_HARD_TP", "&&", "TARGET_THUMB1_P", "(", "flags", ")", ")", "error", "(", "\"cannot use %<-mtp=cp15%> with 16-bit Thumb\"", ")", ";", "if", "(", "TARGET_THUMB_P", "(", "flags", ")", "&&", "TARGET_VXWORKS_RTP", "&&", "flag_pic", ")", "{", "error", "(", "\"RTP PIC is incompatible with Thumb\"", ")", ";", "flag_pic", "=", "0", ";", "}", "if", "(", "target_pure_code", "||", "target_slow_flash_data", ")", "{", "const", "char", "*", "flag", "=", "(", "target_pure_code", "?", "\"-mpure-code\"", ":", "\"-mslow-flash-data\"", ")", ";", "bool", "common_unsupported_modes", "=", "arm_arch_notm", "||", "flag_pic", "||", "TARGET_NEON", ";", "if", "(", "target_slow_flash_data", "&&", "(", "!", "TARGET_HAVE_MOVT", "||", "common_unsupported_modes", ")", ")", "error", "(", "\"%s only supports non-pic code on M-profile targets with the \"", "\"MOVT instruction\"", ",", "flag", ")", ";", "if", "(", "target_pure_code", "&&", "common_unsupported_modes", ")", "error", "(", "\"%s only supports non-pic code on M-profile targets\"", ",", "flag", ")", ";", "if", "(", "target_word_relocations", ")", "error", "(", "\"%s incompatible with %<-mword-relocations%>\"", ",", "flag", ")", ";", "}", "}", ""], "natrual_language": ["Check", "any", "incompatible", "options", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "\"iWMMXt and NEON are incompatible\"", "\"target CPU does not support ARM mode\"", "0", "\"enabling backtrace support is only meaningful when compiling for the Thumb\"", "0", "\"enabling callee interworking support is only meaningful when compiling for the Thumb\"", "0", "\"%<-g%> with %<-mno-apcs-frame%> may not give sensible \"", "\"debugging\"", "\"iWMMXt unsupported under Thumb mode\"", "\"cannot use %<-mtp=cp15%> with 16-bit Thumb\"", "\"RTP PIC is incompatible with Thumb\"", "0", "\"-mpure-code\"", "\"-mslow-flash-data\"", "\"%s only supports non-pic code on M-profile targets with the \"", "\"MOVT instruction\"", "\"%s only supports non-pic code on M-profile targets\"", "\"%s incompatible with %<-mword-relocations%>\""], "File": "arm", "Func": "arm_option_check_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45073, "Length": 245}
{"ground_truth": ["", "static", "void", "arm_option_override_internal", "(", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "arm_override_options_after_change_1", "(", "opts", ",", "opts_set", ")", ";", "if", "(", "TARGET_INTERWORK", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_INTERWORK", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "!", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support THUMB instructions\"", ")", ";", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "}", "if", "(", "TARGET_APCS_FRAME", "&&", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", ")", "{", "opts", "->", "x_target_flags", "&=", "~", "MASK_APCS_FRAME", ";", "}", "if", "(", "TARGET_THUMB_P", "(", "opts", "->", "x_target_flags", ")", "&&", "TARGET_CALLEE_INTERWORKING", ")", "opts", "->", "x_target_flags", "|=", "MASK_INTERWORK", ";", "cl_optimization", "*", "to", "=", "TREE_OPTIMIZATION", "(", "init_optimize", ")", ";", "if", "(", "!", "opts_set", "->", "x_arm_restrict_it", ")", "opts", "->", "x_arm_restrict_it", "=", "arm_arch8", ";", "if", "(", "!", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", "||", "!", "arm_arch_notm", ")", "opts", "->", "x_arm_restrict_it", "=", "0", ";", "if", "(", "!", "opts_set", "->", "x_arm_restrict_it", "&&", "(", "opts_set", "->", "x_arm_cpu_string", "||", "opts_set", "->", "x_arm_tune_string", ")", ")", "opts", "->", "x_arm_restrict_it", "=", "0", ";", "if", "(", "!", "opts_set", "->", "x_unaligned_access", ")", "{", "opts", "->", "x_unaligned_access", "=", "(", "TARGET_32BIT_P", "(", "opts", "->", "x_target_flags", ")", "&&", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ";", "}", "else", "if", "(", "opts", "->", "x_unaligned_access", "==", "1", "&&", "!", "(", "arm_arch6", "&&", "(", "arm_arch_notm", "||", "arm_arch7", ")", ")", ")", "{", "warning", "(", "0", ",", "\"target CPU does not support unaligned accesses\"", ")", ";", "opts", "->", "x_unaligned_access", "=", "0", ";", "}", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_schedule_insns", "=", "0", ";", "else", "opts", "->", "x_flag_schedule_insns", "=", "to", "->", "x_flag_schedule_insns", ";", "if", "(", "optimize_function_for_size_p", "(", "cfun", ")", "&&", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_shrink_wrap", "=", "false", ";", "else", "opts", "->", "x_flag_shrink_wrap", "=", "to", "->", "x_flag_shrink_wrap", ";", "if", "(", "TARGET_THUMB1_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_flag_ipa_ra", "=", "0", ";", "else", "opts", "->", "x_flag_ipa_ra", "=", "to", "->", "x_flag_ipa_ra", ";", "if", "(", "TARGET_THUMB2_P", "(", "opts", "->", "x_target_flags", ")", ")", "opts", "->", "x_inline_asm_unified", "=", "true", ";", "if", "(", "arm_stack_protector_guard", "==", "SSP_GLOBAL", "&&", "opts", "->", "x_arm_stack_protector_guard_offset_str", ")", "{", "error", "(", "\"incompatible options %<-mstack-protector-guard=global%> and \"", "\"%<-mstack-protector-guard-offset=%s%>\"", ",", "arm_stack_protector_guard_offset_str", ")", ";", "}", "if", "(", "opts", "->", "x_arm_stack_protector_guard_offset_str", ")", "{", "char", "*", "end", ";", "const", "char", "*", "str", "=", "arm_stack_protector_guard_offset_str", ";", "errno", "=", "0", ";", "long", "offs", "=", "strtol", "(", "arm_stack_protector_guard_offset_str", ",", "&", "end", ",", "0", ")", ";", "if", "(", "!", "*", "str", "||", "*", "end", "||", "errno", ")", "error", "(", "\"%qs is not a valid offset in %qs\"", ",", "str", ",", "\"-mstack-protector-guard-offset=\"", ")", ";", "arm_stack_protector_guard_offset", "=", "offs", ";", "}", "SUBTARGET_OVERRIDE_INTERNAL_OPTIONS", ";", "}", ""], "natrual_language": ["Reset", "options", "between", "modes", "that", "the", "user", "has", "specified", "."], "TS_V_token": ["arm", "0", "\"target CPU does not support THUMB instructions\"", "0", "0", "1", "0", "\"target CPU does not support unaligned accesses\"", "0", "0", "0", "\"incompatible options %<-mstack-protector-guard=global%> and \"", "\"%<-mstack-protector-guard-offset=%s%>\"", "0", "0", "\"%qs is not a valid offset in %qs\"", "\"-mstack-protector-guard-offset=\""], "File": "arm", "Func": "arm_option_override_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45074, "Length": 421}
{"ground_truth": ["", "static", "void", "arm_option_params_internal", "(", "void", ")", "{", "if", "(", "TARGET_THUMB1", ")", "{", "targetm", ".", "min_anchor_offset", "=", "0", ";", "targetm", ".", "max_anchor_offset", "=", "127", ";", "}", "else", "if", "(", "TARGET_THUMB2", ")", "{", "targetm", ".", "min_anchor_offset", "=", "-", "248", ";", "targetm", ".", "max_anchor_offset", "=", "4095", ";", "}", "else", "{", "targetm", ".", "min_anchor_offset", "=", "TARGET_MIN_ANCHOR_OFFSET", ";", "targetm", ".", "max_anchor_offset", "=", "TARGET_MAX_ANCHOR_OFFSET", ";", "}", "max_insns_skipped", "=", "optimize_size", "?", "4", ":", "current_tune", "->", "max_insns_skipped", ";", "if", "(", "TARGET_THUMB2", ")", "max_insns_skipped", "=", "MIN", "(", "max_insns_skipped", ",", "MAX_INSN_PER_IT_BLOCK", ")", ";", "if", "(", "TARGET_THUMB1", ")", "targetm", ".", "md_asm_adjust", "=", "thumb1_md_asm_adjust", ";", "else", "targetm", ".", "md_asm_adjust", "=", "arm_md_asm_adjust", ";", "}", ""], "natrual_language": ["Recompute", "the", "global", "settings", "depending", "on", "target", "attribute", "options", "."], "TS_V_token": ["arm", "0", "127", "248", "4095", "4"], "File": "arm", "Func": "arm_option_params_internal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45075, "Length": 101}
{"ground_truth": ["", "static", "void", "arm_option_print", "(", "FILE", "*", "file", ",", "int", "indent", ",", "struct", "cl_target_option", "*", "ptr", ")", "{", "int", "flags", "=", "ptr", "->", "x_target_flags", ";", "const", "char", "*", "fpu_name", ";", "fpu_name", "=", "(", "ptr", "->", "x_arm_fpu_index", "==", "TARGET_FPU_auto", "?", "\"auto\"", ":", "all_fpus", "[", "ptr", "->", "x_arm_fpu_index", "]", ".", "name", ")", ";", "fprintf", "(", "file", ",", "\"%*sselected isa %s\\n\"", ",", "indent", ",", "\"\"", ",", "TARGET_THUMB2_P", "(", "flags", ")", "?", "\"thumb2\"", ":", "TARGET_THUMB_P", "(", "flags", ")", "?", "\"thumb1\"", ":", "\"arm\"", ")", ";", "if", "(", "ptr", "->", "x_arm_arch_string", ")", "fprintf", "(", "file", ",", "\"%*sselected architecture %s\\n\"", ",", "indent", ",", "\"\"", ",", "ptr", "->", "x_arm_arch_string", ")", ";", "if", "(", "ptr", "->", "x_arm_cpu_string", ")", "fprintf", "(", "file", ",", "\"%*sselected CPU %s\\n\"", ",", "indent", ",", "\"\"", ",", "ptr", "->", "x_arm_cpu_string", ")", ";", "if", "(", "ptr", "->", "x_arm_tune_string", ")", "fprintf", "(", "file", ",", "\"%*sselected tune %s\\n\"", ",", "indent", ",", "\"\"", ",", "ptr", "->", "x_arm_tune_string", ")", ";", "fprintf", "(", "file", ",", "\"%*sselected fpu %s\\n\"", ",", "indent", ",", "\"\"", ",", "fpu_name", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_OPTION_PRINT", "."], "TS_V_token": ["arm", "\"auto\"", "\"%*sselected isa %s\\n\"", "\"\"", "\"thumb2\"", "\"thumb1\"", "\"arm\"", "\"%*sselected architecture %s\\n\"", "\"\"", "\"%*sselected CPU %s\\n\"", "\"\"", "\"%*sselected tune %s\\n\"", "\"\"", "\"%*sselected fpu %s\\n\"", "\"\""], "File": "arm", "Func": "arm_option_print", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45076, "Length": 154}
{"ground_truth": ["", "void", "arm_option_reconfigure_globals", "(", "void", ")", "{", "sprintf", "(", "arm_arch_name", ",", "\"__ARM_ARCH_%s__\"", ",", "arm_active_target", ".", "arch_pp_name", ")", ";", "arm_base_arch", "=", "arm_active_target", ".", "base_arch", ";", "arm_arch4", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv4", ")", ";", "arm_arch4t", "=", "arm_arch4", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ";", "arm_arch5t", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv5t", ")", ";", "arm_arch5te", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv5te", ")", ";", "arm_arch6", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv6", ")", ";", "arm_arch6k", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv6k", ")", ";", "arm_arch_notm", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_notm", ")", ";", "arm_arch6m", "=", "arm_arch6", "&&", "!", "arm_arch_notm", ";", "arm_arch7", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv7", ")", ";", "arm_arch7em", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv7em", ")", ";", "arm_arch8", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8", ")", ";", "arm_arch8_1", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_1", ")", ";", "arm_arch8_2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_2", ")", ";", "arm_arch8_3", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_3", ")", ";", "arm_arch8_4", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_4", ")", ";", "arm_arch8_1m_main", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_armv8_1m_main", ")", ";", "arm_arch_thumb1", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb", ")", ";", "arm_arch_thumb2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_thumb2", ")", ";", "arm_arch_xscale", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_xscale", ")", ";", "arm_arch_iwmmxt", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_iwmmxt", ")", ";", "arm_arch_iwmmxt2", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_iwmmxt2", ")", ";", "arm_arch_thumb_hwdiv", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_tdiv", ")", ";", "arm_arch_arm_hwdiv", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_adiv", ")", ";", "arm_arch_crc", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_crc32", ")", ";", "arm_arch_cmse", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_cmse", ")", ";", "arm_arch_lpae", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_lpae", ")", ";", "arm_arch_i8mm", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_i8mm", ")", ";", "arm_arch_bf16", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_bf16", ")", ";", "arm_fp16_inst", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_fp16", ")", ";", "if", "(", "arm_fp16_inst", ")", "{", "if", "(", "arm_fp16_format", "==", "ARM_FP16_FORMAT_ALTERNATIVE", ")", "error", "(", "\"selected fp16 options are incompatible\"", ")", ";", "arm_fp16_format", "=", "ARM_FP16_FORMAT_IEEE", ";", "}", "arm_arch_cde", "=", "0", ";", "arm_arch_cde_coproc", "=", "0", ";", "int", "cde_bits", "[", "]", "=", "{", "isa_bit_cdecp0", ",", "isa_bit_cdecp1", ",", "isa_bit_cdecp2", ",", "isa_bit_cdecp3", ",", "isa_bit_cdecp4", ",", "isa_bit_cdecp5", ",", "isa_bit_cdecp6", ",", "isa_bit_cdecp7", "}", ";", "for", "(", "int", "i", "=", "0", ",", "e", "=", "ARRAY_SIZE", "(", "cde_bits", ")", ";", "i", "<", "e", ";", "i", "++", ")", "{", "int", "cde_bit", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "cde_bits", "[", "i", "]", ")", ";", "if", "(", "cde_bit", ")", "{", "arm_arch_cde", "|=", "cde_bit", ";", "arm_arch_cde_coproc", "|=", "arm_arch_cde_coproc_bits", "[", "i", "]", ";", "}", "}", "arm_arch_no_volatile_ce", "=", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_quirk_no_volatile_ce", ")", ";", "arm_arch6kz", "=", "arm_arch6k", "&&", "bitmap_bit_p", "(", "arm_active_target", ".", "isa", ",", "isa_bit_quirk_armv6kz", ")", ";", "if", "(", "target_thread_pointer", "==", "TP_AUTO", ")", "{", "if", "(", "arm_arch6k", "&&", "!", "TARGET_THUMB1", ")", "target_thread_pointer", "=", "TP_CP15", ";", "else", "target_thread_pointer", "=", "TP_SOFT", ";", "}", "if", "(", "!", "TARGET_HARD_TP", "&&", "arm_stack_protector_guard", "==", "SSP_TLSREG", ")", "error", "(", "\"%<-mstack-protector-guard=tls%> needs a hardware TLS register\"", ")", ";", "}", ""], "natrual_language": ["Reconfigure", "global", "status", "flags", "from", "the", "active_target.isa", "."], "TS_V_token": ["arm", "\"__ARM_ARCH_%s__\"", "\"selected fp16 options are incompatible\"", "0", "0", "0", "\"%<-mstack-protector-guard=tls%> needs a hardware TLS register\""], "File": "arm", "Func": "arm_option_reconfigure_globals", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45077, "Length": 510}
{"ground_truth": ["", "static", "void", "arm_option_restore", "(", "struct", "gcc_options", "*", ",", "struct", "gcc_options", "*", ",", "struct", "cl_target_option", "*", "ptr", ")", "{", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "ptr", ",", "false", ")", ";", "arm_option_reconfigure_globals", "(", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_OPTION_RESTORE", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_option_restore", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45078, "Length": 33}
{"ground_truth": ["", "static", "void", "arm_option_save", "(", "struct", "cl_target_option", "*", "ptr", ",", "struct", "gcc_options", "*", "opts", ")", "{", "ptr", "->", "x_arm_arch_string", "=", "opts", "->", "x_arm_arch_string", ";", "ptr", "->", "x_arm_cpu_string", "=", "opts", "->", "x_arm_cpu_string", ";", "ptr", "->", "x_arm_tune_string", "=", "opts", "->", "x_arm_tune_string", ";", "}", ""], "natrual_language": ["Implement", "TARGET_OPTION_SAVE", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_option_save", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45079, "Length": 40}
{"ground_truth": ["", "void", "arm_order_regs_for_local_alloc", "(", "void", ")", "{", "const", "int", "arm_reg_alloc_order", "[", "]", "=", "REG_ALLOC_ORDER", ";", "memcpy", "(", "reg_alloc_order", ",", "arm_reg_alloc_order", ",", "sizeof", "(", "reg_alloc_order", ")", ")", ";", "if", "(", "TARGET_THUMB", ")", "memcpy", "(", "reg_alloc_order", ",", "thumb_core_reg_alloc_order", ",", "sizeof", "(", "thumb_core_reg_alloc_order", ")", ")", ";", "}", ""], "natrual_language": ["Adjust", "register", "allocation", "order", "when", "compiling", "for", "Thumb", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_order_regs_for_local_alloc", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45080, "Length": 43}
{"ground_truth": ["", "static", "bool", "arm_output_addr_const_extra", "(", "FILE", "*", "fp", ",", "rtx", "x", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "return", "arm_emit_tls_decoration", "(", "fp", ",", "x", ")", ";", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_PIC_LABEL", ")", "{", "char", "label", "[", "256", "]", ";", "int", "labelno", "=", "INTVAL", "(", "XVECEXP", "(", "x", ",", "0", ",", "0", ")", ")", ";", "ASM_GENERATE_INTERNAL_LABEL", "(", "label", ",", "\"LPIC\"", ",", "labelno", ")", ";", "assemble_name_raw", "(", "fp", ",", "label", ")", ";", "return", "TRUE", ";", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_GOTSYM_OFF", ")", "{", "assemble_name", "(", "fp", ",", "\"_GLOBAL_OFFSET_TABLE_\"", ")", ";", "if", "(", "GOT_PCREL", ")", "fputs", "(", "\"+.\"", ",", "fp", ")", ";", "fputs", "(", "\"-(\"", ",", "fp", ")", ";", "output_addr_const", "(", "fp", ",", "XVECEXP", "(", "x", ",", "0", ",", "0", ")", ")", ";", "fputc", "(", "')'", ",", "fp", ")", ";", "return", "TRUE", ";", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_SYMBOL_OFFSET", ")", "{", "output_addr_const", "(", "fp", ",", "XVECEXP", "(", "x", ",", "0", ",", "0", ")", ")", ";", "if", "(", "GOT_PCREL", ")", "fputs", "(", "\"+.\"", ",", "fp", ")", ";", "fputs", "(", "\"-(\"", ",", "fp", ")", ";", "output_addr_const", "(", "fp", ",", "XVECEXP", "(", "x", ",", "0", ",", "1", ")", ")", ";", "fputc", "(", "')'", ",", "fp", ")", ";", "return", "TRUE", ";", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", "return", "arm_emit_vector_const", "(", "fp", ",", "x", ")", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Implement", "TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA", "."], "TS_V_token": ["arm", "1", "1", "256", "0", "0", "\"LPIC\"", "1", "\"_GLOBAL_OFFSET_TABLE_\"", "\"+.\"", "\"-(\"", "0", "0", "1", "0", "0", "\"+.\"", "\"-(\"", "0", "1"], "File": "arm", "Func": "arm_output_addr_const_extra", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45081, "Length": 268}
{"ground_truth": ["", "static", "void", "arm_output_dwarf_dtprel", "(", "FILE", "*", "file", ",", "int", "size", ",", "rtx", "x", ")", "{", "gcc_assert", "(", "size", "==", "4", ")", ";", "fputs", "(", "\"\\t.word\\t\"", ",", "file", ")", ";", "output_addr_const", "(", "file", ",", "x", ")", ";", "fputs", "(", "\"(tlsldo)\"", ",", "file", ")", ";", "}", ""], "natrual_language": ["ARM", "implementation", "of", "TARGET_ASM_OUTPUT_DWARF_DTPREL", "."], "TS_V_token": ["arm", "4", "\"\\t.word\\t\"", "\"(tlsldo)\""], "File": "arm", "Func": "arm_output_dwarf_dtprel", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45082, "Length": 44}
{"ground_truth": ["", "void", "arm_output_fn_unwind", "(", "FILE", "*", "f", ",", "bool", "prologue", ")", "{", "if", "(", "arm_except_unwind_info", "(", "&", "global_options", ")", "!=", "UI_TARGET", ")", "return", ";", "if", "(", "prologue", ")", "fputs", "(", "\"\\t.fnstart\\n\"", ",", "f", ")", ";", "else", "{", "if", "(", "!", "(", "flag_unwind_tables", "||", "crtl", "->", "uses_eh_lsda", ")", "&&", "(", "TREE_NOTHROW", "(", "current_function_decl", ")", "||", "crtl", "->", "all_throwers_are_sibcalls", ")", ")", "fputs", "(", "\"\\t.cantunwind\\n\"", ",", "f", ")", ";", "fputs", "(", "\"\\t.fnend\\n\"", ",", "f", ")", ";", "}", "}", ""], "natrual_language": ["Output", "unwind", "directives", "for", "the", "start/end", "of", "a", "function", "."], "TS_V_token": ["arm", "\"\\t.fnstart\\n\"", "\"\\t.cantunwind\\n\"", "\"\\t.fnend\\n\""], "File": "arm", "Func": "arm_output_fn_unwind", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45083, "Length": 74}
{"ground_truth": ["", "static", "void", "arm_output_function_prologue", "(", "FILE", "*", "f", ")", "{", "unsigned", "long", "func_type", ";", "gcc_assert", "(", "!", "arm_ccfsm_state", "&&", "!", "arm_target_insn", ")", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "switch", "(", "(", "int", ")", "ARM_FUNC_TYPE", "(", "func_type", ")", ")", "{", "default", ":", "case", "ARM_FT_NORMAL", ":", "break", ";", "case", "ARM_FT_INTERWORKED", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Function supports interworking.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_ISR", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_FIQ", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", ")", ";", "break", ";", "case", "ARM_FT_EXCEPTION", ":", "asm_fprintf", "(", "f", ",", "\"\\t%@ ARM Exception Handler.\\n\"", ")", ";", "break", ";", "}", "if", "(", "IS_NAKED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", ")", ";", "if", "(", "IS_VOLATILE", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Volatile: function does not return.\\n\"", ")", ";", "if", "(", "IS_NESTED", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Nested: function declared inside another function.\\n\"", ")", ";", "if", "(", "IS_STACKALIGN", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Stack Align: May be called with mis-aligned SP.\\n\"", ")", ";", "if", "(", "IS_CMSE_ENTRY", "(", "func_type", ")", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ Non-secure entry function: called from non-secure code.\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ args = %wd, pretend = %d, frame = %wd\\n\"", ",", "(", "HOST_WIDE_INT", ")", "crtl", "->", "args", ".", "size", ",", "crtl", "->", "args", ".", "pretend_args_size", ",", "(", "HOST_WIDE_INT", ")", "get_frame_size", "(", ")", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", ",", "frame_pointer_needed", ",", "cfun", "->", "machine", "->", "uses_anonymous_args", ")", ";", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", ")", "asm_fprintf", "(", "f", ",", "\"\\t%@ link register save eliminated.\\n\"", ")", ";", "if", "(", "crtl", "->", "calls_eh_return", ")", "asm_fprintf", "(", "f", ",", "\"\\t@ Calls __builtin_eh_return.\\n\"", ")", ";", "}", ""], "natrual_language": ["Place", "some", "comments", "into", "the", "assembler", "stream", "describing", "the", "current", "function", "."], "TS_V_token": ["arm", "\"\\t%@ Function supports interworking.\\n\"", "\"\\t%@ Interrupt Service Routine.\\n\"", "\"\\t%@ Fast Interrupt Service Routine.\\n\"", "\"\\t%@ ARM Exception Handler.\\n\"", "\"\\t%@ Naked Function: prologue and epilogue provided by programmer.\\n\"", "\"\\t%@ Volatile: function does not return.\\n\"", "\"\\t%@ Nested: function declared inside another function.\\n\"", "\"\\t%@ Stack Align: May be called with mis-aligned SP.\\n\"", "\"\\t%@ Non-secure entry function: called from non-secure code.\\n\"", "\"\\t%@ args = %wd, pretend = %d, frame = %wd\\n\"", "\"\\t%@ frame_needed = %d, uses_anonymous_args = %d\\n\"", "\"\\t%@ link register save eliminated.\\n\"", "\"\\t@ Calls __builtin_eh_return.\\n\""], "File": "arm", "Func": "arm_output_function_prologue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45084, "Length": 238}
{"ground_truth": ["", "const", "char", "*", "arm_output_iwmmxt_shift_immediate", "(", "const", "char", "*", "insn_name", ",", "rtx", "*", "operands", ",", "bool", "wror_or_wsra", ")", "{", "int", "shift", "=", "INTVAL", "(", "operands", "[", "2", "]", ")", ";", "char", "templ", "[", "50", "]", ";", "machine_mode", "opmode", "=", "GET_MODE", "(", "operands", "[", "0", "]", ")", ";", "gcc_assert", "(", "shift", ">=", "0", ")", ";", "if", "(", "(", "(", "opmode", "==", "V4HImode", ")", "&&", "(", "shift", ">", "15", ")", ")", "||", "(", "(", "opmode", "==", "V2SImode", ")", "&&", "(", "shift", ">", "31", ")", ")", "||", "(", "(", "opmode", "==", "DImode", ")", "&&", "(", "shift", ">", "63", ")", ")", ")", "{", "if", "(", "wror_or_wsra", ")", "{", "sprintf", "(", "templ", ",", "\"%s\\t%%0, %%1, #%d\"", ",", "insn_name", ",", "32", ")", ";", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "if", "(", "opmode", "==", "DImode", ")", "{", "sprintf", "(", "templ", ",", "\"%s\\t%%0, %%0, #%d\"", ",", "insn_name", ",", "32", ")", ";", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "}", "}", "else", "{", "sprintf", "(", "templ", ",", "\"wzero\\t%%0\"", ")", ";", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "}", "return", "\"\"", ";", "}", "if", "(", "(", "opmode", "==", "DImode", ")", "&&", "(", "shift", ">", "32", ")", ")", "{", "sprintf", "(", "templ", ",", "\"%s\\t%%0, %%1, #%d\"", ",", "insn_name", ",", "32", ")", ";", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "sprintf", "(", "templ", ",", "\"%s\\t%%0, %%0, #%d\"", ",", "insn_name", ",", "shift", "-", "32", ")", ";", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "}", "else", "{", "sprintf", "(", "templ", ",", "\"%s\\t%%0, %%1, #%d\"", ",", "insn_name", ",", "shift", ")", ";", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "assembly", "for", "a", "WMMX", "immediate", "shift", "instruction", "."], "TS_V_token": ["arm", "2", "50", "0", "0", "15", "31", "63", "\"%s\\t%%0, %%1, #%d\"", "32", "\"%s\\t%%0, %%0, #%d\"", "32", "\"wzero\\t%%0\"", "\"\"", "32", "\"%s\\t%%0, %%1, #%d\"", "32", "\"%s\\t%%0, %%0, #%d\"", "32", "\"%s\\t%%0, %%1, #%d\"", "\"\""], "File": "arm", "Func": "arm_output_iwmmxt_shift_immediate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45085, "Length": 248}
{"ground_truth": ["", "const", "char", "*", "arm_output_iwmmxt_tinsr", "(", "rtx", "*", "operands", ")", "{", "int", "mask", "=", "INTVAL", "(", "operands", "[", "3", "]", ")", ";", "int", "i", ";", "char", "templ", "[", "50", "]", ";", "int", "units", "=", "mode_nunits", "[", "GET_MODE", "(", "operands", "[", "0", "]", ")", "]", ";", "gcc_assert", "(", "(", "mask", "&", "(", "mask", "-", "1", ")", ")", "==", "0", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "units", ";", "++", "i", ")", "{", "if", "(", "(", "mask", "&", "0x01", ")", "==", "1", ")", "{", "break", ";", "}", "mask", ">>=", "1", ";", "}", "gcc_assert", "(", "i", "<", "units", ")", ";", "{", "switch", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ")", "{", "case", "E_V8QImode", ":", "sprintf", "(", "templ", ",", "\"tinsrb%%?\\t%%0, %%2, #%d\"", ",", "i", ")", ";", "break", ";", "case", "E_V4HImode", ":", "sprintf", "(", "templ", ",", "\"tinsrh%%?\\t%%0, %%2, #%d\"", ",", "i", ")", ";", "break", ";", "case", "E_V2SImode", ":", "sprintf", "(", "templ", ",", "\"tinsrw%%?\\t%%0, %%2, #%d\"", ",", "i", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "break", ";", "}", "output_asm_insn", "(", "templ", ",", "operands", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "assembly", "for", "a", "WMMX", "tinsr", "instruction", "."], "TS_V_token": ["arm", "3", "50", "0", "1", "0", "0", "0x01", "1", "1", "0", "\"tinsrb%%?\\t%%0, %%2, #%d\"", "\"tinsrh%%?\\t%%0, %%2, #%d\"", "\"tinsrw%%?\\t%%0, %%2, #%d\"", "\"\""], "File": "arm", "Func": "arm_output_iwmmxt_tinsr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45086, "Length": 174}
{"ground_truth": ["", "static", "void", "arm_output_mi_thunk", "(", "FILE", "*", "file", ",", "tree", "thunk", ",", "HOST_WIDE_INT", "delta", ",", "HOST_WIDE_INT", "vcall_offset", ",", "tree", "function", ")", "{", "const", "char", "*", "fnname", "=", "IDENTIFIER_POINTER", "(", "DECL_ASSEMBLER_NAME", "(", "thunk", ")", ")", ";", "assemble_start_function", "(", "thunk", ",", "fnname", ")", ";", "if", "(", "TARGET_32BIT", ")", "arm32_output_mi_thunk", "(", "file", ",", "thunk", ",", "delta", ",", "vcall_offset", ",", "function", ")", ";", "else", "arm_thumb1_mi_thunk", "(", "file", ",", "thunk", ",", "delta", ",", "vcall_offset", ",", "function", ")", ";", "assemble_end_function", "(", "thunk", ",", "fnname", ")", ";", "}", ""], "natrual_language": ["Output", "code", "to", "add", "DELTA", "to", "the", "first", "argument", ",", "and", "then", "jump", "to", "FUNCTION", ".", "Used", "for", "C++", "multiple", "inheritance", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_output_mi_thunk", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45087, "Length": 80}
{"ground_truth": ["", "void", "arm_output_multireg_pop", "(", "rtx", "*", "operands", ",", "bool", "return_pc", ",", "rtx", "cond", ",", "bool", "reverse", ",", "bool", "update", ")", "{", "int", "i", ";", "char", "pattern", "[", "100", "]", ";", "int", "offset", ";", "const", "char", "*", "conditional", ";", "int", "num_saves", "=", "XVECLEN", "(", "operands", "[", "0", "]", ",", "0", ")", ";", "unsigned", "int", "regno", ";", "unsigned", "int", "regno_base", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "bool", "interrupt_p", "=", "IS_INTERRUPT", "(", "arm_current_func_type", "(", ")", ")", ";", "offset", "=", "0", ";", "offset", "+=", "update", "?", "1", ":", "0", ";", "offset", "+=", "return_pc", "?", "1", ":", "0", ";", "for", "(", "i", "=", "offset", ";", "i", "<", "num_saves", ";", "i", "++", ")", "{", "regno", "=", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "i", ")", ",", "0", ")", ")", ";", "gcc_assert", "(", "(", "regno", "!=", "SP_REGNUM", ")", "||", "(", "regno_base", "==", "SP_REGNUM", ")", ")", ";", "if", "(", "regno", "==", "regno_base", ")", "gcc_assert", "(", "!", "update", ")", ";", "}", "conditional", "=", "reverse", "?", "\"%?%D0\"", ":", "\"%?%d0\"", ";", "if", "(", "(", "regno_base", "==", "SP_REGNUM", ")", "&&", "update", "&&", "!", "(", "interrupt_p", "&&", "return_pc", ")", ")", "sprintf", "(", "pattern", ",", "\"pop%s\\t{\"", ",", "conditional", ")", ";", "else", "{", "if", "(", "regno_base", "==", "SP_REGNUM", ")", "sprintf", "(", "pattern", ",", "\"ldmfd%s\\t\"", ",", "conditional", ")", ";", "else", "if", "(", "update", ")", "sprintf", "(", "pattern", ",", "\"ldmia%s\\t\"", ",", "conditional", ")", ";", "else", "sprintf", "(", "pattern", ",", "\"ldm%s\\t\"", ",", "conditional", ")", ";", "strcat", "(", "pattern", ",", "reg_names", "[", "regno_base", "]", ")", ";", "if", "(", "update", ")", "strcat", "(", "pattern", ",", "\"!, {\"", ")", ";", "else", "strcat", "(", "pattern", ",", "\", {\"", ")", ";", "}", "strcat", "(", "pattern", ",", "reg_names", "[", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "offset", ")", ",", "0", ")", ")", "]", ")", ";", "for", "(", "i", "=", "offset", "+", "1", ";", "i", "<", "num_saves", ";", "i", "++", ")", "{", "strcat", "(", "pattern", ",", "\", \"", ")", ";", "strcat", "(", "pattern", ",", "reg_names", "[", "REGNO", "(", "XEXP", "(", "XVECEXP", "(", "operands", "[", "0", "]", ",", "0", ",", "i", ")", ",", "0", ")", ")", "]", ")", ";", "}", "strcat", "(", "pattern", ",", "\"}\"", ")", ";", "if", "(", "interrupt_p", "&&", "return_pc", ")", "strcat", "(", "pattern", ",", "\"^\"", ")", ";", "output_asm_insn", "(", "pattern", ",", "&", "cond", ")", ";", "}", ""], "natrual_language": ["OPERANDS", "[", "0", "]", "is", "the", "entire", "list", "of", "insns", "that", "constitute", "pop", ",", "OPERANDS", "[", "1", "]", "is", "the", "base", "register", ",", "RETURN_PC", "is", "true", "iff", "return", "insn", "is", "in", "the", "list", ",", "UPDATE", "is", "true", "iff", "the", "list", "contains", "explicit", "update", "of", "base", "register", "."], "TS_V_token": ["arm", "100", "0", "0", "1", "0", "1", "0", "1", "0", "0", "0", "0", "\"%?%D0\"", "\"%?%d0\"", "\"pop%s\\t{\"", "\"ldmfd%s\\t\"", "\"ldmia%s\\t\"", "\"ldm%s\\t\"", "\"!, {\"", "\", {\"", "0", "0", "0", "1", "\", \"", "0", "0", "0", "\"}\"", "\"^\""], "File": "arm", "Func": "arm_output_multireg_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45088, "Length": 374}
{"ground_truth": ["", "const", "char", "*", "arm_output_shift", "(", "rtx", "*", "operands", ",", "int", "set_flags", ")", "{", "char", "pattern", "[", "100", "]", ";", "static", "const", "char", "flag_chars", "[", "3", "]", "=", "{", "'?'", ",", "'.'", ",", "'!'", "}", ";", "const", "char", "*", "shift", ";", "HOST_WIDE_INT", "val", ";", "char", "c", ";", "c", "=", "flag_chars", "[", "set_flags", "]", ";", "shift", "=", "shift_op", "(", "operands", "[", "3", "]", ",", "&", "val", ")", ";", "if", "(", "shift", ")", "{", "if", "(", "val", "!=", "-", "1", ")", "operands", "[", "2", "]", "=", "GEN_INT", "(", "val", ")", ";", "sprintf", "(", "pattern", ",", "\"%s%%%c\\t%%0, %%1, %%2\"", ",", "shift", ",", "c", ")", ";", "}", "else", "sprintf", "(", "pattern", ",", "\"mov%%%c\\t%%0, %%1\"", ",", "c", ")", ";", "output_asm_insn", "(", "pattern", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "assembly", "for", "a", "shift", "instruction", ".", "SET_FLAGS", "determines", "how", "the", "instruction", "modifies", "the", "condition", "codes", ".", "0", "-", "Do", "not", "set", "condition", "codes", ".", "1", "-", "Set", "condition", "codes", ".", "2", "-", "Use", "smallest", "instruction", "."], "TS_V_token": ["arm", "100", "3", "3", "1", "2", "\"%s%%%c\\t%%0, %%1, %%2\"", "\"mov%%%c\\t%%0, %%1\"", "\"\""], "File": "arm", "Func": "arm_output_shift", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45089, "Length": 121}
{"ground_truth": ["", "static", "bool", "arm_output_ttype", "(", "rtx", "x", ")", "{", "fputs", "(", "\"\\t.word\\t\"", ",", "asm_out_file", ")", ";", "output_addr_const", "(", "asm_out_file", ",", "x", ")", ";", "if", "(", "!", "CONST_INT_P", "(", "x", ")", ")", "fputs", "(", "\"(TARGET2)\"", ",", "asm_out_file", ")", ";", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "TRUE", ";", "}", ""], "natrual_language": ["Output", "a", "reference", "from", "a", "function", "exception", "table", "to", "the", "type_info", "object", "X", ".", "The", "EABI", "specifies", "that", "the", "symbol", "should", "be", "relocated", "by", "an", "R_ARM_TARGET2", "relocation", "."], "TS_V_token": ["arm", "\"\\t.word\\t\"", "\"(TARGET2)\""], "File": "arm", "Func": "arm_output_ttype", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45090, "Length": 48}
{"ground_truth": ["", "static", "void", "arm_override_options_after_change", "(", "void", ")", "{", "arm_override_options_after_change_1", "(", "&", "global_options", ",", "&", "global_options_set", ")", ";", "}", ""], "natrual_language": ["Implement", "targetm.override_options_after_change", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_override_options_after_change", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45091, "Length": 17}
{"ground_truth": ["", "bool", "arm_pad_reg_upward", "(", "machine_mode", "mode", ",", "tree", "type", ",", "int", "first", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "TARGET_AAPCS_BASED", "&&", "BYTES_BIG_ENDIAN", ")", "{", "if", "(", "type", ")", "{", "if", "(", "(", "AGGREGATE_TYPE_P", "(", "type", ")", "||", "TREE_CODE", "(", "type", ")", "==", "COMPLEX_TYPE", "||", "FIXED_POINT_TYPE_P", "(", "type", ")", ")", "&&", "int_size_in_bytes", "(", "type", ")", "<=", "4", ")", "return", "true", ";", "}", "else", "{", "if", "(", "(", "COMPLEX_MODE_P", "(", "mode", ")", "||", "ALL_FIXED_POINT_MODE_P", "(", "mode", ")", ")", "&&", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "return", "true", ";", "}", "}", "return", "!", "BYTES_BIG_ENDIAN", ";", "}", ""], "natrual_language": ["Similarly", ",", "for", "use", "by", "BLOCK_REG_PADDING", "(", "MODE", ",", "TYPE", ",", "FIRST", ")", ".", "For", "non-AAPCS", ",", "return", "!", "BYTES_BIG_ENDIAN", "if", "the", "least", "significant", "byte", "of", "the", "register", "has", "useful", "data", ",", "and", "return", "the", "opposite", "if", "the", "most", "significant", "byte", "does", ".", "For", "AAPCS", ",", "small", "aggregates", "and", "small", "complex", "types", "are", "always", "padded", "upwards", "."], "TS_V_token": ["arm", "4", "4"], "File": "arm", "Func": "arm_pad_reg_upward", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45092, "Length": 91}
{"ground_truth": ["", "static", "bool", "arm_pass_by_reference", "(", "cumulative_args_t", ",", "const", "function_arg_info", "&", "arg", ")", "{", "return", "arg", ".", "type", "&&", "TREE_CODE", "(", "TYPE_SIZE", "(", "arg", ".", "type", ")", ")", "!=", "INTEGER_CST", ";", "}", ""], "natrual_language": ["Variable", "sized", "types", "are", "passed", "by", "reference", ".", "This", "is", "a", "GCC", "extension", "to", "the", "ARM", "ABI", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_pass_by_reference", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45093, "Length": 30}
{"ground_truth": ["", "static", "rtx_insn", "*", "arm_pic_static_addr", "(", "rtx", "orig", ",", "rtx", "reg", ")", "{", "rtx", "l1", ",", "labelno", ",", "offset_rtx", ";", "rtx_insn", "*", "insn", ";", "gcc_assert", "(", "flag_pic", ")", ";", "bool", "is_readonly", "=", "false", ";", "bool", "info_known", "=", "false", ";", "if", "(", "TARGET_FDPIC", "&&", "SYMBOL_REF_P", "(", "orig", ")", "&&", "!", "SYMBOL_REF_FUNCTION_P", "(", "orig", ")", ")", "info_known", "=", "arm_is_segment_info_known", "(", "orig", ",", "&", "is_readonly", ")", ";", "if", "(", "TARGET_FDPIC", "&&", "SYMBOL_REF_P", "(", "orig", ")", "&&", "!", "SYMBOL_REF_FUNCTION_P", "(", "orig", ")", "&&", "!", "info_known", ")", "{", "rtx", "pic_reg", "=", "gen_rtx_REG", "(", "Pmode", ",", "FDPIC_REGNUM", ")", ";", "insn", "=", "calculate_pic_address_constant", "(", "reg", ",", "pic_reg", ",", "orig", ")", ";", "}", "else", "if", "(", "TARGET_FDPIC", "&&", "SYMBOL_REF_P", "(", "orig", ")", "&&", "(", "SYMBOL_REF_FUNCTION_P", "(", "orig", ")", "||", "!", "is_readonly", ")", ")", "{", "rtx", "pic_reg", "=", "gen_rtx_REG", "(", "Pmode", ",", "FDPIC_REGNUM", ")", ";", "rtx", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "orig", ")", ",", "UNSPEC_PIC_SYM", ")", ";", "emit_insn", "(", "gen_movsi", "(", "reg", ",", "l1", ")", ")", ";", "insn", "=", "emit_insn", "(", "gen_addsi3", "(", "reg", ",", "reg", ",", "pic_reg", ")", ")", ";", "}", "else", "{", "labelno", "=", "GEN_INT", "(", "pic_labelno", "++", ")", ";", "l1", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "1", ",", "labelno", ")", ",", "UNSPEC_PIC_LABEL", ")", ";", "l1", "=", "gen_rtx_CONST", "(", "VOIDmode", ",", "l1", ")", ";", "offset_rtx", "=", "plus_constant", "(", "Pmode", ",", "l1", ",", "TARGET_ARM", "?", "8", ":", "4", ")", ";", "offset_rtx", "=", "gen_rtx_UNSPEC", "(", "Pmode", ",", "gen_rtvec", "(", "2", ",", "orig", ",", "offset_rtx", ")", ",", "UNSPEC_SYMBOL_OFFSET", ")", ";", "offset_rtx", "=", "gen_rtx_CONST", "(", "Pmode", ",", "offset_rtx", ")", ";", "insn", "=", "emit_insn", "(", "gen_pic_load_addr_unified", "(", "reg", ",", "offset_rtx", ",", "labelno", ")", ")", ";", "}", "return", "insn", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "the", "address", "of", "a", "static", "var", "when", "flag_pic", "is", "set", "."], "TS_V_token": ["arm", "1", "1", "8", "4", "2"], "File": "arm", "Func": "arm_pic_static_addr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45094, "Length": 273}
{"ground_truth": ["", "void", "arm_poke_function_name", "(", "FILE", "*", "stream", ",", "const", "char", "*", "name", ")", "{", "unsigned", "long", "alignlength", ";", "unsigned", "long", "length", ";", "rtx", "x", ";", "length", "=", "strlen", "(", "name", ")", "+", "1", ";", "alignlength", "=", "ROUND_UP_WORD", "(", "length", ")", ";", "ASM_OUTPUT_ASCII", "(", "stream", ",", "name", ",", "length", ")", ";", "ASM_OUTPUT_ALIGN", "(", "stream", ",", "2", ")", ";", "x", "=", "GEN_INT", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "0xff000000", "+", "alignlength", ")", ";", "assemble_aligned_integer", "(", "UNITS_PER_WORD", ",", "x", ")", ";", "}", ""], "natrual_language": ["Write", "the", "function", "name", "into", "the", "code", "section", ",", "directly", "preceding", "the", "function", "prologue", ".", "Code", "will", "be", "output", "similar", "to", "this", ":", "t0", ".ascii", "``", "arm_poke_function_name", "''", ",", "0", ".align", "t1", ".word", "0xff000000", "+", "(", "t1", "-", "t0", ")", "arm_poke_function_name", "mov", "ip", ",", "sp", "stmfd", "sp", "!", ",", "{", "fp", ",", "ip", ",", "lr", ",", "pc", "}", "sub", "fp", ",", "ip", ",", "#", "4", "When", "performing", "a", "stack", "backtrace", ",", "code", "can", "inspect", "the", "value", "of", "'pc", "'", "stored", "at", "'fp", "'", "+", "0", ".", "If", "the", "trace", "function", "then", "looks", "at", "location", "pc", "-", "12", "and", "the", "top", "8", "bits", "are", "set", ",", "then", "we", "know", "that", "there", "is", "a", "function", "name", "embedded", "immediately", "preceding", "this", "location", "and", "has", "length", "(", "(", "pc", "[", "-3", "]", ")", "&", "0xff000000", ")", ".", "We", "assume", "that", "pc", "is", "declared", "as", "a", "pointer", "to", "an", "unsigned", "long", ".", "It", "is", "of", "no", "benefit", "to", "output", "the", "function", "name", "if", "we", "are", "assembling", "a", "leaf", "function", ".", "These", "function", "types", "will", "not", "contain", "a", "stack", "backtrace", "structure", ",", "therefore", "it", "is", "not", "possible", "to", "determine", "the", "function", "name", "."], "TS_V_token": ["arm", "1", "2", "0xff000000"], "File": "arm", "Func": "arm_poke_function_name", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45095, "Length": 77}
{"ground_truth": ["", "static", "reg_class_t", "arm_preferred_reload_class", "(", "rtx", "x", "ATTRIBUTE_UNUSED", ",", "reg_class_t", "rclass", ")", "{", "if", "(", "TARGET_32BIT", ")", "return", "rclass", ";", "else", "{", "if", "(", "rclass", "==", "GENERAL_REGS", ")", "return", "LO_REGS", ";", "else", "return", "rclass", ";", "}", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_PREFERRED_RELOAD_CLASS", ".", "Given", "an", "rtx", "X", "being", "reloaded", "into", "a", "reg", "required", "to", "be", "in", "class", "CLASS", ",", "return", "the", "class", "of", "reg", "to", "actually", "use", ".", "In", "general", "this", "is", "just", "CLASS", ",", "but", "for", "the", "Thumb", "core", "registers", "and", "immediate", "constants", "we", "prefer", "a", "LO_REGS", "class", "or", "a", "subset", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_preferred_reload_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45096, "Length": 36}
{"ground_truth": ["", "static", "machine_mode", "arm_preferred_simd_mode", "(", "scalar_mode", "mode", ")", "{", "if", "(", "TARGET_NEON", ")", "switch", "(", "mode", ")", "{", "case", "E_HFmode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V4HFmode", ":", "V8HFmode", ";", "case", "E_SFmode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V2SFmode", ":", "V4SFmode", ";", "case", "E_SImode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V2SImode", ":", "V4SImode", ";", "case", "E_HImode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V4HImode", ":", "V8HImode", ";", "case", "E_QImode", ":", "return", "TARGET_NEON_VECTORIZE_DOUBLE", "?", "V8QImode", ":", "V16QImode", ";", "case", "E_DImode", ":", "if", "(", "!", "TARGET_NEON_VECTORIZE_DOUBLE", ")", "return", "V2DImode", ";", "break", ";", "default", ":", ";", "}", "if", "(", "TARGET_REALLY_IWMMXT", ")", "switch", "(", "mode", ")", "{", "case", "E_SImode", ":", "return", "V2SImode", ";", "case", "E_HImode", ":", "return", "V4HImode", ";", "case", "E_QImode", ":", "return", "V8QImode", ";", "default", ":", ";", "}", "if", "(", "TARGET_HAVE_MVE", ")", "switch", "(", "mode", ")", "{", "case", "E_QImode", ":", "return", "V16QImode", ";", "case", "E_HImode", ":", "return", "V8HImode", ";", "case", "E_SImode", ":", "return", "V4SImode", ";", "default", ":", ";", "}", "if", "(", "TARGET_HAVE_MVE_FLOAT", ")", "switch", "(", "mode", ")", "{", "case", "E_HFmode", ":", "return", "V8HFmode", ";", "case", "E_SFmode", ":", "return", "V4SFmode", ";", "default", ":", ";", "}", "return", "word_mode", ";", "}", ""], "natrual_language": ["Use", "the", "option", "-mvectorize-with-neon-double", "to", "override", "the", "use", "of", "quardword", "registers", "when", "autovectorizing", "for", "Neon", ",", "at", "least", "until", "multiple", "vector", "widths", "are", "supported", "properly", "by", "the", "middle-end", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_preferred_simd_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45097, "Length": 175}
{"ground_truth": ["", "static", "void", "arm_pre_atomic_barrier", "(", "enum", "memmodel", "model", ")", "{", "if", "(", "need_atomic_barrier_p", "(", "model", ",", "true", ")", ")", "emit_insn", "(", "gen_memory_barrier", "(", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "memory", "barrier", "around", "an", "atomic", "sequence", "according", "to", "MODEL", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_pre_atomic_barrier", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45098, "Length": 26}
{"ground_truth": ["", "static", "void", "arm_print_asm_arch_directives", "(", "FILE", "*", "stream", ",", "cl_target_option", "*", "targ_options", ")", "{", "arm_build_target", "build_target", ";", "if", "(", "last_asm_targ_options", "==", "targ_options", ")", "return", ";", "last_asm_targ_options", "=", "targ_options", ";", "build_target", ".", "isa", "=", "sbitmap_alloc", "(", "isa_num_bits", ")", ";", "arm_configure_build_target", "(", "&", "build_target", ",", "targ_options", ",", "false", ")", ";", "if", "(", "build_target", ".", "core_name", "&&", "!", "bitmap_bit_p", "(", "build_target", ".", "isa", ",", "isa_bit_quirk_no_asmcpu", ")", ")", "{", "const", "char", "*", "truncated_name", "=", "arm_rewrite_selected_cpu", "(", "build_target", ".", "core_name", ")", ";", "asm_fprintf", "(", "stream", ",", "\"\\t.cpu %s\\n\"", ",", "truncated_name", ")", ";", "}", "const", "arch_option", "*", "arch", "=", "arm_parse_arch_option_name", "(", "all_architectures", ",", "\"-march\"", ",", "build_target", ".", "arch_name", ")", ";", "auto_sbitmap", "opt_bits", "(", "isa_num_bits", ")", ";", "gcc_assert", "(", "arch", ")", ";", "if", "(", "strcmp", "(", "build_target", ".", "arch_name", ",", "\"armv7ve\"", ")", "==", "0", ")", "{", "asm_fprintf", "(", "stream", ",", "\"\\t.arch armv7-a\\n\"", ")", ";", "asm_fprintf", "(", "stream", ",", "\"\\t.arch_extension virt\\n\"", ")", ";", "asm_fprintf", "(", "stream", ",", "\"\\t.arch_extension idiv\\n\"", ")", ";", "asm_fprintf", "(", "stream", ",", "\"\\t.arch_extension sec\\n\"", ")", ";", "asm_fprintf", "(", "stream", ",", "\"\\t.arch_extension mp\\n\"", ")", ";", "}", "else", "asm_fprintf", "(", "stream", ",", "\"\\t.arch %s\\n\"", ",", "build_target", ".", "arch_name", ")", ";", "const", "char", "*", "fpu_name", "=", "(", "TARGET_SOFT_FLOAT", "?", "\"softvfp\"", ":", "arm_identify_fpu_from_isa", "(", "build_target", ".", "isa", ")", ")", ";", "asm_fprintf", "(", "stream", ",", "\"\\t.fpu %s\\n\"", ",", "fpu_name", ")", ";", "if", "(", "!", "arch", "->", "common", ".", "extensions", ")", "return", ";", "for", "(", "const", "struct", "cpu_arch_extension", "*", "opt", "=", "arch", "->", "common", ".", "extensions", ";", "opt", "->", "name", "!=", "NULL", ";", "opt", "++", ")", "{", "if", "(", "!", "opt", "->", "remove", ")", "{", "arm_initialize_isa", "(", "opt_bits", ",", "opt", "->", "isa_bits", ")", ";", "if", "(", "(", "bitmap_bit_p", "(", "opt_bits", ",", "isa_bit_mve", ")", "&&", "!", "TARGET_HAVE_MVE", ")", "||", "(", "bitmap_bit_p", "(", "opt_bits", ",", "isa_bit_mve_float", ")", "&&", "!", "TARGET_HAVE_MVE_FLOAT", ")", ")", "continue", ";", "if", "(", "bitmap_subset_p", "(", "opt_bits", ",", "build_target", ".", "isa", ")", "&&", "!", "bitmap_subset_p", "(", "opt_bits", ",", "isa_all_fpubits_internal", ")", ")", "asm_fprintf", "(", "stream", ",", "\"\\t.arch_extension %s\\n\"", ",", "opt", "->", "name", ")", ";", "}", "}", "}", ""], "natrual_language": ["Print", ".arch", "and", ".arch_extension", "directives", "corresponding", "to", "the", "current", "architecture", "configuration", "."], "TS_V_token": ["arm", "\"\\t.cpu %s\\n\"", "\"-march\"", "\"armv7ve\"", "0", "\"\\t.arch armv7-a\\n\"", "\"\\t.arch_extension virt\\n\"", "\"\\t.arch_extension idiv\\n\"", "\"\\t.arch_extension sec\\n\"", "\"\\t.arch_extension mp\\n\"", "\"\\t.arch %s\\n\"", "\"softvfp\"", "\"\\t.fpu %s\\n\"", "\"\\t.arch_extension %s\\n\""], "File": "arm", "Func": "arm_print_asm_arch_directives", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45099, "Length": 315}
{"ground_truth": ["", "static", "void", "arm_print_condition", "(", "FILE", "*", "stream", ")", "{", "if", "(", "arm_ccfsm_state", "==", "3", "||", "arm_ccfsm_state", "==", "4", ")", "{", "if", "(", "TARGET_THUMB", ")", "{", "output_operand_lossage", "(", "\"predicated Thumb instruction\"", ")", ";", "return", ";", "}", "if", "(", "current_insn_predicate", "!=", "NULL", ")", "{", "output_operand_lossage", "(", "\"predicated instruction in conditional sequence\"", ")", ";", "return", ";", "}", "fputs", "(", "arm_condition_codes", "[", "arm_current_cc", "]", ",", "stream", ")", ";", "}", "else", "if", "(", "current_insn_predicate", ")", "{", "enum", "arm_cond_code", "code", ";", "if", "(", "TARGET_THUMB1", ")", "{", "output_operand_lossage", "(", "\"predicated Thumb instruction\"", ")", ";", "return", ";", "}", "code", "=", "get_arm_condition_code", "(", "current_insn_predicate", ")", ";", "fputs", "(", "arm_condition_codes", "[", "code", "]", ",", "stream", ")", ";", "}", "}", ""], "natrual_language": ["Print", "condition", "code", "to", "STREAM", ".", "Helper", "function", "for", "arm_print_operand", "."], "TS_V_token": ["arm", "3", "4", "\"predicated Thumb instruction\"", "\"predicated instruction in conditional sequence\"", "\"predicated Thumb instruction\""], "File": "arm", "Func": "arm_print_condition", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45100, "Length": 101}
{"ground_truth": ["", "static", "bool", "arm_print_operand_punct_valid_p", "(", "unsigned", "char", "code", ")", "{", "return", "(", "code", "==", "'@'", "||", "code", "==", "'|'", "||", "code", "==", "'.'", "||", "code", "==", "'('", "||", "code", "==", "')'", "||", "code", "==", "'#'", "||", "(", "TARGET_32BIT", "&&", "(", "code", "==", "'?'", ")", ")", "||", "(", "TARGET_THUMB2", "&&", "(", "code", "==", "'!'", ")", ")", "||", "(", "TARGET_THUMB", "&&", "(", "code", "==", "'_'", ")", ")", ")", ";", "}", ""], "natrual_language": ["Target", "hook", "for", "indicating", "whether", "a", "punctuation", "character", "for", "TARGET_PRINT_OPERAND", "is", "valid", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_print_operand_punct_valid_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45101, "Length": 67}
{"ground_truth": ["", "void", "arm_print_tune_info", "(", "void", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\"", "ASM_COMMENT_START", "\".tune parameters\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"constant_limit:\\t%d\\n\"", ",", "current_tune", "->", "constant_limit", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"max_insns_skipped:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_skipped", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefetch.num_slots:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "num_slots", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefetch.l1_cache_size:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "l1_cache_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefetch.l1_cache_line_size:\\t%d\\n\"", ",", "current_tune", "->", "prefetch", ".", "l1_cache_line_size", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefer_constant_pool:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_constant_pool", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"branch_cost:\\t(s:speed, p:predictable)\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\ts&p\\tcost\\n\"", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t00\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t01\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "false", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t10\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "false", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"\\t\\t11\\t%d\\n\"", ",", "current_tune", "->", "branch_cost", "(", "true", ",", "true", ")", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"prefer_ldrd_strd:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "prefer_ldrd_strd", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"logical_op_non_short_circuit:\\t[%d,%d]\\n\"", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit_thumb", ",", "(", "int", ")", "current_tune", "->", "logical_op_non_short_circuit_arm", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"disparage_flag_setting_t16_encodings:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "disparage_flag_setting_t16_encodings", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"string_ops_prefer_neon:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "string_ops_prefer_neon", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"max_insns_inline_memset:\\t%d\\n\"", ",", "current_tune", "->", "max_insns_inline_memset", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"fusible_ops:\\t%u\\n\"", ",", "current_tune", "->", "fusible_ops", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\t\\t\"", "ASM_COMMENT_START", "\"sched_autopref:\\t%d\\n\"", ",", "(", "int", ")", "current_tune", "->", "sched_autopref", ")", ";", "}", ""], "natrual_language": ["This", "function", "is", "used", "to", "print", "CPU", "tuning", "information", "as", "comment", "in", "assembler", "file", ".", "Pointers", "are", "not", "printed", "for", "now", "."], "TS_V_token": ["arm", "\"\\t\"", "\".tune parameters\\n\"", "\"\\t\\t\"", "\"constant_limit:\\t%d\\n\"", "\"\\t\\t\"", "\"max_insns_skipped:\\t%d\\n\"", "\"\\t\\t\"", "\"prefetch.num_slots:\\t%d\\n\"", "\"\\t\\t\"", "\"prefetch.l1_cache_size:\\t%d\\n\"", "\"\\t\\t\"", "\"prefetch.l1_cache_line_size:\\t%d\\n\"", "\"\\t\\t\"", "\"prefer_constant_pool:\\t%d\\n\"", "\"\\t\\t\"", "\"branch_cost:\\t(s:speed, p:predictable)\\n\"", "\"\\t\\t\"", "\"\\t\\ts&p\\tcost\\n\"", "\"\\t\\t\"", "\"\\t\\t00\\t%d\\n\"", "\"\\t\\t\"", "\"\\t\\t01\\t%d\\n\"", "\"\\t\\t\"", "\"\\t\\t10\\t%d\\n\"", "\"\\t\\t\"", "\"\\t\\t11\\t%d\\n\"", "\"\\t\\t\"", "\"prefer_ldrd_strd:\\t%d\\n\"", "\"\\t\\t\"", "\"logical_op_non_short_circuit:\\t[%d,%d]\\n\"", "\"\\t\\t\"", "\"disparage_flag_setting_t16_encodings:\\t%d\\n\"", "\"\\t\\t\"", "\"string_ops_prefer_neon:\\t%d\\n\"", "\"\\t\\t\"", "\"max_insns_inline_memset:\\t%d\\n\"", "\"\\t\\t\"", "\"fusible_ops:\\t%u\\n\"", "\"\\t\\t\"", "\"sched_autopref:\\t%d\\n\""], "File": "arm", "Func": "arm_print_tune_info", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45102, "Length": 306}
{"ground_truth": ["", "static", "void", "arm_print_value", "(", "FILE", "*", "f", ",", "rtx", "x", ")", "{", "switch", "(", "GET_CODE", "(", "x", ")", ")", "{", "case", "CONST_INT", ":", "fprintf", "(", "f", ",", "HOST_WIDE_INT_PRINT_HEX", ",", "INTVAL", "(", "x", ")", ")", ";", "return", ";", "case", "CONST_DOUBLE", ":", "{", "char", "fpstr", "[", "20", "]", ";", "real_to_decimal", "(", "fpstr", ",", "CONST_DOUBLE_REAL_VALUE", "(", "x", ")", ",", "sizeof", "(", "fpstr", ")", ",", "0", ",", "1", ")", ";", "fputs", "(", "fpstr", ",", "f", ")", ";", "}", "return", ";", "case", "CONST_VECTOR", ":", "{", "int", "i", ";", "fprintf", "(", "f", ",", "\"<\"", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "CONST_VECTOR_NUNITS", "(", "x", ")", ";", "i", "++", ")", "{", "fprintf", "(", "f", ",", "HOST_WIDE_INT_PRINT_HEX", ",", "INTVAL", "(", "CONST_VECTOR_ELT", "(", "x", ",", "i", ")", ")", ")", ";", "if", "(", "i", "<", "(", "CONST_VECTOR_NUNITS", "(", "x", ")", "-", "1", ")", ")", "fputc", "(", "','", ",", "f", ")", ";", "}", "fprintf", "(", "f", ",", "\">\"", ")", ";", "}", "return", ";", "case", "CONST_STRING", ":", "fprintf", "(", "f", ",", "\"\\\"%s\\\"\"", ",", "XSTR", "(", "x", ",", "0", ")", ")", ";", "return", ";", "case", "SYMBOL_REF", ":", "fprintf", "(", "f", ",", "\"`%s'\"", ",", "XSTR", "(", "x", ",", "0", ")", ")", ";", "return", ";", "case", "LABEL_REF", ":", "fprintf", "(", "f", ",", "\"L%d\"", ",", "INSN_UID", "(", "XEXP", "(", "x", ",", "0", ")", ")", ")", ";", "return", ";", "case", "CONST", ":", "arm_print_value", "(", "f", ",", "XEXP", "(", "x", ",", "0", ")", ")", ";", "return", ";", "case", "PLUS", ":", "arm_print_value", "(", "f", ",", "XEXP", "(", "x", ",", "0", ")", ")", ";", "fprintf", "(", "f", ",", "\"+\"", ")", ";", "arm_print_value", "(", "f", ",", "XEXP", "(", "x", ",", "1", ")", ")", ";", "return", ";", "case", "PC", ":", "fprintf", "(", "f", ",", "\"pc\"", ")", ";", "return", ";", "default", ":", "fprintf", "(", "f", ",", "\"????\"", ")", ";", "return", ";", "}", "}", ""], "natrual_language": ["Print", "a", "symbolic", "form", "of", "X", "to", "the", "debug", "file", ",", "F", "."], "TS_V_token": ["arm", "20", "0", "1", "\"<\"", "0", "1", "\">\"", "\"\\\"%s\\\"\"", "0", "\"`%s'\"", "0", "\"L%d\"", "0", "0", "0", "\"+\"", "1", "\"pc\"", "\"????\""], "File": "arm", "Func": "arm_print_value", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45103, "Length": 293}
{"ground_truth": ["", "static", "tree", "arm_promoted_type", "(", "const_tree", "t", ")", "{", "if", "(", "SCALAR_FLOAT_TYPE_P", "(", "t", ")", "&&", "TYPE_PRECISION", "(", "t", ")", "==", "16", "&&", "TYPE_MAIN_VARIANT", "(", "t", ")", "==", "arm_fp16_type_node", ")", "return", "float_type_node", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Implement", "TARGET_PROMOTED_TYPE", "."], "TS_V_token": ["arm", "16"], "File": "arm", "Func": "arm_promoted_type", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45104, "Length": 36}
{"ground_truth": ["", "static", "bool", "arm_promote_prototypes", "(", "const_tree", "t", "ATTRIBUTE_UNUSED", ")", "{", "return", "!", "TARGET_AAPCS_BASED", ";", "}", ""], "natrual_language": ["We", "ca", "n't", "rely", "on", "the", "caller", "doing", "the", "proper", "promotion", "when", "using", "APCS", "or", "ATPCS", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_promote_prototypes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45105, "Length": 14}
{"ground_truth": ["", "static", "bool", "arm_r3_live_at_start_p", "(", "void", ")", "{", "return", "REGNO_REG_SET_P", "(", "df_get_live_out", "(", "ENTRY_BLOCK_PTR_FOR_FN", "(", "cfun", ")", ")", ",", "3", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "r3", "is", "live", "at", "the", "start", "of", "the", "function", "."], "TS_V_token": ["arm", "3"], "File": "arm", "Func": "arm_r3_live_at_start_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45106, "Length": 22}
{"ground_truth": ["", "int", "arm_register_move_cost", "(", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "reg_class_t", "from", ",", "reg_class_t", "to", ")", "{", "if", "(", "TARGET_32BIT", ")", "{", "if", "(", "(", "IS_VFP_CLASS", "(", "from", ")", "&&", "!", "IS_VFP_CLASS", "(", "to", ")", ")", "||", "(", "!", "IS_VFP_CLASS", "(", "from", ")", "&&", "IS_VFP_CLASS", "(", "to", ")", ")", ")", "return", "15", ";", "else", "if", "(", "(", "from", "==", "IWMMXT_REGS", "&&", "to", "!=", "IWMMXT_REGS", ")", "||", "(", "from", "!=", "IWMMXT_REGS", "&&", "to", "==", "IWMMXT_REGS", ")", ")", "return", "4", ";", "else", "if", "(", "from", "==", "IWMMXT_GR_REGS", "||", "to", "==", "IWMMXT_GR_REGS", ")", "return", "20", ";", "else", "return", "2", ";", "}", "else", "{", "if", "(", "from", "==", "HI_REGS", "||", "to", "==", "HI_REGS", ")", "return", "4", ";", "else", "return", "2", ";", "}", "}", ""], "natrual_language": ["Implement", "TARGET_REGISTER_MOVE_COST", ".", "Moves", "between", "VFP_REGS", "and", "GENERAL_REGS", "are", "a", "single", "insn", ",", "but", "it", "is", "typically", "more", "expensive", "than", "a", "single", "memory", "access", ".", "We", "set", "the", "cost", "to", "less", "than", "two", "memory", "accesses", "so", "that", "floating", "point", "to", "integer", "conversion", "does", "not", "go", "through", "memory", "."], "TS_V_token": ["arm", "15", "4", "20", "2", "4", "2"], "File": "arm", "Func": "arm_register_move_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45107, "Length": 116}
{"ground_truth": ["", "enum", "reg_class", "arm_regno_class", "(", "int", "regno", ")", "{", "if", "(", "regno", "==", "PC_REGNUM", ")", "return", "NO_REGS", ";", "if", "(", "IS_VPR_REGNUM", "(", "regno", ")", ")", "return", "VPR_REG", ";", "if", "(", "TARGET_THUMB1", ")", "{", "if", "(", "regno", "==", "STACK_POINTER_REGNUM", ")", "return", "STACK_REG", ";", "if", "(", "regno", "==", "CC_REGNUM", ")", "return", "CC_REG", ";", "if", "(", "regno", "<", "8", ")", "return", "LO_REGS", ";", "return", "HI_REGS", ";", "}", "if", "(", "TARGET_THUMB2", "&&", "regno", "<", "8", ")", "return", "LO_REGS", ";", "if", "(", "regno", "<=", "LAST_ARM_REGNUM", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "regno", "==", "ARG_POINTER_REGNUM", ")", "return", "TARGET_THUMB2", "?", "HI_REGS", ":", "GENERAL_REGS", ";", "if", "(", "regno", "==", "CC_REGNUM", "||", "regno", "==", "VFPCC_REGNUM", ")", "return", "TARGET_THUMB2", "?", "CC_REG", ":", "NO_REGS", ";", "if", "(", "IS_VFP_REGNUM", "(", "regno", ")", ")", "{", "if", "(", "regno", "<=", "D7_VFP_REGNUM", ")", "return", "VFP_D0_D7_REGS", ";", "else", "if", "(", "regno", "<=", "LAST_LO_VFP_REGNUM", ")", "return", "VFP_LO_REGS", ";", "else", "return", "VFP_HI_REGS", ";", "}", "if", "(", "IS_IWMMXT_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_REGS", ";", "if", "(", "IS_IWMMXT_GR_REGNUM", "(", "regno", ")", ")", "return", "IWMMXT_GR_REGS", ";", "return", "NO_REGS", ";", "}", ""], "natrual_language": ["For", "efficiency", "and", "historical", "reasons", "LO_REGS", ",", "HI_REGS", "and", "CC_REGS", "are", "not", "used", "in", "arm", "mode", "."], "TS_V_token": ["arm", "8", "8"], "File": "arm", "Func": "arm_regno_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45108, "Length": 168}
{"ground_truth": ["", "static", "void", "arm_relayout_function", "(", "tree", "fndecl", ")", "{", "if", "(", "DECL_USER_ALIGN", "(", "fndecl", ")", ")", "return", ";", "tree", "callee_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "fndecl", ")", ";", "if", "(", "!", "callee_tree", ")", "callee_tree", "=", "target_option_default_node", ";", "struct", "cl_target_option", "*", "opts", "=", "TREE_TARGET_OPTION", "(", "callee_tree", ")", ";", "SET_DECL_ALIGN", "(", "fndecl", ",", "FUNCTION_ALIGNMENT", "(", "FUNCTION_BOUNDARY_P", "(", "opts", "->", "x_target_flags", ")", ")", ")", ";", "}", ""], "natrual_language": ["Hook", "to", "fix", "function", "'s", "alignment", "affected", "by", "target", "attribute", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_relayout_function", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45109, "Length": 60}
{"ground_truth": ["", "void", "arm_reset_previous_fndecl", "(", "void", ")", "{", "arm_previous_fndecl", "=", "NULL_TREE", ";", "}", ""], "natrual_language": ["Invalidate", "arm_previous_fndecl", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_reset_previous_fndecl", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45110, "Length": 11}
{"ground_truth": ["", "rtx", "arm_return_addr", "(", "int", "count", ",", "rtx", "frame", "ATTRIBUTE_UNUSED", ")", "{", "if", "(", "count", "!=", "0", ")", "return", "NULL_RTX", ";", "return", "get_hard_reg_initial_val", "(", "Pmode", ",", "LR_REGNUM", ")", ";", "}", ""], "natrual_language": ["Return", "an", "RTX", "indicating", "where", "the", "return", "address", "to", "the", "calling", "function", "can", "be", "found", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_return_addr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45111, "Length": 29}
{"ground_truth": ["", "static", "bool", "arm_return_in_memory", "(", "const_tree", "type", ",", "const_tree", "fntype", ")", "{", "HOST_WIDE_INT", "size", ";", "size", "=", "int_size_in_bytes", "(", "type", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "{", "if", "(", "!", "AGGREGATE_TYPE_P", "(", "type", ")", "&&", "TREE_CODE", "(", "type", ")", "!=", "VECTOR_TYPE", "&&", "TREE_CODE", "(", "type", ")", "!=", "COMPLEX_TYPE", ")", "return", "false", ";", "if", "(", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "size", ")", "<=", "UNITS_PER_WORD", ")", "return", "false", ";", "if", "(", "aapcs_select_return_coproc", "(", "type", ",", "fntype", ")", ">=", "0", ")", "return", "false", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "VECTOR_TYPE", ")", "return", "(", "size", "<", "0", "||", "size", ">", "(", "4", "*", "UNITS_PER_WORD", ")", ")", ";", "return", "true", ";", "}", "if", "(", "TREE_CODE", "(", "type", ")", "==", "VECTOR_TYPE", ")", "return", "(", "size", "<", "0", "||", "size", ">", "(", "4", "*", "UNITS_PER_WORD", ")", ")", ";", "if", "(", "!", "AGGREGATE_TYPE_P", "(", "type", ")", "&&", "(", "TREE_CODE", "(", "type", ")", "!=", "VECTOR_TYPE", ")", ")", "return", "false", ";", "if", "(", "arm_abi", "!=", "ARM_ABI_APCS", ")", "{", "return", "(", "size", "<", "0", "||", "size", ">", "UNITS_PER_WORD", ")", ";", "}", "if", "(", "size", "<", "0", "||", "size", ">", "UNITS_PER_WORD", ")", "return", "true", ";", "if", "(", "TREE_CODE", "(", "type", ")", "==", "RECORD_TYPE", ")", "{", "tree", "field", ";", "for", "(", "field", "=", "TYPE_FIELDS", "(", "type", ")", ";", "field", "&&", "TREE_CODE", "(", "field", ")", "!=", "FIELD_DECL", ";", "field", "=", "DECL_CHAIN", "(", "field", ")", ")", "continue", ";", "if", "(", "field", "==", "NULL", ")", "return", "false", ";", "if", "(", "FLOAT_TYPE_P", "(", "TREE_TYPE", "(", "field", ")", ")", ")", "return", "true", ";", "if", "(", "arm_return_in_memory", "(", "TREE_TYPE", "(", "field", ")", ",", "NULL_TREE", ")", ")", "return", "true", ";", "for", "(", "field", "=", "DECL_CHAIN", "(", "field", ")", ";", "field", ";", "field", "=", "DECL_CHAIN", "(", "field", ")", ")", "{", "if", "(", "TREE_CODE", "(", "field", ")", "!=", "FIELD_DECL", ")", "continue", ";", "if", "(", "!", "DECL_BIT_FIELD_TYPE", "(", "field", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", "if", "(", "TREE_CODE", "(", "type", ")", "==", "UNION_TYPE", ")", "{", "tree", "field", ";", "for", "(", "field", "=", "TYPE_FIELDS", "(", "type", ")", ";", "field", ";", "field", "=", "DECL_CHAIN", "(", "field", ")", ")", "{", "if", "(", "TREE_CODE", "(", "field", ")", "!=", "FIELD_DECL", ")", "continue", ";", "if", "(", "FLOAT_TYPE_P", "(", "TREE_TYPE", "(", "field", ")", ")", ")", "return", "true", ";", "if", "(", "arm_return_in_memory", "(", "TREE_TYPE", "(", "field", ")", ",", "NULL_TREE", ")", ")", "return", "true", ";", "}", "return", "false", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Decide", "whether", "a", "type", "should", "be", "returned", "in", "memory", "(", "true", ")", "or", "in", "a", "register", "(", "false", ")", ".", "This", "is", "called", "by", "the", "macro", "RETURN_IN_MEMORY", "."], "TS_V_token": ["arm", "0", "0", "4", "0", "4", "0", "0"], "File": "arm", "Func": "arm_return_in_memory", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45112, "Length": 387}
{"ground_truth": ["", "static", "bool", "arm_return_in_msb", "(", "const_tree", "valtype", ")", "{", "return", "(", "TARGET_AAPCS_BASED", "&&", "BYTES_BIG_ENDIAN", "&&", "(", "AGGREGATE_TYPE_P", "(", "valtype", ")", "||", "TREE_CODE", "(", "valtype", ")", "==", "COMPLEX_TYPE", "||", "FIXED_POINT_TYPE_P", "(", "valtype", ")", ")", ")", ";", "}", ""], "natrual_language": ["Values", "which", "must", "be", "returned", "in", "the", "most-significant", "end", "of", "the", "return", "register", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_return_in_msb", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45113, "Length": 35}
{"ground_truth": ["", "static", "bool", "arm_rtx_costs", "(", "rtx", "x", ",", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ",", "int", "outer_code", ",", "int", "opno", "ATTRIBUTE_UNUSED", ",", "int", "*", "total", ",", "bool", "speed", ")", "{", "bool", "result", ";", "int", "code", "=", "GET_CODE", "(", "x", ")", ";", "gcc_assert", "(", "current_tune", "->", "insn_extra_cost", ")", ";", "result", "=", "arm_rtx_costs_internal", "(", "x", ",", "(", "enum", "rtx_code", ")", "code", ",", "(", "enum", "rtx_code", ")", "outer_code", ",", "current_tune", "->", "insn_extra_cost", ",", "total", ",", "speed", ")", ";", "if", "(", "dump_file", "&&", "arm_verbose_cost", ")", "{", "print_rtl_single", "(", "dump_file", ",", "x", ")", ";", "fprintf", "(", "dump_file", ",", "\"\\n%s cost: %d (%s)\\n\"", ",", "speed", "?", "\"Hot\"", ":", "\"Cold\"", ",", "*", "total", ",", "result", "?", "\"final\"", ":", "\"partial\"", ")", ";", "}", "return", "result", ";", "}", ""], "natrual_language": ["RTX", "costs", "when", "optimizing", "for", "size", "."], "TS_V_token": ["arm", "\"\\n%s cost: %d (%s)\\n\"", "\"Hot\"", "\"Cold\"", "\"final\"", "\"partial\""], "File": "arm", "Func": "arm_rtx_costs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45114, "Length": 112}
{"ground_truth": ["", "bool", "arm_sat_operator_match", "(", "rtx", "lo_bound", ",", "rtx", "hi_bound", ",", "int", "*", "mask", ",", "bool", "*", "signed_sat", ")", "{", "int", "log", "=", "exact_log2", "(", "INTVAL", "(", "hi_bound", ")", "+", "1", ")", ";", "if", "(", "log", "==", "-", "1", ")", "return", "false", ";", "if", "(", "INTVAL", "(", "lo_bound", ")", "==", "0", ")", "{", "if", "(", "mask", ")", "*", "mask", "=", "log", ";", "if", "(", "signed_sat", ")", "*", "signed_sat", "=", "false", ";", "return", "true", ";", "}", "if", "(", "INTVAL", "(", "lo_bound", ")", "==", "-", "INTVAL", "(", "hi_bound", ")", "-", "1", ")", "{", "if", "(", "mask", ")", "*", "mask", "=", "log", "+", "1", ";", "if", "(", "signed_sat", ")", "*", "signed_sat", "=", "true", ";", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Match", "pair", "of", "min/max", "operators", "that", "can", "be", "implemented", "via", "usat/ssat", "."], "TS_V_token": ["arm", "1", "1", "0", "1", "1"], "File": "arm", "Func": "arm_sat_operator_match", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45115, "Length": 117}
{"ground_truth": ["", "static", "int", "arm_save_coproc_regs", "(", "void", ")", "{", "int", "saved_size", "=", "0", ";", "unsigned", "reg", ";", "unsigned", "start_reg", ";", "rtx", "insn", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "reg", "=", "LAST_IWMMXT_REGNUM", ";", "reg", ">=", "FIRST_IWMMXT_REGNUM", ";", "reg", "--", ")", "if", "(", "reg_needs_saving_p", "(", "reg", ")", ")", "{", "insn", "=", "gen_rtx_PRE_DEC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ";", "insn", "=", "gen_rtx_MEM", "(", "V2SImode", ",", "insn", ")", ";", "insn", "=", "emit_set_insn", "(", "insn", ",", "gen_rtx_REG", "(", "V2SImode", ",", "reg", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "saved_size", "+=", "8", ";", "}", "if", "(", "TARGET_VFP_BASE", ")", "{", "start_reg", "=", "FIRST_VFP_REGNUM", ";", "for", "(", "reg", "=", "FIRST_VFP_REGNUM", ";", "reg", "<", "LAST_VFP_REGNUM", ";", "reg", "+=", "2", ")", "{", "if", "(", "!", "reg_needs_saving_p", "(", "reg", ")", "&&", "!", "reg_needs_saving_p", "(", "reg", "+", "1", ")", ")", "{", "if", "(", "start_reg", "!=", "reg", ")", "saved_size", "+=", "vfp_emit_fstmd", "(", "start_reg", ",", "(", "reg", "-", "start_reg", ")", "/", "2", ")", ";", "start_reg", "=", "reg", "+", "2", ";", "}", "}", "if", "(", "start_reg", "!=", "reg", ")", "saved_size", "+=", "vfp_emit_fstmd", "(", "start_reg", ",", "(", "reg", "-", "start_reg", ")", "/", "2", ")", ";", "}", "return", "saved_size", ";", "}", ""], "natrual_language": ["Emit", "RTL", "to", "save", "coprocessor", "registers", "on", "function", "entry", ".", "Returns", "the", "number", "of", "bytes", "pushed", "."], "TS_V_token": ["arm", "0", "1", "8", "2", "1", "2", "2", "2"], "File": "arm", "Func": "arm_save_coproc_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45116, "Length": 186}
{"ground_truth": ["", "static", "bool", "arm_scalar_mode_supported_p", "(", "scalar_mode", "mode", ")", "{", "if", "(", "mode", "==", "HFmode", ")", "return", "(", "arm_fp16_format", "!=", "ARM_FP16_FORMAT_NONE", ")", ";", "else", "if", "(", "ALL_FIXED_POINT_MODE_P", "(", "mode", ")", ")", "return", "true", ";", "else", "return", "default_scalar_mode_supported_p", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCALAR_MODE_SUPPORTED_P", ".", "This", "simply", "adds", "HFmode", "as", "a", "supported", "mode", ";", "even", "though", "we", "do", "n't", "implement", "arithmetic", "on", "this", "type", "directly", ",", "it", "'s", "supported", "by", "optabs", "conversions", ",", "much", "the", "way", "the", "double-word", "arithmetic", "is", "special-cased", "in", "the", "default", "hook", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_scalar_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45117, "Length": 40}
{"ground_truth": ["", "static", "bool", "arm_sched_can_speculate_insn", "(", "rtx_insn", "*", "insn", ")", "{", "switch", "(", "get_attr_type", "(", "insn", ")", ")", "{", "case", "TYPE_SDIV", ":", "case", "TYPE_UDIV", ":", "case", "TYPE_FDIVS", ":", "case", "TYPE_FDIVD", ":", "case", "TYPE_FSQRTS", ":", "case", "TYPE_FSQRTD", ":", "case", "TYPE_NEON_FP_SQRT_S", ":", "case", "TYPE_NEON_FP_SQRT_D", ":", "case", "TYPE_NEON_FP_SQRT_S_Q", ":", "case", "TYPE_NEON_FP_SQRT_D_Q", ":", "case", "TYPE_NEON_FP_DIV_S", ":", "case", "TYPE_NEON_FP_DIV_D", ":", "case", "TYPE_NEON_FP_DIV_S_Q", ":", "case", "TYPE_NEON_FP_DIV_D_Q", ":", "return", "false", ";", "default", ":", "return", "true", ";", "}", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_CAN_SPECULATE_INSN", ".", "Return", "true", "if", "INSN", "can", "be", "scheduled", "for", "speculative", "execution", ".", "Reject", "the", "long-running", "division", "and", "square-root", "instructions", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_sched_can_speculate_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45118, "Length": 69}
{"ground_truth": ["", "static", "void", "arm_sched_fusion_priority", "(", "rtx_insn", "*", "insn", ",", "int", "max_pri", ",", "int", "*", "fusion_pri", ",", "int", "*", "pri", ")", "{", "int", "tmp", ",", "off_val", ";", "bool", "is_load", ";", "rtx", "base", ",", "offset", ";", "gcc_assert", "(", "INSN_P", "(", "insn", ")", ")", ";", "tmp", "=", "max_pri", "-", "1", ";", "if", "(", "!", "fusion_load_store", "(", "insn", ",", "&", "base", ",", "&", "offset", ",", "&", "is_load", ")", ")", "{", "*", "pri", "=", "tmp", ";", "*", "fusion_pri", "=", "tmp", ";", "return", ";", "}", "if", "(", "is_load", ")", "*", "fusion_pri", "=", "tmp", "-", "1", ";", "else", "*", "fusion_pri", "=", "tmp", "-", "2", ";", "tmp", "/=", "2", ";", "tmp", "-=", "(", "(", "REGNO", "(", "base", ")", "&", "0xff", ")", "<<", "20", ")", ";", "off_val", "=", "(", "int", ")", "(", "INTVAL", "(", "offset", ")", ")", ";", "if", "(", "off_val", ">=", "0", ")", "tmp", "-=", "(", "off_val", "&", "0xfffff", ")", ";", "else", "tmp", "+=", "(", "(", "-", "off_val", ")", "&", "0xfffff", ")", ";", "*", "pri", "=", "tmp", ";", "return", ";", "}", ""], "natrual_language": ["Implement", "the", "TARGET_SCHED_FUSION_PRIORITY", "hook", ".", "Currently", "we", "only", "support", "to", "fuse", "ldr", "or", "str", "instructions", ",", "so", "FUSION_PRI", "and", "PRI", "are", "only", "calculated", "for", "these", "instructions", ".", "For", "other", "instruction", ",", "FUSION_PRI", "and", "PRI", "are", "simply", "set", "to", "MAX_PRI", ".", "In", "the", "future", ",", "other", "kind", "instruction", "fusion", "can", "be", "supported", "by", "returning", "different", "priorities", ".", "It", "'s", "important", "that", "irrelevant", "instructions", "get", "the", "largest", "FUSION_PRI", "."], "TS_V_token": ["arm", "1", "1", "2", "2", "0xff", "20", "0", "0xfffff", "0xfffff"], "File": "arm", "Func": "arm_sched_fusion_priority", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45119, "Length": 162}
{"ground_truth": ["", "static", "int", "arm_sched_reorder", "(", "FILE", "*", "file", ",", "int", "verbose", ",", "rtx_insn", "*", "*", "ready", ",", "int", "*", "n_readyp", ",", "int", "clock", ")", "{", "switch", "(", "arm_tune", ")", "{", "case", "TARGET_CPU_cortexa7", ":", "cortexa7_sched_reorder", "(", "file", ",", "verbose", ",", "ready", ",", "n_readyp", ",", "clock", ")", ";", "break", ";", "default", ":", "break", ";", "}", "return", "arm_issue_rate", "(", ")", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_REORDER", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_sched_reorder", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45120, "Length": 58}
{"ground_truth": ["", "static", "int", "arm_sched_variable_issue", "(", "FILE", "*", ",", "int", ",", "rtx_insn", "*", "insn", ",", "int", "more", ")", "{", "if", "(", "DEBUG_INSN_P", "(", "insn", ")", ")", "return", "more", ";", "rtx_code", "code", "=", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", ";", "if", "(", "code", "==", "USE", "||", "code", "==", "CLOBBER", ")", "return", "more", ";", "if", "(", "get_attr_type", "(", "insn", ")", "==", "TYPE_NO_INSN", ")", "return", "more", ";", "return", "more", "-", "1", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SCHED_VARIABLE_ISSUE", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "arm_sched_variable_issue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45121, "Length": 69}
{"ground_truth": ["", "machine_mode", "arm_select_dominance_cc_mode", "(", "rtx", "x", ",", "rtx", "y", ",", "HOST_WIDE_INT", "cond_or", ")", "{", "enum", "rtx_code", "cond1", ",", "cond2", ";", "int", "swapped", "=", "0", ";", "if", "(", "(", "arm_select_cc_mode", "(", "cond1", "=", "GET_CODE", "(", "x", ")", ",", "XEXP", "(", "x", ",", "0", ")", ",", "XEXP", "(", "x", ",", "1", ")", ")", "!=", "CCmode", ")", "||", "(", "arm_select_cc_mode", "(", "cond2", "=", "GET_CODE", "(", "y", ")", ",", "XEXP", "(", "y", ",", "0", ")", ",", "XEXP", "(", "y", ",", "1", ")", ")", "!=", "CCmode", ")", ")", "return", "CCmode", ";", "if", "(", "cond_or", "==", "DOM_CC_NX_OR_Y", ")", "cond1", "=", "reverse_condition", "(", "cond1", ")", ";", "if", "(", "cond1", "!=", "cond2", "&&", "!", "comparison_dominates_p", "(", "cond1", ",", "cond2", ")", "&&", "(", "swapped", "=", "1", ",", "!", "comparison_dominates_p", "(", "cond2", ",", "cond1", ")", ")", ")", "return", "CCmode", ";", "if", "(", "swapped", ")", "std", "::", "swap", "(", "cond1", ",", "cond2", ")", ";", "switch", "(", "cond1", ")", "{", "case", "EQ", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DEQmode", ";", "switch", "(", "cond2", ")", "{", "case", "EQ", ":", "return", "CC_DEQmode", ";", "case", "LE", ":", "return", "CC_DLEmode", ";", "case", "LEU", ":", "return", "CC_DLEUmode", ";", "case", "GE", ":", "return", "CC_DGEmode", ";", "case", "GEU", ":", "return", "CC_DGEUmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "LT", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DLTmode", ";", "switch", "(", "cond2", ")", "{", "case", "LT", ":", "return", "CC_DLTmode", ";", "case", "LE", ":", "return", "CC_DLEmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "GT", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DGTmode", ";", "switch", "(", "cond2", ")", "{", "case", "GT", ":", "return", "CC_DGTmode", ";", "case", "GE", ":", "return", "CC_DGEmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "LTU", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DLTUmode", ";", "switch", "(", "cond2", ")", "{", "case", "LTU", ":", "return", "CC_DLTUmode", ";", "case", "LEU", ":", "return", "CC_DLEUmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "GTU", ":", "if", "(", "cond_or", "==", "DOM_CC_X_AND_Y", ")", "return", "CC_DGTUmode", ";", "switch", "(", "cond2", ")", "{", "case", "GTU", ":", "return", "CC_DGTUmode", ";", "case", "GEU", ":", "return", "CC_DGEUmode", ";", "case", "NE", ":", "return", "CC_DNEmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "case", "NE", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DNEmode", ";", "case", "LE", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DLEmode", ";", "case", "GE", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DGEmode", ";", "case", "LEU", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DLEUmode", ";", "case", "GEU", ":", "gcc_assert", "(", "cond1", "==", "cond2", ")", ";", "return", "CC_DGEUmode", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Select", "a", "dominance", "comparison", "mode", "if", "possible", "for", "a", "test", "of", "the", "general", "form", "(", "OP", "(", "COND_OR", "(", "X", ")", "(", "Y", ")", ")", "(", "const_int", "0", ")", ")", ".", "We", "support", "three", "forms", ".", "COND_OR", "==", "DOM_CC_X_AND_Y", "=", ">", "(", "X", "&", "&", "Y", ")", "COND_OR", "==", "DOM_CC_NX_OR_Y", "=", ">", "(", "(", "!", "X", ")", "||", "Y", ")", "COND_OR", "==", "DOM_CC_X_OR_Y", "=", ">", "(", "X", "||", "Y", ")", "In", "all", "cases", "OP", "will", "be", "either", "EQ", "or", "NE", ",", "but", "we", "do", "n't", "need", "to", "know", "which", "here", ".", "If", "we", "are", "unable", "to", "support", "a", "dominance", "comparison", "we", "return", "CC", "mode", ".", "This", "will", "then", "fail", "to", "match", "for", "the", "RTL", "expressions", "that", "generate", "this", "call", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "1"], "File": "arm", "Func": "arm_select_dominance_cc_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45122, "Length": 442}
{"ground_truth": ["", "static", "bool", "arm_sets_movw_movt_fusible_p", "(", "rtx", "prev_set", ",", "rtx", "curr_set", ")", "{", "rtx", "set_dest", "=", "SET_DEST", "(", "curr_set", ")", ";", "if", "(", "GET_MODE", "(", "set_dest", ")", "!=", "SImode", ")", "return", "false", ";", "if", "(", "GET_CODE", "(", "set_dest", ")", "==", "ZERO_EXTRACT", ")", "{", "if", "(", "CONST_INT_P", "(", "SET_SRC", "(", "curr_set", ")", ")", "&&", "CONST_INT_P", "(", "SET_SRC", "(", "prev_set", ")", ")", "&&", "REG_P", "(", "XEXP", "(", "set_dest", ",", "0", ")", ")", "&&", "REG_P", "(", "SET_DEST", "(", "prev_set", ")", ")", "&&", "REGNO", "(", "XEXP", "(", "set_dest", ",", "0", ")", ")", "==", "REGNO", "(", "SET_DEST", "(", "prev_set", ")", ")", ")", "return", "true", ";", "}", "else", "if", "(", "GET_CODE", "(", "SET_SRC", "(", "curr_set", ")", ")", "==", "LO_SUM", "&&", "REG_P", "(", "SET_DEST", "(", "curr_set", ")", ")", "&&", "REG_P", "(", "SET_DEST", "(", "prev_set", ")", ")", "&&", "GET_CODE", "(", "SET_SRC", "(", "prev_set", ")", ")", "==", "HIGH", "&&", "REGNO", "(", "SET_DEST", "(", "curr_set", ")", ")", "==", "REGNO", "(", "SET_DEST", "(", "prev_set", ")", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Return", "true", "if", "the", "two", "back-to-back", "sets", "PREV_SET", ",", "CURR_SET", "are", "suitable", "for", "MOVW", "/", "MOVT", "macro", "fusion", "."], "TS_V_token": ["arm", "0", "0"], "File": "arm", "Func": "arm_sets_movw_movt_fusible_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45123, "Length": 161}
{"ground_truth": ["", "static", "void", "arm_setup_incoming_varargs", "(", "cumulative_args_t", "pcum_v", ",", "const", "function_arg_info", "&", "arg", ",", "int", "*", "pretend_size", ",", "int", "second_time", "ATTRIBUTE_UNUSED", ")", "{", "CUMULATIVE_ARGS", "*", "pcum", "=", "get_cumulative_args", "(", "pcum_v", ")", ";", "int", "nregs", ";", "cfun", "->", "machine", "->", "uses_anonymous_args", "=", "1", ";", "if", "(", "pcum", "->", "pcs_variant", "<=", "ARM_PCS_AAPCS_LOCAL", ")", "{", "nregs", "=", "pcum", "->", "aapcs_ncrn", ";", "if", "(", "nregs", "&", "1", ")", "{", "int", "res", "=", "arm_needs_doubleword_align", "(", "arg", ".", "mode", ",", "arg", ".", "type", ")", ";", "if", "(", "res", "<", "0", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", ",", "arg", ".", "type", ")", ";", "else", "if", "(", "res", ">", "0", ")", "{", "nregs", "++", ";", "if", "(", "res", ">", "1", "&&", "warn_psabi", ")", "inform", "(", "input_location", ",", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\"", ",", "arg", ".", "type", ")", ";", "}", "}", "}", "else", "nregs", "=", "pcum", "->", "nregs", ";", "if", "(", "nregs", "<", "NUM_ARG_REGS", ")", "*", "pretend_size", "=", "(", "NUM_ARG_REGS", "-", "nregs", ")", "*", "UNITS_PER_WORD", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_SETUP_INCOMING_VARARGS", ".", "On", "the", "ARM", ",", "PRETEND_SIZE", "is", "set", "in", "order", "to", "have", "the", "prologue", "push", "the", "last", "named", "arg", "and", "all", "anonymous", "args", "onto", "the", "stack", ".", "XXX", "I", "know", "the", "prologue", "should", "n't", "be", "pushing", "registers", ",", "but", "it", "is", "faster", "that", "way", "."], "TS_V_token": ["arm", "1", "1", "0", "\"parameter passing for argument of \"", "\"type %qT changed in GCC 7.1\"", "0", "1", "\"parameter passing for argument of type \"", "\"%qT changed in GCC 9.1\""], "File": "arm", "Func": "arm_setup_incoming_varargs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45124, "Length": 156}
{"ground_truth": ["", "static", "void", "arm_set_current_function", "(", "tree", "fndecl", ")", "{", "if", "(", "!", "fndecl", "||", "fndecl", "==", "arm_previous_fndecl", ")", "return", ";", "tree", "old_tree", "=", "(", "arm_previous_fndecl", "?", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "arm_previous_fndecl", ")", ":", "NULL_TREE", ")", ";", "tree", "new_tree", "=", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "fndecl", ")", ";", "if", "(", "!", "new_tree", "&&", "old_tree", ")", "new_tree", "=", "target_option_default_node", ";", "if", "(", "old_tree", "==", "new_tree", ")", "return", ";", "arm_previous_fndecl", "=", "fndecl", ";", "cl_target_option_restore", "(", "&", "global_options", ",", "&", "global_options_set", ",", "TREE_TARGET_OPTION", "(", "new_tree", ")", ")", ";", "save_restore_target_globals", "(", "new_tree", ")", ";", "arm_override_options_after_change_1", "(", "&", "global_options", ",", "&", "global_options_set", ")", ";", "}", ""], "natrual_language": ["Establish", "appropriate", "back-end", "context", "for", "processing", "the", "function", "FNDECL", ".", "The", "argument", "might", "be", "NULL", "to", "indicate", "processing", "at", "top", "level", ",", "outside", "of", "any", "function", "scope", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_set_current_function", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45125, "Length": 93}
{"ground_truth": ["", "static", "void", "arm_set_default_type_attributes", "(", "tree", "type", ")", "{", "if", "(", "TREE_CODE", "(", "type", ")", "==", "FUNCTION_TYPE", "||", "TREE_CODE", "(", "type", ")", "==", "METHOD_TYPE", ")", "{", "tree", "type_attr_list", ",", "attr_name", ";", "type_attr_list", "=", "TYPE_ATTRIBUTES", "(", "type", ")", ";", "if", "(", "arm_pragma_long_calls", "==", "LONG", ")", "attr_name", "=", "get_identifier", "(", "\"long_call\"", ")", ";", "else", "if", "(", "arm_pragma_long_calls", "==", "SHORT", ")", "attr_name", "=", "get_identifier", "(", "\"short_call\"", ")", ";", "else", "return", ";", "type_attr_list", "=", "tree_cons", "(", "attr_name", ",", "NULL_TREE", ",", "type_attr_list", ")", ";", "TYPE_ATTRIBUTES", "(", "type", ")", "=", "type_attr_list", ";", "}", "}", ""], "natrual_language": ["Assigns", "default", "attributes", "to", "newly", "defined", "type", ".", "This", "is", "used", "to", "set", "short_call/long_call", "attributes", "for", "function", "types", "of", "functions", "defined", "inside", "corresponding", "#", "pragma", "scopes", "."], "TS_V_token": ["arm", "\"long_call\"", "\"short_call\""], "File": "arm", "Func": "arm_set_default_type_attributes", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45126, "Length": 87}
{"ground_truth": ["", "static", "void", "arm_set_fixed_optab_libfunc", "(", "optab", "optable", ",", "machine_mode", "mode", ",", "const", "char", "*", "funcname", ",", "const", "char", "*", "modename", ",", "int", "num_suffix", ")", "{", "char", "buffer", "[", "50", "]", ";", "if", "(", "num_suffix", "==", "0", ")", "sprintf", "(", "buffer", ",", "\"__gnu_%s%s\"", ",", "funcname", ",", "modename", ")", ";", "else", "sprintf", "(", "buffer", ",", "\"__gnu_%s%s%d\"", ",", "funcname", ",", "modename", ",", "num_suffix", ")", ";", "set_optab_libfunc", "(", "optable", ",", "mode", ",", "buffer", ")", ";", "}", ""], "natrual_language": ["A", "small", "helper", "for", "setting", "fixed-point", "library", "libfuncs", "."], "TS_V_token": ["arm", "50", "0", "\"__gnu_%s%s\"", "\"__gnu_%s%s%d\""], "File": "arm", "Func": "arm_set_fixed_optab_libfunc", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45127, "Length": 71}
{"ground_truth": ["", "static", "const", "char", "*", "arm_shift_nmem", "(", "enum", "rtx_code", "code", ")", "{", "switch", "(", "code", ")", "{", "case", "ASHIFT", ":", "return", "ARM_LSL_NAME", ";", "case", "ASHIFTRT", ":", "return", "\"asr\"", ";", "case", "LSHIFTRT", ":", "return", "\"lsr\"", ";", "case", "ROTATERT", ":", "return", "\"ror\"", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["Return", "the", "name", "of", "a", "shifter", "operation", "."], "TS_V_token": ["arm", "\"asr\"", "\"lsr\"", "\"ror\""], "File": "arm", "Func": "arm_shift_nmem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45128, "Length": 48}
{"ground_truth": ["", "static", "unsigned", "HOST_WIDE_INT", "arm_shift_truncation_mask", "(", "machine_mode", "mode", ")", "{", "return", "mode", "==", "SImode", "?", "255", ":", "0", ";", "}", ""], "natrual_language": ["Implement", "TARGET_SHIFT_TRUNCATION_MASK", ".", "SImode", "shifts", "use", "normal", "ARM", "insns", "and", "therefore", "guarantee", "that", "the", "shift", "count", "is", "modulo", "256", ".", "DImode", "shifts", "(", "those", "implemented", "by", "lib1funcs.asm", "or", "by", "optabs.c", ")", "guarantee", "no", "particular", "behavior", "for", "out-of-range", "counts", "."], "TS_V_token": ["arm", "255", "0"], "File": "arm", "Func": "arm_shift_truncation_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45129, "Length": 19}
{"ground_truth": ["", "bool", "arm_simd_check_vect_par_cnst_half_p", "(", "rtx", "op", ",", "machine_mode", "mode", ",", "bool", "high", ")", "{", "rtx", "ideal", "=", "arm_simd_vect_par_cnst_half", "(", "mode", ",", "high", ")", ";", "HOST_WIDE_INT", "count_op", "=", "XVECLEN", "(", "op", ",", "0", ")", ";", "HOST_WIDE_INT", "count_ideal", "=", "XVECLEN", "(", "ideal", ",", "0", ")", ";", "int", "i", "=", "0", ";", "if", "(", "!", "VECTOR_MODE_P", "(", "mode", ")", ")", "return", "false", ";", "if", "(", "count_op", "!=", "count_ideal", ")", "return", "false", ";", "for", "(", "i", "=", "0", ";", "i", "<", "count_ideal", ";", "i", "++", ")", "{", "rtx", "elt_op", "=", "XVECEXP", "(", "op", ",", "0", ",", "i", ")", ";", "rtx", "elt_ideal", "=", "XVECEXP", "(", "ideal", ",", "0", ",", "i", ")", ";", "if", "(", "!", "CONST_INT_P", "(", "elt_op", ")", "||", "INTVAL", "(", "elt_ideal", ")", "!=", "INTVAL", "(", "elt_op", ")", ")", "return", "false", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Check", "OP", "for", "validity", "as", "a", "PARALLEL", "RTX", "vector", "with", "elements", "numbering", "the", "lanes", "of", "either", "the", "high", "(", "HIGH", "==", "TRUE", ")", "or", "low", "lanes", ",", "from", "the", "perspective", "of", "the", "architecture", ".", "See", "the", "diagram", "above", "arm_simd_vect_par_cnst_half_p", "for", "more", "details", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "0"], "File": "arm", "Func": "arm_simd_check_vect_par_cnst_half_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45130, "Length": 132}
{"ground_truth": ["", "rtx", "arm_simd_vect_par_cnst_half", "(", "machine_mode", "mode", ",", "bool", "high", ")", "{", "int", "nunits", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "rtvec", "v", "=", "rtvec_alloc", "(", "nunits", "/", "2", ")", ";", "int", "high_base", "=", "nunits", "/", "2", ";", "int", "low_base", "=", "0", ";", "int", "base", ";", "rtx", "t1", ";", "int", "i", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "base", "=", "high", "?", "low_base", ":", "high_base", ";", "else", "base", "=", "high", "?", "high_base", ":", "low_base", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nunits", "/", "2", ";", "i", "++", ")", "RTVEC_ELT", "(", "v", ",", "i", ")", "=", "GEN_INT", "(", "base", "+", "i", ")", ";", "t1", "=", "gen_rtx_PARALLEL", "(", "mode", ",", "v", ")", ";", "return", "t1", ";", "}", ""], "natrual_language": ["Construct", "and", "return", "a", "PARALLEL", "RTX", "vector", "with", "elements", "numbering", "the", "lanes", "of", "either", "the", "high", "(", "HIGH", "==", "TRUE", ")", "or", "low", "(", "HIGH", "==", "FALSE", ")", "half", "of", "the", "vector", "-", "from", "the", "perspective", "of", "the", "architecture", ".", "This", "does", "not", "line", "up", "with", "GCC", "'s", "perspective", "on", "lane", "numbers", ",", "so", "we", "end", "up", "with", "different", "masks", "depending", "on", "our", "target", "endian-ness", ".", "The", "diagram", "below", "may", "help", ".", "We", "must", "draw", "the", "distinction", "when", "building", "masks", "which", "select", "one", "half", "of", "the", "vector", ".", "An", "instruction", "selecting", "architectural", "low-lanes", "for", "a", "big-endian", "target", ",", "must", "be", "described", "using", "a", "mask", "selecting", "GCC", "high-lanes", ".", "Big-Endian", "Little-EndianGCC", "0", "1", "2", "3", "3", "2", "1", "0", "|", "x", "|", "x", "|", "x", "|", "x", "|", "|", "x", "|", "x", "|", "x", "|", "x", "|Architecture", "3", "2", "1", "0", "3", "2", "1", "0Low", "Mask", ":", "{", "2", ",", "3", "}", "{", "0", ",", "1", "}", "High", "Mask", ":", "{", "0", ",", "1", "}", "{", "2", ",", "3", "}"], "TS_V_token": ["arm", "2", "2", "0", "0", "2"], "File": "arm", "Func": "arm_simd_vect_par_cnst_half", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45131, "Length": 112}
{"ground_truth": ["", "static", "unsigned", "arm_size_return_regs", "(", "void", ")", "{", "machine_mode", "mode", ";", "if", "(", "crtl", "->", "return_rtx", "!=", "0", ")", "mode", "=", "GET_MODE", "(", "crtl", "->", "return_rtx", ")", ";", "else", "mode", "=", "DECL_MODE", "(", "DECL_RESULT", "(", "current_function_decl", ")", ")", ";", "return", "GET_MODE_SIZE", "(", "mode", ")", ";", "}", ""], "natrual_language": ["Calculate", "the", "size", "of", "the", "return", "value", "that", "is", "passed", "in", "registers", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_size_return_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45132, "Length": 45}
{"ground_truth": ["", "bool", "arm_small_register_classes_for_mode_p", "(", "machine_mode", "mode", "ATTRIBUTE_UNUSED", ")", "{", "return", "TARGET_THUMB1", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "small_register_classes_for_mode_p", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_small_register_classes_for_mode_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45133, "Length": 12}
{"ground_truth": ["", "void", "arm_split_compare_and_swap", "(", "rtx", "operands", "[", "]", ")", "{", "rtx", "rval", ",", "mem", ",", "oldval", ",", "newval", ",", "neg_bval", ",", "mod_s_rtx", ";", "machine_mode", "mode", ";", "enum", "memmodel", "mod_s", ",", "mod_f", ";", "bool", "is_weak", ";", "rtx_code_label", "*", "label1", ",", "*", "label2", ";", "rtx", "x", ",", "cond", ";", "rval", "=", "operands", "[", "1", "]", ";", "mem", "=", "operands", "[", "2", "]", ";", "oldval", "=", "operands", "[", "3", "]", ";", "newval", "=", "operands", "[", "4", "]", ";", "is_weak", "=", "(", "operands", "[", "5", "]", "!=", "const0_rtx", ")", ";", "mod_s_rtx", "=", "operands", "[", "6", "]", ";", "mod_s", "=", "memmodel_from_int", "(", "INTVAL", "(", "mod_s_rtx", ")", ")", ";", "mod_f", "=", "memmodel_from_int", "(", "INTVAL", "(", "operands", "[", "7", "]", ")", ")", ";", "neg_bval", "=", "TARGET_THUMB1", "?", "operands", "[", "0", "]", ":", "operands", "[", "8", "]", ";", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "bool", "is_armv8_sync", "=", "arm_arch8", "&&", "is_mm_sync", "(", "mod_s", ")", ";", "bool", "use_acquire", "=", "TARGET_HAVE_LDACQ", "&&", "aarch_mm_needs_acquire", "(", "mod_s_rtx", ")", ";", "bool", "use_release", "=", "TARGET_HAVE_LDACQ", "&&", "aarch_mm_needs_release", "(", "mod_s_rtx", ")", ";", "if", "(", "is_armv8_sync", ")", "use_acquire", "=", "false", ";", "if", "(", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_pre_atomic_barrier", "(", "mod_s", ")", ";", "label1", "=", "NULL", ";", "if", "(", "!", "is_weak", ")", "{", "label1", "=", "gen_label_rtx", "(", ")", ";", "emit_label", "(", "label1", ")", ";", "}", "label2", "=", "gen_label_rtx", "(", ")", ";", "arm_emit_load_exclusive", "(", "mode", ",", "rval", ",", "mem", ",", "use_acquire", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "cond", "=", "arm_gen_compare_reg", "(", "NE", ",", "rval", ",", "oldval", ",", "neg_bval", ")", ";", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "cond", ",", "const0_rtx", ")", ";", "x", "=", "gen_rtx_IF_THEN_ELSE", "(", "VOIDmode", ",", "x", ",", "gen_rtx_LABEL_REF", "(", "Pmode", ",", "label2", ")", ",", "pc_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_rtx_SET", "(", "pc_rtx", ",", "x", ")", ")", ";", "}", "else", "{", "cond", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "rval", ",", "oldval", ")", ";", "if", "(", "thumb1_cmpneg_operand", "(", "oldval", ",", "SImode", ")", ")", "{", "rtx", "src", "=", "rval", ";", "if", "(", "!", "satisfies_constraint_L", "(", "oldval", ")", ")", "{", "gcc_assert", "(", "satisfies_constraint_J", "(", "oldval", ")", ")", ";", "emit_move_insn", "(", "neg_bval", ",", "rval", ")", ";", "src", "=", "neg_bval", ";", "}", "emit_unlikely_jump", "(", "gen_cbranchsi4_neg_late", "(", "neg_bval", ",", "src", ",", "oldval", ",", "label2", ",", "cond", ")", ")", ";", "}", "else", "{", "emit_move_insn", "(", "neg_bval", ",", "const1_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_cbranchsi4_insn", "(", "cond", ",", "rval", ",", "oldval", ",", "label2", ")", ")", ";", "}", "}", "arm_emit_store_exclusive", "(", "mode", ",", "neg_bval", ",", "mem", ",", "newval", ",", "use_release", ")", ";", "if", "(", "TARGET_32BIT", ")", "{", "cond", "=", "gen_rtx_REG", "(", "CCmode", ",", "CC_REGNUM", ")", ";", "x", "=", "gen_rtx_COMPARE", "(", "CCmode", ",", "neg_bval", ",", "const0_rtx", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "cond", ",", "x", ")", ")", ";", "}", "if", "(", "!", "is_weak", ")", "{", "x", "=", "gen_rtx_NE", "(", "VOIDmode", ",", "neg_bval", ",", "const0_rtx", ")", ";", "emit_unlikely_jump", "(", "gen_cbranchsi4", "(", "x", ",", "neg_bval", ",", "const0_rtx", ",", "label1", ")", ")", ";", "}", "if", "(", "!", "is_mm_relaxed", "(", "mod_f", ")", ")", "emit_label", "(", "label2", ")", ";", "if", "(", "is_armv8_sync", "||", "!", "(", "use_acquire", "||", "use_release", ")", ")", "arm_post_atomic_barrier", "(", "mod_s", ")", ";", "if", "(", "is_mm_relaxed", "(", "mod_f", ")", ")", "emit_label", "(", "label2", ")", ";", "}", ""], "natrual_language": ["Split", "a", "compare", "and", "swap", "pattern", ".", "It", "is", "IMPLEMENTATION", "DEFINED", "whether", "another", "memory", "store", "between", "the", "load-exclusive", "and", "store-exclusive", "can", "reset", "the", "monitor", "from", "Exclusive", "to", "Open", "state", ".", "This", "means", "we", "must", "wait", "until", "after", "reload", "to", "split", "the", "pattern", ",", "lest", "we", "get", "a", "register", "spill", "in", "the", "middle", "of", "the", "atomic", "sequence", "."], "TS_V_token": ["arm", "1", "2", "3", "4", "5", "6", "7", "0", "8"], "File": "arm", "Func": "arm_split_compare_and_swap", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45134, "Length": 507}
{"ground_truth": ["", "int", "arm_split_constant", "(", "enum", "rtx_code", "code", ",", "machine_mode", "mode", ",", "rtx", "insn", ",", "HOST_WIDE_INT", "val", ",", "rtx", "target", ",", "rtx", "source", ",", "int", "subtargets", ")", "{", "rtx", "cond", ";", "if", "(", "insn", "&&", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "COND_EXEC", ")", "cond", "=", "COND_EXEC_TEST", "(", "PATTERN", "(", "insn", ")", ")", ";", "else", "cond", "=", "NULL_RTX", ";", "if", "(", "subtargets", "||", "code", "==", "SET", "||", "(", "REG_P", "(", "target", ")", "&&", "REG_P", "(", "source", ")", "&&", "REGNO", "(", "target", ")", "!=", "REGNO", "(", "source", ")", ")", ")", "{", "if", "(", "!", "cfun", "->", "machine", "->", "after_arm_reorg", "&&", "!", "cond", "&&", "(", "arm_gen_constant", "(", "code", ",", "mode", ",", "NULL_RTX", ",", "val", ",", "target", ",", "source", ",", "1", ",", "0", ")", ">", "(", "arm_constant_limit", "(", "optimize_function_for_size_p", "(", "cfun", ")", ")", "+", "(", "code", "!=", "SET", ")", ")", ")", ")", "{", "if", "(", "code", "==", "SET", ")", "{", "if", "(", "TARGET_USE_MOVT", ")", "arm_emit_movpair", "(", "target", ",", "GEN_INT", "(", "val", ")", ")", ";", "else", "emit_set_insn", "(", "target", ",", "GEN_INT", "(", "val", ")", ")", ";", "return", "1", ";", "}", "else", "{", "rtx", "temp", "=", "subtargets", "?", "gen_reg_rtx", "(", "mode", ")", ":", "target", ";", "if", "(", "TARGET_USE_MOVT", ")", "arm_emit_movpair", "(", "temp", ",", "GEN_INT", "(", "val", ")", ")", ";", "else", "emit_set_insn", "(", "temp", ",", "GEN_INT", "(", "val", ")", ")", ";", "if", "(", "code", "==", "MINUS", ")", "emit_set_insn", "(", "target", ",", "gen_rtx_MINUS", "(", "mode", ",", "temp", ",", "source", ")", ")", ";", "else", "emit_set_insn", "(", "target", ",", "gen_rtx_fmt_ee", "(", "code", ",", "mode", ",", "source", ",", "temp", ")", ")", ";", "return", "2", ";", "}", "}", "}", "return", "arm_gen_constant", "(", "code", ",", "mode", ",", "cond", ",", "val", ",", "target", ",", "source", ",", "subtargets", ",", "1", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "sequence", "of", "insns", "to", "handle", "a", "large", "constant", ".", "CODE", "is", "the", "code", "of", "the", "operation", "required", ",", "it", "can", "be", "any", "of", "SET", ",", "PLUS", ",", "IOR", ",", "AND", ",", "XOR", ",", "MINUS", ";", "MODE", "is", "the", "mode", "in", "which", "the", "operation", "is", "being", "performed", ";", "VAL", "is", "the", "integer", "to", "operate", "on", ";", "SOURCE", "is", "the", "other", "operand", "(", "a", "register", ",", "or", "a", "null-pointer", "for", "SET", ")", ";", "SUBTARGETS", "means", "it", "is", "safe", "to", "create", "scratch", "registers", "if", "that", "will", "either", "produce", "a", "simpler", "sequence", ",", "or", "we", "will", "want", "to", "cse", "the", "values", ".", "Return", "value", "is", "the", "number", "of", "insns", "emitted", "."], "TS_V_token": ["arm", "1", "0", "1", "2", "1"], "File": "arm", "Func": "arm_split_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45135, "Length": 278}
{"ground_truth": ["", "static", "tree", "arm_stack_protect_guard", "(", "void", ")", "{", "if", "(", "arm_stack_protector_guard", "==", "SSP_GLOBAL", ")", "return", "default_stack_protect_guard", "(", ")", ";", "return", "NULL_TREE", ";", "}", ""], "natrual_language": ["Implement", "TARGET_STACK_PROTECT_GUARD", ".", "In", "case", "of", "a", "global", "variable", "based", "guard", "use", "the", "default", "else", "return", "a", "null", "tree", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_stack_protect_guard", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45136, "Length": 22}
{"ground_truth": ["", "rtx", "arm_stack_protect_tls_canary_mem", "(", "bool", "reload", ")", "{", "rtx", "tp", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "if", "(", "reload", ")", "emit_insn", "(", "gen_reload_tp_hard", "(", "tp", ")", ")", ";", "else", "emit_insn", "(", "gen_load_tp_hard", "(", "tp", ")", ")", ";", "rtx", "reg", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "rtx", "offset", "=", "GEN_INT", "(", "arm_stack_protector_guard_offset", ")", ";", "emit_set_insn", "(", "reg", ",", "gen_rtx_PLUS", "(", "SImode", ",", "tp", ",", "offset", ")", ")", ";", "return", "gen_rtx_MEM", "(", "SImode", ",", "reg", ")", ";", "}", ""], "natrual_language": ["Generate", "insns", "that", "produce", "the", "address", "of", "the", "stack", "canary"], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_stack_protect_tls_canary_mem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45137, "Length": 75}
{"ground_truth": ["", "const", "char", "*", "arm_strip_name_encoding", "(", "const", "char", "*", "name", ")", "{", "int", "skip", ";", "while", "(", "(", "skip", "=", "arm_get_strip_length", "(", "*", "name", ")", ")", ")", "name", "+=", "skip", ";", "return", "name", ";", "}", ""], "natrual_language": ["Return", "a", "pointer", "to", "a", "function", "'s", "name", "with", "any", "and", "all", "prefix", "encodings", "stripped", "from", "it", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_strip_name_encoding", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45138, "Length": 34}
{"ground_truth": ["", "static", "void", "arm_test_cpu_arch_data", "(", "void", ")", "{", "const", "arch_option", "*", "arch", ";", "const", "cpu_option", "*", "cpu", ";", "auto_sbitmap", "target_isa", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "isa1", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "isa2", "(", "isa_num_bits", ")", ";", "for", "(", "arch", "=", "all_architectures", ";", "arch", "->", "common", ".", "name", "!=", "NULL", ";", "++", "arch", ")", "{", "const", "cpu_arch_extension", "*", "ext1", ",", "*", "ext2", ";", "if", "(", "arch", "->", "common", ".", "extensions", "==", "NULL", ")", "continue", ";", "arm_initialize_isa", "(", "target_isa", ",", "arch", "->", "common", ".", "isa_bits", ")", ";", "for", "(", "ext1", "=", "arch", "->", "common", ".", "extensions", ";", "ext1", "->", "name", "!=", "NULL", ";", "++", "ext1", ")", "{", "if", "(", "ext1", "->", "alias", ")", "continue", ";", "arm_initialize_isa", "(", "isa1", ",", "ext1", "->", "isa_bits", ")", ";", "for", "(", "ext2", "=", "ext1", "+", "1", ";", "ext2", "->", "name", "!=", "NULL", ";", "++", "ext2", ")", "{", "if", "(", "ext2", "->", "alias", "||", "ext1", "->", "remove", "!=", "ext2", "->", "remove", ")", "continue", ";", "arm_initialize_isa", "(", "isa2", ",", "ext2", "->", "isa_bits", ")", ";", "ASSERT_TRUE", "(", "!", "bitmap_subset_p", "(", "isa2", ",", "isa1", ")", ")", ";", "ASSERT_TRUE", "(", "!", "bitmap_intersect_p", "(", "isa2", ",", "target_isa", ")", ")", ";", "}", "}", "}", "for", "(", "cpu", "=", "all_cores", ";", "cpu", "->", "common", ".", "name", "!=", "NULL", ";", "++", "cpu", ")", "{", "const", "cpu_arch_extension", "*", "ext1", ",", "*", "ext2", ";", "if", "(", "cpu", "->", "common", ".", "extensions", "==", "NULL", ")", "continue", ";", "arm_initialize_isa", "(", "target_isa", ",", "arch", "->", "common", ".", "isa_bits", ")", ";", "for", "(", "ext1", "=", "cpu", "->", "common", ".", "extensions", ";", "ext1", "->", "name", "!=", "NULL", ";", "++", "ext1", ")", "{", "if", "(", "ext1", "->", "alias", ")", "continue", ";", "arm_initialize_isa", "(", "isa1", ",", "ext1", "->", "isa_bits", ")", ";", "for", "(", "ext2", "=", "ext1", "+", "1", ";", "ext2", "->", "name", "!=", "NULL", ";", "++", "ext2", ")", "{", "if", "(", "ext2", "->", "alias", "||", "ext1", "->", "remove", "!=", "ext2", "->", "remove", ")", "continue", ";", "arm_initialize_isa", "(", "isa2", ",", "ext2", "->", "isa_bits", ")", ";", "ASSERT_TRUE", "(", "!", "bitmap_subset_p", "(", "isa2", ",", "isa1", ")", ")", ";", "ASSERT_TRUE", "(", "!", "bitmap_intersect_p", "(", "isa2", ",", "target_isa", ")", ")", ";", "}", "}", "}", "}", ""], "natrual_language": ["Scan", "the", "static", "data", "tables", "generated", "by", "parsecpu.awk", "looking", "for", "potential", "issues", "with", "the", "data", ".", "We", "primarily", "check", "for", "inconsistencies", "in", "the", "option", "extensions", "at", "present", "(", "extensions", "that", "duplicate", "others", "but", "are", "n't", "marked", "as", "aliases", ")", ".", "Furthermore", ",", "for", "correct", "canonicalization", "later", "options", "must", "never", "be", "a", "subset", "of", "an", "earlier", "option", ".", "Any", "extension", "should", "also", "only", "specify", "other", "feature", "bits", "and", "never", "an", "architecture", "bit", ".", "The", "architecture", "is", "inferred", "from", "the", "declaration", "of", "the", "extension", "."], "TS_V_token": ["arm", "1", "1"], "File": "arm", "Func": "arm_test_cpu_arch_data", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45139, "Length": 344}
{"ground_truth": ["", "static", "void", "arm_test_fpu_data", "(", "void", ")", "{", "auto_sbitmap", "isa_all_fpubits_internal", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "fpubits", "(", "isa_num_bits", ")", ";", "auto_sbitmap", "tmpset", "(", "isa_num_bits", ")", ";", "static", "const", "enum", "isa_feature", "fpu_bitlist_internal", "[", "]", "=", "{", "ISA_ALL_FPU_INTERNAL", ",", "isa_nobit", "}", ";", "arm_initialize_isa", "(", "isa_all_fpubits_internal", ",", "fpu_bitlist_internal", ")", ";", "for", "(", "unsigned", "int", "i", "=", "0", ";", "i", "<", "TARGET_FPU_auto", ";", "i", "++", ")", "{", "arm_initialize_isa", "(", "fpubits", ",", "all_fpus", "[", "i", "]", ".", "isa_bits", ")", ";", "bitmap_and_compl", "(", "tmpset", ",", "isa_all_fpubits_internal", ",", "fpubits", ")", ";", "bitmap_clear", "(", "isa_all_fpubits_internal", ")", ";", "bitmap_copy", "(", "isa_all_fpubits_internal", ",", "tmpset", ")", ";", "}", "if", "(", "!", "bitmap_empty_p", "(", "isa_all_fpubits_internal", ")", ")", "{", "fprintf", "(", "stderr", ",", "\"Error: found feature bits in the ALL_FPU_INTERAL\"", "\" group that are not defined by any FPU.\\n\"", "\" Check your arm-cpus.in.\\n\"", ")", ";", "ASSERT_TRUE", "(", "bitmap_empty_p", "(", "isa_all_fpubits_internal", ")", ")", ";", "}", "}", ""], "natrual_language": ["Scan", "the", "static", "data", "tables", "generated", "by", "parsecpu.awk", "looking", "for", "potential", "issues", "with", "the", "data", ".", "Here", "we", "check", "for", "consistency", "between", "the", "fpu", "bits", ",", "in", "particular", "we", "check", "that", "ISA_ALL_FPU_INTERNAL", "does", "not", "contain", "a", "feature", "bit", "that", "is", "not", "defined", "by", "any", "FPU", "flag", "."], "TS_V_token": ["arm", "0", "\"Error: found feature bits in the ALL_FPU_INTERAL\"", "\" group that are not defined by any FPU.\\n\"", "\" Check your arm-cpus.in.\\n\""], "File": "arm", "Func": "arm_test_fpu_data", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45140, "Length": 124}
{"ground_truth": ["", "bool", "arm_tls_referenced_p", "(", "rtx", "x", ")", "{", "if", "(", "!", "TARGET_HAVE_TLS", ")", "return", "false", ";", "subrtx_iterator", "::", "array_type", "array", ";", "FOR_EACH_SUBRTX", "(", "iter", ",", "array", ",", "x", ",", "ALL", ")", "{", "const_rtx", "x", "=", "*", "iter", ";", "if", "(", "SYMBOL_REF_P", "(", "x", ")", "&&", "SYMBOL_REF_TLS_MODEL", "(", "x", ")", "!=", "0", ")", "{", "if", "(", "arm_disable_literal_pool", ")", "sorry", "(", "\"accessing thread-local storage is not currently supported \"", "\"with %<-mpure-code%> or %<-mslow-flash-data%>\"", ")", ";", "return", "true", ";", "}", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "iter", ".", "skip_subrtxes", "(", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "contains", "any", "TLS", "symbol", "references", "."], "TS_V_token": ["arm", "0", "\"accessing thread-local storage is not currently supported \"", "\"with %<-mpure-code%> or %<-mslow-flash-data%>\"", "1"], "File": "arm", "Func": "arm_tls_referenced_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45141, "Length": 95}
{"ground_truth": ["", "static", "rtx", "arm_trampoline_adjust_address", "(", "rtx", "addr", ")", "{", "if", "(", "TARGET_THUMB", "&&", "!", "TARGET_FDPIC", ")", "addr", "=", "expand_simple_binop", "(", "Pmode", ",", "IOR", ",", "addr", ",", "const1_rtx", ",", "NULL", ",", "0", ",", "OPTAB_LIB_WIDEN", ")", ";", "return", "addr", ";", "}", ""], "natrual_language": ["Thumb", "trampolines", "should", "be", "entered", "in", "thumb", "mode", ",", "so", "set", "the", "bottom", "bit", "of", "the", "address", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "arm_trampoline_adjust_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45142, "Length": 38}
{"ground_truth": ["", "static", "void", "arm_trampoline_init", "(", "rtx", "m_tramp", ",", "tree", "fndecl", ",", "rtx", "chain_value", ")", "{", "rtx", "fnaddr", ",", "mem", ",", "a_tramp", ";", "emit_block_move", "(", "m_tramp", ",", "assemble_trampoline_template", "(", ")", ",", "GEN_INT", "(", "TRAMPOLINE_SIZE", ")", ",", "BLOCK_OP_NORMAL", ")", ";", "if", "(", "TARGET_FDPIC", ")", "{", "rtx", "funcdesc", "=", "XEXP", "(", "DECL_RTL", "(", "fndecl", ")", ",", "0", ")", ";", "rtx", "fnaddr", "=", "gen_rtx_MEM", "(", "Pmode", ",", "funcdesc", ")", ";", "rtx", "gotaddr", "=", "gen_rtx_MEM", "(", "Pmode", ",", "plus_constant", "(", "Pmode", ",", "funcdesc", ",", "4", ")", ")", ";", "rtx", "trampoline_code_start", "=", "plus_constant", "(", "Pmode", ",", "XEXP", "(", "m_tramp", ",", "0", ")", ",", "TARGET_THUMB2", "?", "9", ":", "8", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "0", ")", ";", "emit_move_insn", "(", "mem", ",", "trampoline_code_start", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "4", ")", ";", "emit_move_insn", "(", "mem", ",", "gen_rtx_REG", "(", "Pmode", ",", "PIC_OFFSET_TABLE_REGNUM", ")", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "20", ")", ";", "emit_move_insn", "(", "mem", ",", "chain_value", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "24", ")", ";", "emit_move_insn", "(", "mem", ",", "gotaddr", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "28", ")", ";", "emit_move_insn", "(", "mem", ",", "fnaddr", ")", ";", "}", "else", "{", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "TARGET_32BIT", "?", "8", ":", "12", ")", ";", "emit_move_insn", "(", "mem", ",", "chain_value", ")", ";", "mem", "=", "adjust_address", "(", "m_tramp", ",", "SImode", ",", "TARGET_32BIT", "?", "12", ":", "16", ")", ";", "fnaddr", "=", "XEXP", "(", "DECL_RTL", "(", "fndecl", ")", ",", "0", ")", ";", "emit_move_insn", "(", "mem", ",", "fnaddr", ")", ";", "}", "a_tramp", "=", "XEXP", "(", "m_tramp", ",", "0", ")", ";", "maybe_emit_call_builtin___clear_cache", "(", "a_tramp", ",", "plus_constant", "(", "ptr_mode", ",", "a_tramp", ",", "TRAMPOLINE_SIZE", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "RTL", "insns", "to", "initialize", "the", "variable", "parts", "of", "a", "trampoline", "."], "TS_V_token": ["arm", "0", "4", "0", "9", "8", "0", "4", "20", "24", "28", "8", "12", "12", "16", "0", "0"], "File": "arm", "Func": "arm_trampoline_init", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45143, "Length": 282}
{"ground_truth": ["", "static", "void", "arm_unwind_emit", "(", "FILE", "*", "out_file", ",", "rtx_insn", "*", "insn", ")", "{", "rtx", "note", ",", "pat", ";", "bool", "handled_one", "=", "false", ";", "if", "(", "arm_except_unwind_info", "(", "&", "global_options", ")", "!=", "UI_TARGET", ")", "return", ";", "if", "(", "!", "(", "flag_unwind_tables", "||", "crtl", "->", "uses_eh_lsda", ")", "&&", "(", "TREE_NOTHROW", "(", "current_function_decl", ")", "||", "crtl", "->", "all_throwers_are_sibcalls", ")", ")", "return", ";", "if", "(", "NOTE_P", "(", "insn", ")", "||", "!", "RTX_FRAME_RELATED_P", "(", "insn", ")", ")", "return", ";", "for", "(", "note", "=", "REG_NOTES", "(", "insn", ")", ";", "note", ";", "note", "=", "XEXP", "(", "note", ",", "1", ")", ")", "{", "switch", "(", "REG_NOTE_KIND", "(", "note", ")", ")", "{", "case", "REG_FRAME_RELATED_EXPR", ":", "pat", "=", "XEXP", "(", "note", ",", "0", ")", ";", "goto", "found", ";", "case", "REG_CFA_REGISTER", ":", "pat", "=", "XEXP", "(", "note", ",", "0", ")", ";", "if", "(", "pat", "==", "NULL", ")", "{", "pat", "=", "PATTERN", "(", "insn", ")", ";", "if", "(", "GET_CODE", "(", "pat", ")", "==", "PARALLEL", ")", "pat", "=", "XVECEXP", "(", "pat", ",", "0", ",", "0", ")", ";", "}", "{", "rtx", "dest", ",", "src", ";", "unsigned", "reg", ";", "src", "=", "SET_SRC", "(", "pat", ")", ";", "dest", "=", "SET_DEST", "(", "pat", ")", ";", "gcc_assert", "(", "src", "==", "stack_pointer_rtx", ")", ";", "reg", "=", "REGNO", "(", "dest", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.unwind_raw 0, 0x%x @ vsp = r%d\\n\"", ",", "reg", "+", "0x90", ",", "reg", ")", ";", "}", "handled_one", "=", "true", ";", "break", ";", "case", "REG_CFA_DEF_CFA", ":", "case", "REG_CFA_ADJUST_CFA", ":", "case", "REG_CFA_RESTORE", ":", "return", ";", "case", "REG_CFA_EXPRESSION", ":", "case", "REG_CFA_OFFSET", ":", "gcc_unreachable", "(", ")", ";", "default", ":", "break", ";", "}", "}", "if", "(", "handled_one", ")", "return", ";", "pat", "=", "PATTERN", "(", "insn", ")", ";", "found", ":", "switch", "(", "GET_CODE", "(", "pat", ")", ")", "{", "case", "SET", ":", "arm_unwind_emit_set", "(", "out_file", ",", "pat", ")", ";", "break", ";", "case", "SEQUENCE", ":", "arm_unwind_emit_sequence", "(", "out_file", ",", "pat", ")", ";", "break", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "unwind", "directives", "for", "the", "given", "insn", "."], "TS_V_token": ["arm", "1", "0", "0", "0", "0", "\"\\t.unwind_raw 0, 0x%x @ vsp = r%d\\n\"", "0x90"], "File": "arm", "Func": "arm_unwind_emit", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45144, "Length": 304}
{"ground_truth": ["", "static", "void", "arm_unwind_emit_set", "(", "FILE", "*", "out_file", ",", "rtx", "p", ")", "{", "rtx", "e0", ";", "rtx", "e1", ";", "unsigned", "reg", ";", "e0", "=", "XEXP", "(", "p", ",", "0", ")", ";", "e1", "=", "XEXP", "(", "p", ",", "1", ")", ";", "switch", "(", "GET_CODE", "(", "e0", ")", ")", "{", "case", "MEM", ":", "if", "(", "GET_CODE", "(", "XEXP", "(", "e0", ",", "0", ")", ")", "!=", "PRE_DEC", "||", "!", "REG_P", "(", "XEXP", "(", "XEXP", "(", "e0", ",", "0", ")", ",", "0", ")", ")", "||", "REGNO", "(", "XEXP", "(", "XEXP", "(", "e0", ",", "0", ")", ",", "0", ")", ")", "!=", "SP_REGNUM", ")", "abort", "(", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.save \"", ")", ";", "if", "(", "IS_VFP_REGNUM", "(", "REGNO", "(", "e1", ")", ")", ")", "asm_fprintf", "(", "out_file", ",", "\"{d%d}\\n\"", ",", "(", "REGNO", "(", "e1", ")", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ")", ";", "else", "asm_fprintf", "(", "out_file", ",", "\"{%r}\\n\"", ",", "REGNO", "(", "e1", ")", ")", ";", "break", ";", "case", "REG", ":", "if", "(", "REGNO", "(", "e0", ")", "==", "SP_REGNUM", ")", "{", "if", "(", "GET_CODE", "(", "e1", ")", "!=", "PLUS", "||", "!", "REG_P", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "||", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "!=", "SP_REGNUM", "||", "!", "CONST_INT_P", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", "abort", "(", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.pad #%wd\\n\"", ",", "-", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", ";", "}", "else", "if", "(", "REGNO", "(", "e0", ")", "==", "HARD_FRAME_POINTER_REGNUM", ")", "{", "HOST_WIDE_INT", "offset", ";", "if", "(", "GET_CODE", "(", "e1", ")", "==", "PLUS", ")", "{", "if", "(", "!", "REG_P", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "||", "!", "CONST_INT_P", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", "abort", "(", ")", ";", "reg", "=", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", ";", "offset", "=", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.setfp %r, %r, #%wd\\n\"", ",", "HARD_FRAME_POINTER_REGNUM", ",", "reg", ",", "offset", ")", ";", "}", "else", "if", "(", "REG_P", "(", "e1", ")", ")", "{", "reg", "=", "REGNO", "(", "e1", ")", ";", "asm_fprintf", "(", "out_file", ",", "\"\\t.setfp %r, %r\\n\"", ",", "HARD_FRAME_POINTER_REGNUM", ",", "reg", ")", ";", "}", "else", "abort", "(", ")", ";", "}", "else", "if", "(", "REG_P", "(", "e1", ")", "&&", "REGNO", "(", "e1", ")", "==", "SP_REGNUM", ")", "{", "asm_fprintf", "(", "out_file", ",", "\"\\t.movsp %r\\n\"", ",", "REGNO", "(", "e0", ")", ")", ";", "}", "else", "if", "(", "GET_CODE", "(", "e1", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "&&", "REGNO", "(", "XEXP", "(", "e1", ",", "0", ")", ")", "==", "SP_REGNUM", "&&", "CONST_INT_P", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", "{", "asm_fprintf", "(", "out_file", ",", "\"\\t.movsp %r, #%d\\n\"", ",", "REGNO", "(", "e0", ")", ",", "(", "int", ")", "INTVAL", "(", "XEXP", "(", "e1", ",", "1", ")", ")", ")", ";", "}", "else", "abort", "(", ")", ";", "break", ";", "default", ":", "abort", "(", ")", ";", "}", "}", ""], "natrual_language": ["Emit", "unwind", "directives", "for", "a", "SET", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "0", "0", "0", "\"\\t.save \"", "\"{d%d}\\n\"", "2", "\"{%r}\\n\"", "0", "0", "1", "\"\\t.pad #%wd\\n\"", "1", "0", "1", "0", "1", "\"\\t.setfp %r, %r, #%wd\\n\"", "\"\\t.setfp %r, %r\\n\"", "\"\\t.movsp %r\\n\"", "0", "0", "1", "\"\\t.movsp %r, #%d\\n\"", "1"], "File": "arm", "Func": "arm_unwind_emit_set", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45145, "Length": 467}
{"ground_truth": ["", "bool", "arm_validize_comparison", "(", "rtx", "*", "comparison", ",", "rtx", "*", "op1", ",", "rtx", "*", "op2", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "*", "comparison", ")", ";", "int", "code_int", ";", "machine_mode", "mode", "=", "(", "GET_MODE", "(", "*", "op1", ")", "==", "VOIDmode", ")", "?", "GET_MODE", "(", "*", "op2", ")", ":", "GET_MODE", "(", "*", "op1", ")", ";", "gcc_assert", "(", "GET_MODE", "(", "*", "op1", ")", "!=", "VOIDmode", "||", "GET_MODE", "(", "*", "op2", ")", "!=", "VOIDmode", ")", ";", "if", "(", "code", "==", "UNEQ", "||", "code", "==", "LTGT", ")", "return", "false", ";", "code_int", "=", "(", "int", ")", "code", ";", "arm_canonicalize_comparison", "(", "&", "code_int", ",", "op1", ",", "op2", ",", "0", ")", ";", "PUT_CODE", "(", "*", "comparison", ",", "(", "enum", "rtx_code", ")", "code_int", ")", ";", "switch", "(", "mode", ")", "{", "case", "E_SImode", ":", "if", "(", "!", "arm_add_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "arm_add_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "case", "E_DImode", ":", "return", "true", ";", "case", "E_HFmode", ":", "if", "(", "!", "TARGET_VFP_FP16INST", ")", "break", ";", "mode", "=", "SFmode", ";", "*", "op1", "=", "convert_to_mode", "(", "mode", ",", "*", "op1", ",", "1", ")", ";", "*", "op2", "=", "convert_to_mode", "(", "mode", ",", "*", "op2", ",", "1", ")", ";", "case", "E_SFmode", ":", "case", "E_DFmode", ":", "if", "(", "!", "vfp_compare_operand", "(", "*", "op1", ",", "mode", ")", ")", "*", "op1", "=", "force_reg", "(", "mode", ",", "*", "op1", ")", ";", "if", "(", "!", "vfp_compare_operand", "(", "*", "op2", ",", "mode", ")", ")", "*", "op2", "=", "force_reg", "(", "mode", ",", "*", "op2", ")", ";", "return", "true", ";", "default", ":", "break", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "a", "valid", "comparison", "operation", "and", "makes", "the", "operands", "in", "a", "form", "that", "is", "valid", "."], "TS_V_token": ["arm", "0", "1", "1"], "File": "arm", "Func": "arm_validize_comparison", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45146, "Length": 280}
{"ground_truth": ["", "bool", "arm_valid_symbolic_address_p", "(", "rtx", "addr", ")", "{", "rtx", "xop0", ",", "xop1", "=", "NULL_RTX", ";", "rtx", "tmp", "=", "addr", ";", "if", "(", "target_word_relocations", ")", "return", "false", ";", "if", "(", "SYMBOL_REF_P", "(", "tmp", ")", "||", "LABEL_REF_P", "(", "tmp", ")", ")", "return", "true", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "CONST", ")", "tmp", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "tmp", ")", "==", "PLUS", ")", "{", "xop0", "=", "XEXP", "(", "tmp", ",", "0", ")", ";", "xop1", "=", "XEXP", "(", "tmp", ",", "1", ")", ";", "if", "(", "GET_CODE", "(", "xop0", ")", "==", "SYMBOL_REF", "&&", "CONST_INT_P", "(", "xop1", ")", ")", "{", "if", "(", "TARGET_THUMB1", "&&", "!", "TARGET_HAVE_MOVT", ")", "return", "IN_RANGE", "(", "INTVAL", "(", "xop1", ")", ",", "0", ",", "0xff", ")", ";", "else", "return", "IN_RANGE", "(", "INTVAL", "(", "xop1", ")", ",", "-", "0x8000", ",", "0x7fff", ")", ";", "}", "}", "return", "false", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "the", "pattern", "is", "a", "valid", "symbolic", "address", ",", "which", "is", "either", "a", "symbol_ref", "or", "(", "symbol_ref", "+", "addend", ")", ".", "According", "to", "the", "ARM", "ELF", "ABI", ",", "the", "initial", "addend", "of", "REL-type", "relocations", "processing", "MOVW", "and", "MOVT", "instructions", "is", "formed", "by", "interpreting", "the", "16-bit", "literal", "field", "of", "the", "instruction", "as", "a", "16-bit", "signed", "value", "in", "the", "range", "-32768", "<", "=", "A", "<", "32768", ".", "In", "Thumb-1", "mode", ",", "we", "use", "upper/lower", "relocations", "which", "have", "an", "8-bit", "unsigned", "range", "of", "0", "<", "=", "A", "<", "256", "as", "described", "in", "the", "AAELF32", "relocation", "handling", "documentation", ":", "REL-type", "relocations", "are", "encoded", "as", "unsigned", "in", "this", "case", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "0xff", "0x8000", "0x7fff"], "File": "arm", "Func": "arm_valid_symbolic_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45147, "Length": 143}
{"ground_truth": ["", "static", "bool", "arm_valid_target_attribute_p", "(", "tree", "fndecl", ",", "tree", "ARG_UNUSED", "(", "name", ")", ",", "tree", "args", ",", "int", "ARG_UNUSED", "(", "flags", ")", ")", "{", "bool", "ret", "=", "true", ";", "struct", "gcc_options", "func_options", ",", "func_options_set", ";", "tree", "cur_tree", ",", "new_optimize", ";", "gcc_assert", "(", "(", "fndecl", "!=", "NULL_TREE", ")", "&&", "(", "args", "!=", "NULL_TREE", ")", ")", ";", "tree", "func_optimize", "=", "DECL_FUNCTION_SPECIFIC_OPTIMIZATION", "(", "fndecl", ")", ";", "if", "(", "!", "func_optimize", ")", "func_optimize", "=", "optimization_default_node", ";", "memset", "(", "&", "func_options", ",", "0", ",", "sizeof", "(", "func_options", ")", ")", ";", "init_options_struct", "(", "&", "func_options", ",", "NULL", ")", ";", "lang_hooks", ".", "init_options_struct", "(", "&", "func_options", ")", ";", "memset", "(", "&", "func_options_set", ",", "0", ",", "sizeof", "(", "func_options_set", ")", ")", ";", "cl_optimization_restore", "(", "&", "func_options", ",", "&", "func_options_set", ",", "TREE_OPTIMIZATION", "(", "func_optimize", ")", ")", ";", "cl_target_option_restore", "(", "&", "func_options", ",", "&", "func_options_set", ",", "TREE_TARGET_OPTION", "(", "target_option_default_node", ")", ")", ";", "cur_tree", "=", "arm_valid_target_attribute_tree", "(", "args", ",", "&", "func_options", ",", "&", "func_options_set", ")", ";", "if", "(", "cur_tree", "==", "NULL_TREE", ")", "ret", "=", "false", ";", "new_optimize", "=", "build_optimization_node", "(", "&", "func_options", ",", "&", "func_options_set", ")", ";", "DECL_FUNCTION_SPECIFIC_TARGET", "(", "fndecl", ")", "=", "cur_tree", ";", "DECL_FUNCTION_SPECIFIC_OPTIMIZATION", "(", "fndecl", ")", "=", "new_optimize", ";", "return", "ret", ";", "}", ""], "natrual_language": ["Hook", "to", "validate", "attribute", "(", "(", "target", "(", "``", "string", "''", ")", ")", ")", "."], "TS_V_token": ["arm", "0", "0"], "File": "arm", "Func": "arm_valid_target_attribute_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45148, "Length": 193}
{"ground_truth": ["", "static", "bool", "arm_valid_target_attribute_rec", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ")", "{", "if", "(", "TREE_CODE", "(", "args", ")", "==", "TREE_LIST", ")", "{", "bool", "ret", "=", "true", ";", "for", "(", ";", "args", ";", "args", "=", "TREE_CHAIN", "(", "args", ")", ")", "if", "(", "TREE_VALUE", "(", "args", ")", "&&", "!", "arm_valid_target_attribute_rec", "(", "TREE_VALUE", "(", "args", ")", ",", "opts", ")", ")", "ret", "=", "false", ";", "return", "ret", ";", "}", "else", "if", "(", "TREE_CODE", "(", "args", ")", "!=", "STRING_CST", ")", "{", "error", "(", "\"attribute % argument not a string\"", ")", ";", "return", "false", ";", "}", "char", "*", "argstr", "=", "ASTRDUP", "(", "TREE_STRING_POINTER", "(", "args", ")", ")", ";", "char", "*", "q", ";", "while", "(", "(", "q", "=", "strtok", "(", "argstr", ",", "\",\"", ")", ")", "!=", "NULL", ")", "{", "argstr", "=", "NULL", ";", "if", "(", "!", "strcmp", "(", "q", ",", "\"thumb\"", ")", ")", "{", "opts", "->", "x_target_flags", "|=", "MASK_THUMB", ";", "if", "(", "TARGET_FDPIC", "&&", "!", "arm_arch_thumb2", ")", "sorry", "(", "\"FDPIC mode is not supported in Thumb-1 mode\"", ")", ";", "}", "else", "if", "(", "!", "strcmp", "(", "q", ",", "\"arm\"", ")", ")", "opts", "->", "x_target_flags", "&=", "~", "MASK_THUMB", ";", "else", "if", "(", "!", "strcmp", "(", "q", ",", "\"general-regs-only\"", ")", ")", "opts", "->", "x_target_flags", "|=", "MASK_GENERAL_REGS_ONLY", ";", "else", "if", "(", "startswith", "(", "q", ",", "\"fpu=\"", ")", ")", "{", "int", "fpu_index", ";", "if", "(", "!", "opt_enum_arg_to_value", "(", "OPT_mfpu_", ",", "q", "+", "4", ",", "&", "fpu_index", ",", "CL_TARGET", ")", ")", "{", "error", "(", "\"invalid fpu for target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "if", "(", "fpu_index", "==", "TARGET_FPU_auto", ")", "{", "sorry", "(", "\"auto fpu selection not currently permitted here\"", ")", ";", "return", "false", ";", "}", "opts", "->", "x_arm_fpu_index", "=", "(", "enum", "fpu_type", ")", "fpu_index", ";", "}", "else", "if", "(", "startswith", "(", "q", ",", "\"arch=\"", ")", ")", "{", "char", "*", "arch", "=", "q", "+", "5", ";", "const", "arch_option", "*", "arm_selected_arch", "=", "arm_parse_arch_option_name", "(", "all_architectures", ",", "\"arch\"", ",", "arch", ")", ";", "if", "(", "!", "arm_selected_arch", ")", "{", "error", "(", "\"invalid architecture for target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "opts", "->", "x_arm_arch_string", "=", "xstrndup", "(", "arch", ",", "strlen", "(", "arch", ")", ")", ";", "}", "else", "if", "(", "q", "[", "0", "]", "==", "'+'", ")", "{", "opts", "->", "x_arm_arch_string", "=", "xasprintf", "(", "\"%s%s\"", ",", "opts", "->", "x_arm_arch_string", ",", "q", ")", ";", "}", "else", "{", "error", "(", "\"unknown target attribute or pragma %qs\"", ",", "q", ")", ";", "return", "false", ";", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Inner", "function", "to", "process", "the", "attribute", "(", "(", "target", "(", "...", ")", ")", ")", ",", "take", "an", "argument", "and", "set", "the", "current", "options", "from", "the", "argument", ".", "If", "we", "have", "a", "list", ",", "recursively", "go", "over", "the", "list", "."], "TS_V_token": ["arm", "\"attribute % argument not a string\"", "\",\"", "\"thumb\"", "\"FDPIC mode is not supported in Thumb-1 mode\"", "\"arm\"", "\"general-regs-only\"", "\"fpu=\"", "4", "\"invalid fpu for target attribute or pragma %qs\"", "\"auto fpu selection not currently permitted here\"", "\"arch=\"", "5", "\"arch\"", "\"invalid architecture for target attribute or pragma %qs\"", "0", "\"%s%s\"", "\"unknown target attribute or pragma %qs\""], "File": "arm", "Func": "arm_valid_target_attribute_rec", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45149, "Length": 367}
{"ground_truth": ["", "tree", "arm_valid_target_attribute_tree", "(", "tree", "args", ",", "struct", "gcc_options", "*", "opts", ",", "struct", "gcc_options", "*", "opts_set", ")", "{", "struct", "cl_target_option", "cl_opts", ";", "if", "(", "!", "arm_valid_target_attribute_rec", "(", "args", ",", "opts", ")", ")", "return", "NULL_TREE", ";", "cl_target_option_save", "(", "&", "cl_opts", ",", "opts", ",", "opts_set", ")", ";", "arm_configure_build_target", "(", "&", "arm_active_target", ",", "&", "cl_opts", ",", "false", ")", ";", "arm_option_check_internal", "(", "opts", ")", ";", "arm_option_reconfigure_globals", "(", ")", ";", "arm_options_perform_arch_sanity_checks", "(", ")", ";", "arm_option_override_internal", "(", "opts", ",", "opts_set", ")", ";", "return", "build_target_option_node", "(", "opts", ",", "opts_set", ")", ";", "}", ""], "natrual_language": ["Return", "a", "TARGET_OPTION_NODE", "tree", "of", "the", "target", "options", "listed", "or", "NULL", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_valid_target_attribute_tree", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45150, "Length": 84}
{"ground_truth": ["", "static", "bool", "arm_vectorize_vec_perm_const", "(", "machine_mode", "vmode", ",", "rtx", "target", ",", "rtx", "op0", ",", "rtx", "op1", ",", "const", "vec_perm_indices", "&", "sel", ")", "{", "struct", "expand_vec_perm_d", "d", ";", "int", "i", ",", "nelt", ",", "which", ";", "if", "(", "!", "VALID_NEON_DREG_MODE", "(", "vmode", ")", "&&", "!", "VALID_NEON_QREG_MODE", "(", "vmode", ")", ")", "return", "false", ";", "d", ".", "target", "=", "target", ";", "if", "(", "op0", ")", "{", "rtx", "nop0", "=", "force_reg", "(", "vmode", ",", "op0", ")", ";", "if", "(", "op0", "==", "op1", ")", "op1", "=", "nop0", ";", "op0", "=", "nop0", ";", "}", "if", "(", "op1", ")", "op1", "=", "force_reg", "(", "vmode", ",", "op1", ")", ";", "d", ".", "op0", "=", "op0", ";", "d", ".", "op1", "=", "op1", ";", "d", ".", "vmode", "=", "vmode", ";", "gcc_assert", "(", "VECTOR_MODE_P", "(", "d", ".", "vmode", ")", ")", ";", "d", ".", "testing_p", "=", "!", "target", ";", "nelt", "=", "GET_MODE_NUNITS", "(", "d", ".", "vmode", ")", ";", "for", "(", "i", "=", "which", "=", "0", ";", "i", "<", "nelt", ";", "++", "i", ")", "{", "int", "ei", "=", "sel", "[", "i", "]", "&", "(", "2", "*", "nelt", "-", "1", ")", ";", "which", "|=", "(", "ei", "<", "nelt", "?", "1", ":", "2", ")", ";", "}", "switch", "(", "which", ")", "{", "default", ":", "gcc_unreachable", "(", ")", ";", "case", "3", ":", "d", ".", "one_vector_p", "=", "false", ";", "if", "(", "d", ".", "testing_p", "||", "!", "rtx_equal_p", "(", "op0", ",", "op1", ")", ")", "break", ";", "case", "2", ":", "d", ".", "op0", "=", "op1", ";", "d", ".", "one_vector_p", "=", "true", ";", "break", ";", "case", "1", ":", "d", ".", "op1", "=", "op0", ";", "d", ".", "one_vector_p", "=", "true", ";", "break", ";", "}", "d", ".", "perm", ".", "new_vector", "(", "sel", ".", "encoding", "(", ")", ",", "d", ".", "one_vector_p", "?", "1", ":", "2", ",", "nelt", ")", ";", "if", "(", "!", "d", ".", "testing_p", ")", "return", "arm_expand_vec_perm_const_1", "(", "&", "d", ")", ";", "d", ".", "target", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "1", ")", ";", "d", ".", "op1", "=", "d", ".", "op0", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "2", ")", ";", "if", "(", "!", "d", ".", "one_vector_p", ")", "d", ".", "op1", "=", "gen_raw_REG", "(", "d", ".", "vmode", ",", "LAST_VIRTUAL_REGISTER", "+", "3", ")", ";", "start_sequence", "(", ")", ";", "bool", "ret", "=", "arm_expand_vec_perm_const_1", "(", "&", "d", ")", ";", "end_sequence", "(", ")", ";", "return", "ret", ";", "}", ""], "natrual_language": ["Implement", "TARGET_VECTORIZE_VEC_PERM_CONST", "."], "TS_V_token": ["arm", "0", "2", "1", "1", "2", "3", "2", "1", "1", "2", "1", "2", "3"], "File": "arm", "Func": "arm_vectorize_vec_perm_const", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45151, "Length": 373}
{"ground_truth": ["", "static", "HOST_WIDE_INT", "arm_vector_alignment", "(", "const_tree", "type", ")", "{", "HOST_WIDE_INT", "align", "=", "tree_to_shwi", "(", "TYPE_SIZE", "(", "type", ")", ")", ";", "if", "(", "TARGET_AAPCS_BASED", ")", "align", "=", "MIN", "(", "align", ",", "64", ")", ";", "return", "align", ";", "}", ""], "natrual_language": ["The", "AAPCS", "sets", "the", "maximum", "alignment", "of", "a", "vector", "to", "64", "bits", "."], "TS_V_token": ["arm", "64"], "File": "arm", "Func": "arm_vector_alignment", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45152, "Length": 36}
{"ground_truth": ["", "bool", "arm_vector_mode_supported_p", "(", "machine_mode", "mode", ")", "{", "if", "(", "TARGET_NEON", "&&", "(", "mode", "==", "V2SFmode", "||", "mode", "==", "V4SImode", "||", "mode", "==", "V8HImode", "||", "mode", "==", "V4HFmode", "||", "mode", "==", "V16QImode", "||", "mode", "==", "V4SFmode", "||", "mode", "==", "V2DImode", "||", "mode", "==", "V8HFmode", "||", "mode", "==", "V4BFmode", "||", "mode", "==", "V8BFmode", ")", ")", "return", "true", ";", "if", "(", "(", "TARGET_NEON", "||", "TARGET_IWMMXT", ")", "&&", "(", "(", "mode", "==", "V2SImode", ")", "||", "(", "mode", "==", "V4HImode", ")", "||", "(", "mode", "==", "V8QImode", ")", ")", ")", "return", "true", ";", "if", "(", "TARGET_INT_SIMD", "&&", "(", "mode", "==", "V4UQQmode", "||", "mode", "==", "V4QQmode", "||", "mode", "==", "V2UHQmode", "||", "mode", "==", "V2HQmode", "||", "mode", "==", "V2UHAmode", "||", "mode", "==", "V2HAmode", ")", ")", "return", "true", ";", "if", "(", "TARGET_HAVE_MVE", "&&", "(", "mode", "==", "V2DImode", "||", "mode", "==", "V4SImode", "||", "mode", "==", "V8HImode", "||", "mode", "==", "V16QImode", "||", "mode", "==", "V16BImode", "||", "mode", "==", "V8BImode", "||", "mode", "==", "V4BImode", ")", ")", "return", "true", ";", "if", "(", "TARGET_HAVE_MVE_FLOAT", "&&", "(", "mode", "==", "V2DFmode", "||", "mode", "==", "V4SFmode", "||", "mode", "==", "V8HFmode", ")", ")", "return", "true", ";", "return", "false", ";", "}", ""], "natrual_language": ["Implements", "target", "hook", "vector_mode_supported_p", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "arm_vector_mode_supported_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45153, "Length": 182}
{"ground_truth": ["", "static", "unsigned", "bitmap_popcount", "(", "const", "sbitmap", "bmap", ")", "{", "unsigned", "int", "count", "=", "0", ";", "unsigned", "int", "n", "=", "0", ";", "sbitmap_iterator", "sbi", ";", "EXECUTE_IF_SET_IN_BITMAP", "(", "bmap", ",", "0", ",", "n", ",", "sbi", ")", "count", "++", ";", "return", "count", ";", "}", ""], "natrual_language": ["Return", "the", "number", "of", "bits", "set", "in", "BMAP", "."], "TS_V_token": ["arm", "0", "0", "0"], "File": "arm", "Func": "bitmap_popcount", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45154, "Length": 41}
{"ground_truth": ["", "static", "unsigned", "bit_count", "(", "unsigned", "long", "value", ")", "{", "unsigned", "long", "count", "=", "0", ";", "while", "(", "value", ")", "{", "count", "++", ";", "value", "&=", "value", "-", "1", ";", "}", "return", "count", ";", "}", ""], "natrual_language": ["Typical", "stack", "layout", "should", "looks", "like", "this", "after", "the", "function", "'s", "prologue", ":", "|", "|", "--", "^", "|", "|", "\\", "|", "|", "|", "arguments", "saved", "|", "Increasing", "|", "|", "on", "the", "stack", "|", "addresses", "PARENT", "arg", "pointer", "-", ">", "|", "|", "/", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "-", "CHILD", "|ret", "|", "return", "address", "--", "|", "|", "\\", "|", "|", "call", "saved", "|", "|", "registers", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "local", "|", "|", "variables", "frame", "pointer", "-", ">", "|", "|", "/", "--", "|", "|", "\\", "|", "|", "outgoing", "|", "Decreasing", "|", "|", "arguments", "|", "addresses", "current", "stack", "pointer", "-", ">", "|", "|", "/", "|", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "--", "V", "|", "|"], "TS_V_token": ["arm", "0", "1"], "File": "arm", "Func": "bit_count", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45155, "Length": 34}
{"ground_truth": ["", "static", "void", "bounds_check", "(", "rtx", "operand", ",", "HOST_WIDE_INT", "low", ",", "HOST_WIDE_INT", "high", ",", "const_tree", "exp", ",", "const", "char", "*", "desc", ")", "{", "HOST_WIDE_INT", "lane", ";", "gcc_assert", "(", "CONST_INT_P", "(", "operand", ")", ")", ";", "lane", "=", "INTVAL", "(", "operand", ")", ";", "if", "(", "lane", "<", "low", "||", "lane", ">=", "high", ")", "{", "if", "(", "exp", ")", "error_at", "(", "EXPR_LOCATION", "(", "exp", ")", ",", "\"%s %wd out of range %wd - %wd\"", ",", "desc", ",", "lane", ",", "low", ",", "high", "-", "1", ")", ";", "else", "error", "(", "\"%s %wd out of range %wd - %wd\"", ",", "desc", ",", "lane", ",", "low", ",", "high", "-", "1", ")", ";", "}", "}", ""], "natrual_language": ["Ensure", "OPERAND", "lies", "between", "LOW", "(", "inclusive", ")", "and", "HIGH", "(", "exclusive", ")", ".", "Raise", "ERR", "if", "it", "does", "n't", ".", "FIXME", ":", "NEON", "bounds", "checks", "occur", "late", "in", "compilation", ",", "so", "reported", "source", "locations", "are", "bogus", "."], "TS_V_token": ["arm", "\"%s %wd out of range %wd - %wd\"", "1", "\"%s %wd out of range %wd - %wd\"", "1"], "File": "arm", "Func": "bounds_check", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45156, "Length": 93}
{"ground_truth": ["", "static", "rtx_insn", "*", "calculate_pic_address_constant", "(", "rtx", "reg", ",", "rtx", "pic_reg", ",", "rtx", "orig", ")", "{", "rtx", "pat", ";", "rtx", "mem", ";", "pat", "=", "gen_calculate_pic_address", "(", "reg", ",", "pic_reg", ",", "orig", ")", ";", "mem", "=", "SET_SRC", "(", "pat", ")", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", "&&", "!", "MEM_VOLATILE_P", "(", "mem", ")", ")", ";", "MEM_READONLY_P", "(", "mem", ")", "=", "1", ";", "MEM_NOTRAP_P", "(", "mem", ")", "=", "1", ";", "return", "emit_insn", "(", "pat", ")", ";", "}", ""], "natrual_language": ["Generate", "insns", "to", "calculate", "the", "address", "of", "ORIG", "in", "pic", "mode", "."], "TS_V_token": ["arm", "1", "1"], "File": "arm", "Func": "calculate_pic_address_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45157, "Length": 74}
{"ground_truth": ["", "static", "bool", "can_avoid_literal_pool_for_label_p", "(", "rtx", "x", ")", "{", "if", "(", "arm_disable_literal_pool", "&&", "SYMBOL_REF_P", "(", "x", ")", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "true", "if", "we", "can", "avoid", "creating", "a", "constant", "pool", "entry", "for", "x", "."], "TS_V_token": ["arm", "1", "0"], "File": "arm", "Func": "can_avoid_literal_pool_for_label_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45158, "Length": 29}
{"ground_truth": ["", "bool", "clear_operation_p", "(", "rtx", "op", ",", "bool", "vfp", ")", "{", "unsigned", "regno", ";", "unsigned", "last_regno", "=", "INVALID_REGNUM", ";", "rtx", "elt", ",", "reg", ",", "zero", ";", "int", "count", "=", "XVECLEN", "(", "op", ",", "0", ")", ";", "int", "first_set", "=", "vfp", "?", "1", ":", "0", ";", "machine_mode", "expected_mode", "=", "vfp", "?", "E_SFmode", ":", "E_SImode", ";", "for", "(", "int", "i", "=", "first_set", ";", "i", "<", "count", ";", "i", "++", ")", "{", "elt", "=", "XVECEXP", "(", "op", ",", "0", ",", "i", ")", ";", "if", "(", "!", "vfp", "&&", "GET_CODE", "(", "elt", ")", "==", "UNSPEC_VOLATILE", ")", "{", "if", "(", "XINT", "(", "elt", ",", "1", ")", "!=", "VUNSPEC_CLRM_APSR", "||", "XVECLEN", "(", "elt", ",", "0", ")", "!=", "1", "||", "XVECEXP", "(", "elt", ",", "0", ",", "0", ")", "!=", "CONST0_RTX", "(", "SImode", ")", "||", "i", "!=", "count", "-", "2", ")", "return", "false", ";", "continue", ";", "}", "if", "(", "GET_CODE", "(", "elt", ")", "==", "CLOBBER", ")", "continue", ";", "if", "(", "GET_CODE", "(", "elt", ")", "!=", "SET", ")", "return", "false", ";", "reg", "=", "SET_DEST", "(", "elt", ")", ";", "zero", "=", "SET_SRC", "(", "elt", ")", ";", "if", "(", "!", "REG_P", "(", "reg", ")", "||", "GET_MODE", "(", "reg", ")", "!=", "expected_mode", "||", "zero", "!=", "CONST0_RTX", "(", "SImode", ")", ")", "return", "false", ";", "regno", "=", "REGNO", "(", "reg", ")", ";", "if", "(", "vfp", ")", "{", "if", "(", "i", "!=", "first_set", "&&", "regno", "!=", "last_regno", "+", "1", ")", "return", "false", ";", "}", "else", "{", "if", "(", "regno", "==", "SP_REGNUM", "||", "regno", "==", "PC_REGNUM", ")", "return", "false", ";", "if", "(", "i", "!=", "first_set", "&&", "regno", "<=", "last_regno", ")", "return", "false", ";", "}", "last_regno", "=", "regno", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Checks", "whether", "OP", "is", "a", "valid", "parallel", "pattern", "for", "a", "CLRM", "(", "if", "VFP", "is", "false", ")", "or", "VSCCLRM", "(", "otherwise", ")", "insn", ".", "To", "be", "a", "valid", "CLRM", "pattern", ",", "OP", "must", "have", "the", "following", "form", ":", "[", "(", "set", "(", "reg", ":", "SI", "<", "N", ">", ")", "(", "const_int", "0", ")", ")", "(", "set", "(", "reg", ":", "SI", "<", "M", ">", ")", "(", "const_int", "0", ")", ")", "...", "(", "unspec_volatile", "[", "(", "const_int", "0", ")", "]", "VUNSPEC_CLRM_APSR", ")", "(", "clobber", "(", "reg", ":", "CC", "CC_REGNUM", ")", ")", "]", "Any", "number", "(", "including", "0", ")", "of", "set", "expressions", "is", "valid", ",", "the", "volatile", "unspec", "is", "optional", ".", "All", "registers", "but", "SP", "and", "PC", "are", "allowed", "and", "registers", "must", "be", "in", "strict", "increasing", "order", ".", "To", "be", "a", "valid", "VSCCLRM", "pattern", ",", "OP", "must", "have", "the", "following", "form", ":", "[", "(", "unspec_volatile", "[", "(", "const_int", "0", ")", "]", "VUNSPEC_VSCCLRM_VPR", ")", "(", "set", "(", "reg", ":", "SF", "<", "N", ">", ")", "(", "const_int", "0", ")", ")", "(", "set", "(", "reg", ":", "SF", "<", "M", ">", ")", "(", "const_int", "0", ")", ")", "...", "]", "As", "with", "CLRM", ",", "any", "number", "(", "including", "0", ")", "of", "set", "expressions", "is", "valid", ",", "however", "the", "volatile", "unspec", "is", "mandatory", "here", ".", "Any", "VFP", "single-precision", "register", "is", "accepted", "but", "all", "registers", "must", "be", "consecutive", "and", "in", "increasing", "order", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "1", "0", "1", "0", "0", "2", "1"], "File": "arm", "Func": "clear_operation_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45159, "Length": 266}
{"ground_truth": ["", "static", "bool", "cmse_func_args_or_return_in_stack", "(", "tree", "fndecl", ",", "tree", "name", ",", "tree", "fntype", ")", "{", "function_args_iterator", "args_iter", ";", "CUMULATIVE_ARGS", "args_so_far_v", ";", "cumulative_args_t", "args_so_far", ";", "bool", "first_param", "=", "true", ";", "tree", "arg_type", ",", "prev_arg_type", "=", "NULL_TREE", ",", "ret_type", ";", "arm_init_cumulative_args", "(", "&", "args_so_far_v", ",", "fntype", ",", "NULL_RTX", ",", "fndecl", ")", ";", "args_so_far", "=", "pack_cumulative_args", "(", "&", "args_so_far_v", ")", ";", "FOREACH_FUNCTION_ARGS", "(", "fntype", ",", "arg_type", ",", "args_iter", ")", "{", "rtx", "arg_rtx", ";", "prev_arg_type", "=", "arg_type", ";", "if", "(", "VOID_TYPE_P", "(", "arg_type", ")", ")", "continue", ";", "function_arg_info", "arg", "(", "arg_type", ",", "true", ")", ";", "if", "(", "!", "first_param", ")", "arm_function_arg_advance", "(", "args_so_far", ",", "arg", ")", ";", "arg_rtx", "=", "arm_function_arg", "(", "args_so_far", ",", "arg", ")", ";", "if", "(", "!", "arg_rtx", "||", "arm_arg_partial_bytes", "(", "args_so_far", ",", "arg", ")", ")", "{", "error", "(", "\"%qE attribute not available to functions with arguments \"", "\"passed on the stack\"", ",", "name", ")", ";", "return", "true", ";", "}", "first_param", "=", "false", ";", "}", "if", "(", "prev_arg_type", "!=", "NULL_TREE", "&&", "!", "VOID_TYPE_P", "(", "prev_arg_type", ")", ")", "{", "error", "(", "\"%qE attribute not available to functions with variable number \"", "\"of arguments\"", ",", "name", ")", ";", "return", "true", ";", "}", "ret_type", "=", "TREE_TYPE", "(", "fntype", ")", ";", "if", "(", "arm_return_in_memory", "(", "ret_type", ",", "fntype", ")", ")", "{", "error", "(", "\"%qE attribute not available to functions that return value on \"", "\"the stack\"", ",", "name", ")", ";", "return", "true", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["This", "function", "returns", "true", "if", "a", "function", "with", "declaration", "FNDECL", "and", "type", "FNTYPE", "uses", "the", "stack", "to", "pass", "arguments", "or", "return", "variables", "and", "false", "otherwise", ".", "This", "is", "used", "for", "functions", "with", "the", "attributes", "'cmse_nonsecure_call", "'", "or", "'cmse_nonsecure_entry", "'", "and", "this", "function", "will", "issue", "diagnostic", "messages", "if", "the", "stack", "is", "used", ".", "NAME", "is", "the", "name", "of", "the", "attribute", "used", "."], "TS_V_token": ["arm", "\"%qE attribute not available to functions with arguments \"", "\"passed on the stack\"", "\"%qE attribute not available to functions with variable number \"", "\"of arguments\"", "\"%qE attribute not available to functions that return value on \"", "\"the stack\""], "File": "arm", "Func": "cmse_func_args_or_return_in_stack", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45160, "Length": 199}
{"ground_truth": ["", "void", "cmse_nonsecure_entry_clear_before_return", "(", "void", ")", "{", "bool", "clear_vfpregs", "=", "TARGET_HARD_FLOAT", "||", "TARGET_HAVE_FPCXT_CMSE", ";", "int", "regno", ",", "maxregno", "=", "clear_vfpregs", "?", "LAST_VFP_REGNUM", ":", "IP_REGNUM", ";", "uint32_t", "padding_bits_to_clear", "=", "0", ";", "auto_sbitmap", "to_clear_bitmap", "(", "maxregno", "+", "1", ")", ";", "rtx", "r1_reg", ",", "result_rtl", ",", "clearing_reg", "=", "NULL_RTX", ";", "tree", "result_type", ";", "bitmap_clear", "(", "to_clear_bitmap", ")", ";", "bitmap_set_range", "(", "to_clear_bitmap", ",", "R0_REGNUM", ",", "NUM_ARG_REGS", ")", ";", "bitmap_set_bit", "(", "to_clear_bitmap", ",", "IP_REGNUM", ")", ";", "if", "(", "clear_vfpregs", ")", "{", "int", "float_bits", "=", "D7_VFP_REGNUM", "-", "FIRST_VFP_REGNUM", "+", "1", ";", "bitmap_set_range", "(", "to_clear_bitmap", ",", "FIRST_VFP_REGNUM", ",", "float_bits", ")", ";", "if", "(", "!", "TARGET_HAVE_FPCXT_CMSE", ")", "{", "emit_use", "(", "gen_rtx_REG", "(", "SImode", ",", "IP_REGNUM", ")", ")", ";", "bitmap_clear_bit", "(", "to_clear_bitmap", ",", "IP_REGNUM", ")", ";", "emit_use", "(", "gen_rtx_REG", "(", "SImode", ",", "4", ")", ")", ";", "bitmap_clear_bit", "(", "to_clear_bitmap", ",", "4", ")", ";", "}", "}", "for", "(", "regno", "=", "NUM_ARG_REGS", ";", "regno", "<=", "maxregno", ";", "regno", "++", ")", "{", "if", "(", "IN_RANGE", "(", "regno", ",", "FIRST_VFP_REGNUM", ",", "D7_VFP_REGNUM", ")", ")", "continue", ";", "if", "(", "IN_RANGE", "(", "regno", ",", "IP_REGNUM", ",", "PC_REGNUM", ")", ")", "continue", ";", "if", "(", "!", "callee_saved_reg_p", "(", "regno", ")", "&&", "(", "!", "IN_RANGE", "(", "regno", ",", "FIRST_VFP_REGNUM", ",", "LAST_VFP_REGNUM", ")", "||", "TARGET_HARD_FLOAT", ")", ")", "bitmap_set_bit", "(", "to_clear_bitmap", ",", "regno", ")", ";", "}", "result_type", "=", "TREE_TYPE", "(", "DECL_RESULT", "(", "current_function_decl", ")", ")", ";", "if", "(", "!", "VOID_TYPE_P", "(", "result_type", ")", ")", "{", "uint64_t", "to_clear_return_mask", ";", "result_rtl", "=", "arm_function_value", "(", "result_type", ",", "current_function_decl", ",", "0", ")", ";", "gcc_assert", "(", "REG_P", "(", "result_rtl", ")", ")", ";", "to_clear_return_mask", "=", "compute_not_to_clear_mask", "(", "result_type", ",", "result_rtl", ",", "0", ",", "&", "padding_bits_to_clear", ")", ";", "if", "(", "to_clear_return_mask", ")", "{", "gcc_assert", "(", "(", "unsigned", ")", "maxregno", "<", "sizeof", "(", "long", "long", ")", "*", "__CHAR_BIT__", ")", ";", "for", "(", "regno", "=", "R0_REGNUM", ";", "regno", "<=", "maxregno", ";", "regno", "++", ")", "{", "if", "(", "to_clear_return_mask", "&", "(", "1ULL", "<<", "regno", ")", ")", "bitmap_clear_bit", "(", "to_clear_bitmap", ",", "regno", ")", ";", "}", "}", "}", "if", "(", "padding_bits_to_clear", "!=", "0", ")", "{", "int", "to_clear_bitmap_size", "=", "SBITMAP_SIZE", "(", "(", "sbitmap", ")", "to_clear_bitmap", ")", ";", "auto_sbitmap", "to_clear_arg_regs_bitmap", "(", "to_clear_bitmap_size", ")", ";", "bitmap_clear", "(", "to_clear_arg_regs_bitmap", ")", ";", "bitmap_set_range", "(", "to_clear_arg_regs_bitmap", ",", "R1_REGNUM", ",", "NUM_ARG_REGS", "-", "1", ")", ";", "gcc_assert", "(", "bitmap_subset_p", "(", "to_clear_arg_regs_bitmap", ",", "to_clear_bitmap", ")", ")", ";", "}", "clearing_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "TARGET_THUMB1", "?", "R0_REGNUM", ":", "LR_REGNUM", ")", ";", "r1_reg", "=", "gen_rtx_REG", "(", "SImode", ",", "R0_REGNUM", "+", "1", ")", ";", "cmse_clear_registers", "(", "to_clear_bitmap", ",", "&", "padding_bits_to_clear", ",", "1", ",", "r1_reg", ",", "clearing_reg", ")", ";", "}", ""], "natrual_language": ["Clear", "caller", "saved", "registers", "not", "used", "to", "pass", "return", "values", "and", "leaked", "condition", "flags", "before", "exiting", "a", "cmse_nonsecure_entry", "function", "."], "TS_V_token": ["arm", "0", "1", "1", "4", "4", "0", "0", "1ULL", "0", "1", "1", "1"], "File": "arm", "Func": "cmse_nonsecure_entry_clear_before_return", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45161, "Length": 405}
{"ground_truth": ["", "static", "unsigned", "HOST_WIDE_INT", "compute_not_to_clear_mask", "(", "tree", "arg_type", ",", "rtx", "arg_rtx", ",", "int", "regno", ",", "uint32_t", "*", "padding_bits_to_clear", ")", "{", "int", "last_used_bit", "=", "0", ";", "unsigned", "HOST_WIDE_INT", "not_to_clear_mask", ";", "if", "(", "RECORD_OR_UNION_TYPE_P", "(", "arg_type", ")", ")", "{", "not_to_clear_mask", "=", "comp_not_to_clear_mask_str_un", "(", "arg_type", ",", "&", "regno", ",", "padding_bits_to_clear", ",", "0", ",", "&", "last_used_bit", ")", ";", "if", "(", "last_used_bit", "!=", "0", ")", "padding_bits_to_clear", "[", "regno", "]", "|=", "(", "(", "uint32_t", ")", "-", "1", ")", "-", "(", "(", "uint32_t", ")", "1", "<<", "last_used_bit", ")", "+", "1", ";", "else", "not_to_clear_mask", "&=", "~", "(", "HOST_WIDE_INT_1U", "<<", "regno", ")", ";", "}", "else", "{", "not_to_clear_mask", "=", "0", ";", "if", "(", "GET_MODE", "(", "arg_rtx", ")", "==", "BLKmode", ")", "{", "int", "i", ",", "arg_regs", ";", "rtx", "reg", ";", "gcc_assert", "(", "TARGET_HARD_FLOAT_ABI", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "XVECLEN", "(", "arg_rtx", ",", "0", ")", ";", "i", "++", ")", "{", "reg", "=", "XEXP", "(", "XVECEXP", "(", "arg_rtx", ",", "0", ",", "i", ")", ",", "0", ")", ";", "gcc_assert", "(", "REG_P", "(", "reg", ")", ")", ";", "not_to_clear_mask", "|=", "HOST_WIDE_INT_1U", "<<", "REGNO", "(", "reg", ")", ";", "arg_regs", "=", "ARM_NUM_REGS", "(", "GET_MODE", "(", "reg", ")", ")", ";", "if", "(", "arg_regs", ">", "1", ")", "{", "unsigned", "HOST_WIDE_INT", "mask", ";", "mask", "=", "HOST_WIDE_INT_1U", "<<", "(", "REGNO", "(", "reg", ")", "+", "arg_regs", ")", ";", "mask", "-=", "HOST_WIDE_INT_1U", "<<", "REGNO", "(", "reg", ")", ";", "not_to_clear_mask", "|=", "mask", ";", "}", "}", "}", "else", "{", "int", "arg_regs", "=", "ARM_NUM_REGS", "(", "GET_MODE", "(", "arg_rtx", ")", ")", ";", "not_to_clear_mask", "|=", "HOST_WIDE_INT_1U", "<<", "REGNO", "(", "arg_rtx", ")", ";", "if", "(", "arg_regs", ">", "1", ")", "{", "unsigned", "HOST_WIDE_INT", "mask", "=", "HOST_WIDE_INT_1U", "<<", "(", "REGNO", "(", "arg_rtx", ")", "+", "arg_regs", ")", ";", "mask", "-=", "HOST_WIDE_INT_1U", "<<", "REGNO", "(", "arg_rtx", ")", ";", "not_to_clear_mask", "|=", "mask", ";", "}", "}", "}", "return", "not_to_clear_mask", ";", "}", ""], "natrual_language": ["In", "the", "context", "of", "ARMv8-M", "Security", "Extensions", ",", "this", "function", "is", "used", "for", "both", "'cmse_nonsecure_call", "'", "and", "'cmse_nonsecure_entry", "'", "functions", "to", "compute", "what", "registers", "are", "used", "when", "returning", "or", "passing", "arguments", ",", "which", "is", "then", "returned", "as", "a", "mask", ".", "It", "will", "also", "compute", "a", "mask", "to", "indicate", "padding/unused", "bits", "for", "each", "of", "these", "registers", ",", "and", "passes", "this", "through", "the", "PADDING_BITS_TO_CLEAR", "pointer", ".", "The", "tree", "of", "the", "argument", "type", "is", "passed", "in", "ARG_TYPE", ",", "the", "rtl", "representation", "of", "the", "argument", "is", "passed", "in", "ARG_RTX", "and", "the", "starting", "register", "used", "to", "pass", "this", "argument", "or", "return", "value", "is", "passed", "in", "REGNO", ".", "It", "makes", "use", "of", "'comp_not_to_clear_mask_str_un", "'", "to", "compute", "these", "for", "struct", "and", "union", "types", "."], "TS_V_token": ["arm", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1"], "File": "arm", "Func": "compute_not_to_clear_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45162, "Length": 289}
{"ground_truth": ["", "static", "bool", "compute_offset_order", "(", "int", "nops", ",", "HOST_WIDE_INT", "*", "unsorted_offsets", ",", "int", "*", "order", ",", "int", "*", "unsorted_regs", ")", "{", "int", "i", ";", "for", "(", "i", "=", "1", ";", "i", "<", "nops", ";", "i", "++", ")", "{", "int", "j", ";", "order", "[", "i", "]", "=", "order", "[", "i", "-", "1", "]", ";", "for", "(", "j", "=", "0", ";", "j", "<", "nops", ";", "j", "++", ")", "if", "(", "unsorted_offsets", "[", "j", "]", "==", "unsorted_offsets", "[", "order", "[", "i", "-", "1", "]", "]", "+", "4", ")", "{", "if", "(", "order", "[", "i", "]", "!=", "order", "[", "i", "-", "1", "]", ")", "return", "false", ";", "order", "[", "i", "]", "=", "j", ";", "}", "if", "(", "order", "[", "i", "]", "==", "order", "[", "i", "-", "1", "]", ")", "return", "false", ";", "if", "(", "unsorted_regs", "!=", "NULL", "&&", "unsorted_regs", "[", "order", "[", "i", "]", "]", "<=", "unsorted_regs", "[", "order", "[", "i", "-", "1", "]", "]", ")", "return", "false", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Subroutine", "of", "load_multiple_sequence", "and", "store_multiple_sequence", ".", "Given", "an", "array", "of", "UNSORTED_OFFSETS", ",", "of", "which", "there", "are", "NOPS", ",", "compute", "an", "array", "ORDER", "which", "describes", "the", "sequence", "to", "use", "when", "accessing", "the", "offsets", "that", "produces", "an", "ascending", "order", ".", "In", "this", "sequence", ",", "each", "offset", "must", "be", "larger", "by", "exactly", "4", "than", "the", "previous", "one", ".", "ORDER", "[", "0", "]", "must", "have", "been", "filled", "in", "with", "the", "lowest", "offset", "by", "the", "caller", ".", "If", "UNSORTED_REGS", "is", "nonnull", ",", "it", "is", "an", "array", "of", "register", "numbers", "that", "we", "use", "to", "verify", "that", "ORDER", "produces", "an", "ascending", "order", "of", "registers", ".", "Return", "true", "if", "it", "was", "possible", "to", "construct", "such", "an", "order", ",", "false", "if", "not", "."], "TS_V_token": ["arm", "1", "1", "0", "1", "4", "1", "1", "1"], "File": "arm", "Func": "compute_offset_order", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45163, "Length": 159}
{"ground_truth": ["", "int", "const_ok_for_arm", "(", "HOST_WIDE_INT", "i", ")", "{", "int", "lowbit", ";", "if", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", "!=", "0", "&&", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", "!=", "(", "(", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0", ")", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ")", ")", ")", "return", "FALSE", ";", "i", "&=", "(", "unsigned", "HOST_WIDE_INT", ")", "0xffffffff", ";", "if", "(", "(", "i", "&", "~", "(", "unsigned", "HOST_WIDE_INT", ")", "0xff", ")", "==", "0", ")", "return", "TRUE", ";", "lowbit", "=", "ffs", "(", "(", "int", ")", "i", ")", "-", "1", ";", "if", "(", "TARGET_ARM", ")", "lowbit", "&=", "~", "1", ";", "if", "(", "(", "i", "&", "~", "(", "(", "(", "unsigned", "HOST_WIDE_INT", ")", "0xff", ")", "<<", "lowbit", ")", ")", "==", "0", ")", "return", "TRUE", ";", "if", "(", "TARGET_ARM", ")", "{", "if", "(", "lowbit", "<=", "4", "&&", "(", "(", "i", "&", "~", "0xc000003f", ")", "==", "0", "||", "(", "i", "&", "~", "0xf000000f", ")", "==", "0", "||", "(", "i", "&", "~", "0xfc000003", ")", "==", "0", ")", ")", "return", "TRUE", ";", "}", "else", "if", "(", "TARGET_THUMB2", ")", "{", "HOST_WIDE_INT", "v", ";", "v", "=", "i", "&", "0xff", ";", "v", "|=", "v", "<<", "16", ";", "if", "(", "i", "==", "v", "||", "i", "==", "(", "v", "|", "(", "v", "<<", "8", ")", ")", ")", "return", "TRUE", ";", "v", "=", "i", "&", "0xff00", ";", "v", "|=", "v", "<<", "16", ";", "if", "(", "i", "==", "v", ")", "return", "TRUE", ";", "}", "else", "if", "(", "TARGET_HAVE_MOVT", ")", "{", "if", "(", "i", ">", "0xffff", ")", "return", "FALSE", ";", "else", "return", "TRUE", ";", "}", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "int", "I", "is", "a", "valid", "immediate", "ARM", "constant", "."], "TS_V_token": ["arm", "0xffffffff", "0", "0xffffffff", "0", "0xffffffff", "0xffffffff", "0xff", "0", "1", "1", "0xff", "0", "4", "0xc000003f", "0", "0xf000000f", "0", "0xfc000003", "0", "0xff", "16", "8", "0xff00", "16", "0xffff"], "File": "arm", "Func": "const_ok_for_arm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45164, "Length": 262}
{"ground_truth": ["", "int", "const_ok_for_dimode_op", "(", "HOST_WIDE_INT", "i", ",", "enum", "rtx_code", "code", ")", "{", "HOST_WIDE_INT", "hi_val", "=", "(", "i", ">>", "32", ")", "&", "0xFFFFFFFF", ";", "HOST_WIDE_INT", "lo_val", "=", "i", "&", "0xFFFFFFFF", ";", "rtx", "hi", "=", "GEN_INT", "(", "hi_val", ")", ";", "rtx", "lo", "=", "GEN_INT", "(", "lo_val", ")", ";", "if", "(", "TARGET_THUMB1", ")", "return", "0", ";", "switch", "(", "code", ")", "{", "case", "AND", ":", "case", "IOR", ":", "case", "XOR", ":", "return", "const_ok_for_op", "(", "hi_val", ",", "code", ")", "||", "hi_val", "==", "0xFFFFFFFF", "||", "const_ok_for_op", "(", "lo_val", ",", "code", ")", "||", "lo_val", "==", "0xFFFFFFFF", ";", "case", "PLUS", ":", "return", "arm_not_operand", "(", "hi", ",", "SImode", ")", "&&", "arm_add_operand", "(", "lo", ",", "SImode", ")", ";", "default", ":", "return", "0", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "I", "is", "a", "valid", "di", "mode", "constant", "for", "the", "operation", "CODE", "."], "TS_V_token": ["arm", "32", "0xFFFFFFFF", "0xFFFFFFFF", "0", "0xFFFFFFFF", "0xFFFFFFFF", "0"], "File": "arm", "Func": "const_ok_for_dimode_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45165, "Length": 114}
{"ground_truth": ["", "int", "const_ok_for_op", "(", "HOST_WIDE_INT", "i", ",", "enum", "rtx_code", "code", ")", "{", "if", "(", "const_ok_for_arm", "(", "i", ")", ")", "return", "1", ";", "switch", "(", "code", ")", "{", "case", "SET", ":", "if", "(", "TARGET_HAVE_MOVT", "&&", "(", "i", "&", "0xffff0000", ")", "==", "0", ")", "return", "1", ";", "else", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "~", "i", ")", ")", ";", "case", "PLUS", ":", "if", "(", "TARGET_THUMB2", "&&", "(", "(", "i", "&", "0xfffff000", ")", "==", "0", "||", "(", "(", "-", "i", ")", "&", "0xfffff000", ")", "==", "0", ")", ")", "return", "1", ";", "case", "COMPARE", ":", "case", "EQ", ":", "case", "NE", ":", "case", "GT", ":", "case", "LE", ":", "case", "LT", ":", "case", "GE", ":", "case", "GEU", ":", "case", "LTU", ":", "case", "GTU", ":", "case", "LEU", ":", "case", "UNORDERED", ":", "case", "ORDERED", ":", "case", "UNEQ", ":", "case", "UNGE", ":", "case", "UNLT", ":", "case", "UNGT", ":", "case", "UNLE", ":", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "-", "i", ")", ")", ";", "case", "MINUS", ":", "case", "XOR", ":", "return", "0", ";", "case", "IOR", ":", "if", "(", "TARGET_THUMB2", ")", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "~", "i", ")", ")", ";", "return", "0", ";", "case", "AND", ":", "return", "const_ok_for_arm", "(", "ARM_SIGN_EXTEND", "(", "~", "i", ")", ")", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "I", "is", "a", "valid", "constant", "for", "the", "operation", "CODE", "."], "TS_V_token": ["arm", "1", "0xffff0000", "0", "1", "0xfffff000", "0", "0xfffff000", "0", "1", "0", "0"], "File": "arm", "Func": "const_ok_for_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45166, "Length": 200}
{"ground_truth": ["", "enum", "reg_class", "coproc_secondary_reload_class", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "bool", "wb", ")", "{", "if", "(", "mode", "==", "HFmode", ")", "{", "if", "(", "!", "TARGET_NEON_FP16", "&&", "!", "TARGET_VFP_FP16INST", ")", "return", "GENERAL_REGS", ";", "if", "(", "s_register_operand", "(", "x", ",", "mode", ")", "||", "neon_vector_mem_operand", "(", "x", ",", "2", ",", "true", ")", ")", "return", "NO_REGS", ";", "return", "GENERAL_REGS", ";", "}", "if", "(", "TARGET_NEON", "&&", "(", "MEM_P", "(", "x", ")", "||", "GET_CODE", "(", "x", ")", "==", "CONST_VECTOR", ")", "&&", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_INT", "||", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_FLOAT", "||", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "NO_REGS", ";", "if", "(", "arm_coproc_mem_operand", "(", "x", ",", "wb", ")", "||", "s_register_operand", "(", "x", ",", "mode", ")", ")", "return", "NO_REGS", ";", "return", "GENERAL_REGS", ";", "}", ""], "natrual_language": ["Return", "GENERAL_REGS", "if", "a", "scratch", "register", "required", "to", "reload", "x", "to/from", "coprocessor", "registers", ".", "Otherwise", "return", "NO_REGS", "."], "TS_V_token": ["arm", "2"], "File": "arm", "Func": "coproc_secondary_reload_class", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45167, "Length": 122}
{"ground_truth": ["", "static", "bool", "cortexa7_older_only", "(", "rtx_insn", "*", "insn", ")", "{", "if", "(", "recog_memoized", "(", "insn", ")", "<", "0", ")", "return", "false", ";", "switch", "(", "get_attr_type", "(", "insn", ")", ")", "{", "case", "TYPE_ALU_DSP_REG", ":", "case", "TYPE_ALU_SREG", ":", "case", "TYPE_ALUS_SREG", ":", "case", "TYPE_LOGIC_REG", ":", "case", "TYPE_LOGICS_REG", ":", "case", "TYPE_ADC_REG", ":", "case", "TYPE_ADCS_REG", ":", "case", "TYPE_ADR", ":", "case", "TYPE_BFM", ":", "case", "TYPE_REV", ":", "case", "TYPE_MVN_REG", ":", "case", "TYPE_SHIFT_IMM", ":", "case", "TYPE_SHIFT_REG", ":", "case", "TYPE_LOAD_BYTE", ":", "case", "TYPE_LOAD_4", ":", "case", "TYPE_STORE_4", ":", "case", "TYPE_FFARITHS", ":", "case", "TYPE_FADDS", ":", "case", "TYPE_FFARITHD", ":", "case", "TYPE_FADDD", ":", "case", "TYPE_FMOV", ":", "case", "TYPE_F_CVT", ":", "case", "TYPE_FCMPS", ":", "case", "TYPE_FCMPD", ":", "case", "TYPE_FCONSTS", ":", "case", "TYPE_FCONSTD", ":", "case", "TYPE_FMULS", ":", "case", "TYPE_FMACS", ":", "case", "TYPE_FMULD", ":", "case", "TYPE_FMACD", ":", "case", "TYPE_FDIVS", ":", "case", "TYPE_FDIVD", ":", "case", "TYPE_F_MRC", ":", "case", "TYPE_F_MRRC", ":", "case", "TYPE_F_FLAG", ":", "case", "TYPE_F_LOADS", ":", "case", "TYPE_F_STORES", ":", "return", "true", ";", "default", ":", "return", "false", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "and", "only", "if", "this", "insn", "can", "dual-issue", "only", "as", "older", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "cortexa7_older_only", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45168, "Length": 150}
{"ground_truth": ["", "static", "void", "cortexa7_sched_reorder", "(", "FILE", "*", "file", ",", "int", "verbose", ",", "rtx_insn", "*", "*", "ready", ",", "int", "*", "n_readyp", ",", "int", "clock", ")", "{", "int", "i", ";", "int", "first_older_only", "=", "-", "1", ",", "first_younger", "=", "-", "1", ";", "if", "(", "verbose", ">", "5", ")", "fprintf", "(", "file", ",", "\";; sched_reorder for cycle %d with %d insns in ready list\\n\"", ",", "clock", ",", "*", "n_readyp", ")", ";", "for", "(", "i", "=", "*", "n_readyp", "-", "1", ";", "i", ">=", "0", ";", "i", "--", ")", "{", "rtx_insn", "*", "insn", "=", "ready", "[", "i", "]", ";", "if", "(", "cortexa7_older_only", "(", "insn", ")", ")", "{", "first_older_only", "=", "i", ";", "if", "(", "verbose", ">", "5", ")", "fprintf", "(", "file", ",", "\";; reorder older found %d\\n\"", ",", "INSN_UID", "(", "insn", ")", ")", ";", "break", ";", "}", "else", "if", "(", "cortexa7_younger", "(", "file", ",", "verbose", ",", "insn", ")", "&&", "first_younger", "==", "-", "1", ")", "first_younger", "=", "i", ";", "}", "if", "(", "first_younger", "==", "-", "1", ")", "{", "if", "(", "verbose", ">", "5", ")", "fprintf", "(", "file", ",", "\";; sched_reorder nothing to reorder as no younger\\n\"", ")", ";", "return", ";", "}", "if", "(", "first_older_only", "==", "-", "1", ")", "{", "if", "(", "verbose", ">", "5", ")", "fprintf", "(", "file", ",", "\";; sched_reorder nothing to reorder as no older_only\\n\"", ")", ";", "return", ";", "}", "if", "(", "verbose", ">", "5", ")", "fprintf", "(", "file", ",", "\";; cortexa7_sched_reorder insn %d before %d\\n\"", ",", "INSN_UID", "(", "ready", "[", "first_older_only", "]", ")", ",", "INSN_UID", "(", "ready", "[", "first_younger", "]", ")", ")", ";", "rtx_insn", "*", "first_older_only_insn", "=", "ready", "[", "first_older_only", "]", ";", "for", "(", "i", "=", "first_older_only", ";", "i", "<", "first_younger", ";", "i", "++", ")", "{", "ready", "[", "i", "]", "=", "ready", "[", "i", "+", "1", "]", ";", "}", "ready", "[", "i", "]", "=", "first_older_only_insn", ";", "return", ";", "}", ""], "natrual_language": ["Look", "for", "an", "instruction", "that", "can", "dual", "issue", "only", "as", "an", "older", "instruction", ",", "and", "move", "it", "in", "front", "of", "any", "instructions", "that", "can", "dual-issue", "as", "younger", ",", "while", "preserving", "the", "relative", "order", "of", "all", "other", "instructions", "in", "the", "ready", "list", ".", "This", "is", "a", "hueuristic", "to", "help", "dual-issue", "in", "later", "cycles", ",", "by", "postponing", "issue", "of", "more", "flexible", "instructions", ".", "This", "heuristic", "may", "affect", "dual", "issue", "opportunities", "in", "the", "current", "cycle", "."], "TS_V_token": ["arm", "1", "1", "5", "\";; sched_reorder for cycle %d with %d insns in ready list\\n\"", "1", "0", "5", "\";; reorder older found %d\\n\"", "1", "1", "5", "\";; sched_reorder nothing to reorder as no younger\\n\"", "1", "5", "\";; sched_reorder nothing to reorder as no older_only\\n\"", "5", "\";; cortexa7_sched_reorder insn %d before %d\\n\"", "1"], "File": "arm", "Func": "cortexa7_sched_reorder", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45169, "Length": 260}
{"ground_truth": ["", "static", "bool", "cortexa7_younger", "(", "FILE", "*", "file", ",", "int", "verbose", ",", "rtx_insn", "*", "insn", ")", "{", "if", "(", "recog_memoized", "(", "insn", ")", "<", "0", ")", "{", "if", "(", "verbose", ">", "5", ")", "fprintf", "(", "file", ",", "\";; not cortexa7_younger %d\\n\"", ",", "INSN_UID", "(", "insn", ")", ")", ";", "return", "false", ";", "}", "switch", "(", "get_attr_type", "(", "insn", ")", ")", "{", "case", "TYPE_ALU_IMM", ":", "case", "TYPE_ALUS_IMM", ":", "case", "TYPE_LOGIC_IMM", ":", "case", "TYPE_LOGICS_IMM", ":", "case", "TYPE_EXTEND", ":", "case", "TYPE_MVN_IMM", ":", "case", "TYPE_MOV_IMM", ":", "case", "TYPE_MOV_REG", ":", "case", "TYPE_MOV_SHIFT", ":", "case", "TYPE_MOV_SHIFT_REG", ":", "case", "TYPE_BRANCH", ":", "case", "TYPE_CALL", ":", "return", "true", ";", "default", ":", "return", "false", ";", "}", "}", ""], "natrual_language": ["Return", "true", "if", "and", "only", "if", "this", "insn", "can", "dual-issue", "as", "younger", "."], "TS_V_token": ["arm", "0", "5", "\";; not cortexa7_younger %d\\n\""], "File": "arm", "Func": "cortexa7_younger", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45170, "Length": 102}
{"ground_truth": ["", "static", "bool", "cortex_a9_sched_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "int", "dep_type", ",", "rtx_insn", "*", "dep", ",", "int", "*", "cost", ")", "{", "switch", "(", "dep_type", ")", "{", "case", "REG_DEP_ANTI", ":", "*", "cost", "=", "0", ";", "return", "false", ";", "case", "REG_DEP_TRUE", ":", "case", "REG_DEP_OUTPUT", ":", "if", "(", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", ")", "{", "if", "(", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "SET", ")", "{", "if", "(", "GET_MODE_CLASS", "(", "GET_MODE", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ")", ")", "==", "MODE_FLOAT", "||", "GET_MODE_CLASS", "(", "GET_MODE", "(", "SET_SRC", "(", "PATTERN", "(", "insn", ")", ")", ")", ")", "==", "MODE_FLOAT", ")", "{", "enum", "attr_type", "attr_type_insn", "=", "get_attr_type", "(", "insn", ")", ";", "enum", "attr_type", "attr_type_dep", "=", "get_attr_type", "(", "dep", ")", ";", "if", "(", "REG_P", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ")", "&&", "reg_set_p", "(", "SET_DEST", "(", "PATTERN", "(", "insn", ")", ")", ",", "dep", ")", ")", "{", "if", "(", "(", "attr_type_insn", "==", "TYPE_FMACS", "||", "attr_type_insn", "==", "TYPE_FMACD", ")", "&&", "(", "attr_type_dep", "==", "TYPE_FMACS", "||", "attr_type_dep", "==", "TYPE_FMACD", ")", ")", "{", "if", "(", "dep_type", "==", "REG_DEP_OUTPUT", ")", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", "-", "3", ";", "else", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", ";", "return", "false", ";", "}", "else", "{", "if", "(", "dep_type", "==", "REG_DEP_OUTPUT", ")", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", "+", "1", ";", "else", "*", "cost", "=", "insn_default_latency", "(", "dep", ")", ";", "}", "return", "false", ";", "}", "}", "}", "}", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "true", ";", "}", ""], "natrual_language": ["Adjust", "cost", "hook", "for", "Cortex", "A9", "."], "TS_V_token": ["arm", "0", "0", "0", "3", "1"], "File": "arm", "Func": "cortex_a9_sched_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45171, "Length": 252}
{"ground_truth": ["", "static", "Mfix", "*", "create_fix_barrier", "(", "Mfix", "*", "fix", ",", "HOST_WIDE_INT", "max_address", ")", "{", "HOST_WIDE_INT", "count", "=", "0", ";", "rtx_barrier", "*", "barrier", ";", "rtx_insn", "*", "from", "=", "fix", "->", "insn", ";", "rtx_insn", "*", "selected", "=", "NULL", ";", "int", "selected_cost", ";", "HOST_WIDE_INT", "selected_address", ";", "Mfix", "*", "new_fix", ";", "HOST_WIDE_INT", "max_count", "=", "max_address", "-", "fix", "->", "address", ";", "rtx_code_label", "*", "label", "=", "gen_label_rtx", "(", ")", ";", "selected_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "selected_address", "=", "fix", "->", "address", ";", "while", "(", "from", "&&", "count", "<", "max_count", ")", "{", "rtx_jump_table_data", "*", "tmp", ";", "int", "new_cost", ";", "gcc_assert", "(", "!", "BARRIER_P", "(", "from", ")", ")", ";", "if", "(", "LABEL_P", "(", "from", ")", ")", "count", "+=", "get_label_padding", "(", "from", ")", ";", "else", "count", "+=", "get_attr_length", "(", "from", ")", ";", "if", "(", "tablejump_p", "(", "from", ",", "NULL", ",", "&", "tmp", ")", ")", "{", "count", "+=", "get_jump_table_size", "(", "tmp", ")", ";", "new_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "if", "(", "count", "<", "max_count", "&&", "(", "!", "selected", "||", "new_cost", "<=", "selected_cost", ")", ")", "{", "selected", "=", "tmp", ";", "selected_cost", "=", "new_cost", ";", "selected_address", "=", "fix", "->", "address", "+", "count", ";", "}", "from", "=", "NEXT_INSN", "(", "tmp", ")", ";", "continue", ";", "}", "new_cost", "=", "arm_barrier_cost", "(", "from", ")", ";", "if", "(", "count", "<", "max_count", "&&", "(", "!", "selected", "||", "new_cost", "<=", "selected_cost", ")", ")", "{", "selected", "=", "from", ";", "selected_cost", "=", "new_cost", ";", "selected_address", "=", "fix", "->", "address", "+", "count", ";", "}", "from", "=", "NEXT_INSN", "(", "from", ")", ";", "}", "gcc_assert", "(", "selected", ")", ";", "from", "=", "emit_jump_insn_after", "(", "gen_jump", "(", "label", ")", ",", "selected", ")", ";", "JUMP_LABEL", "(", "from", ")", "=", "label", ";", "barrier", "=", "emit_barrier_after", "(", "from", ")", ";", "emit_label_after", "(", "label", ",", "barrier", ")", ";", "new_fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "new_fix", ")", ")", ";", "new_fix", "->", "insn", "=", "barrier", ";", "new_fix", "->", "address", "=", "selected_address", ";", "new_fix", "->", "next", "=", "fix", "->", "next", ";", "fix", "->", "next", "=", "new_fix", ";", "return", "new_fix", ";", "}", ""], "natrual_language": ["Find", "the", "best", "place", "in", "the", "insn", "stream", "in", "the", "range", "(", "FIX-", ">", "address", ",", "MAX_ADDRESS", ")", "to", "forcibly", "insert", "a", "minipool", "barrier", ".", "Create", "the", "barrier", "by", "inserting", "a", "jump", "and", "add", "a", "new", "fix", "entry", "for", "it", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "create_fix_barrier", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45172, "Length": 327}
{"ground_truth": ["", "bool", "detect_cmse_nonsecure_call", "(", "tree", "addr", ")", "{", "if", "(", "!", "addr", ")", "return", "FALSE", ";", "tree", "fntype", "=", "TREE_TYPE", "(", "addr", ")", ";", "if", "(", "use_cmse", "&&", "lookup_attribute", "(", "\"cmse_nonsecure_call\"", ",", "TYPE_ATTRIBUTES", "(", "fntype", ")", ")", ")", "return", "TRUE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Returns", "true", "if", "-mcmse", "has", "been", "passed", "and", "the", "function", "pointed", "to", "by", "'addr", "'", "has", "the", "cmse_nonsecure_call", "attribute", "and", "returns", "false", "otherwise", "."], "TS_V_token": ["arm", "\"cmse_nonsecure_call\""], "File": "arm", "Func": "detect_cmse_nonsecure_call", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45173, "Length": 44}
{"ground_truth": ["", "static", "void", "dump_minipool", "(", "rtx_insn", "*", "scan", ")", "{", "Mnode", "*", "mp", ";", "Mnode", "*", "nmp", ";", "int", "align64", "=", "0", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", ")", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "mp", "->", "next", ")", "if", "(", "mp", "->", "refcount", ">", "0", "&&", "mp", "->", "fix_size", ">=", "8", ")", "{", "align64", "=", "1", ";", "break", ";", "}", "if", "(", "dump_file", ")", "fprintf", "(", "dump_file", ",", "\";; Emitting minipool after insn %u; address %ld; align %d (bytes)\\n\"", ",", "INSN_UID", "(", "scan", ")", ",", "(", "unsigned", "long", ")", "minipool_barrier", "->", "address", ",", "align64", "?", "8", ":", "4", ")", ";", "scan", "=", "emit_label_after", "(", "gen_label_rtx", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_insn_after", "(", "align64", "?", "gen_align_8", "(", ")", ":", "gen_align_4", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_label_after", "(", "minipool_vector_label", ",", "scan", ")", ";", "for", "(", "mp", "=", "minipool_vector_head", ";", "mp", "!=", "NULL", ";", "mp", "=", "nmp", ")", "{", "if", "(", "mp", "->", "refcount", ">", "0", ")", "{", "if", "(", "dump_file", ")", "{", "fprintf", "(", "dump_file", ",", "\";; Offset %u, min %ld, max %ld \"", ",", "(", "unsigned", ")", "mp", "->", "offset", ",", "(", "unsigned", "long", ")", "mp", "->", "min_address", ",", "(", "unsigned", "long", ")", "mp", "->", "max_address", ")", ";", "arm_print_value", "(", "dump_file", ",", "mp", "->", "value", ")", ";", "fputc", "(", "'\\n'", ",", "dump_file", ")", ";", "}", "rtx", "val", "=", "copy_rtx", "(", "mp", "->", "value", ")", ";", "switch", "(", "GET_MODE_SIZE", "(", "mp", "->", "mode", ")", ")", "{", "case", "1", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_1", "(", "val", ")", ",", "scan", ")", ";", "break", ";", "case", "2", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_2", "(", "val", ")", ",", "scan", ")", ";", "break", ";", "case", "4", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_4", "(", "val", ")", ",", "scan", ")", ";", "break", ";", "case", "8", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_8", "(", "val", ")", ",", "scan", ")", ";", "break", ";", "case", "16", ":", "scan", "=", "emit_insn_after", "(", "gen_consttable_16", "(", "val", ")", ",", "scan", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "nmp", "=", "mp", "->", "next", ";", "free", "(", "mp", ")", ";", "}", "minipool_vector_head", "=", "minipool_vector_tail", "=", "NULL", ";", "scan", "=", "emit_insn_after", "(", "gen_consttable_end", "(", ")", ",", "scan", ")", ";", "scan", "=", "emit_barrier_after", "(", "scan", ")", ";", "}", ""], "natrual_language": ["Output", "the", "literal", "table"], "TS_V_token": ["arm", "0", "0", "8", "1", "\";; Emitting minipool after insn %u; address %ld; align %d (bytes)\\n\"", "8", "4", "0", "\";; Offset %u, min %ld, max %ld \"", "1", "2", "4", "8", "16"], "File": "arm", "Func": "dump_minipool", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45174, "Length": 357}
{"ground_truth": ["", "static", "void", "emit_constant_insn", "(", "rtx", "cond", ",", "rtx", "pattern", ")", "{", "if", "(", "cond", ")", "pattern", "=", "gen_rtx_COND_EXEC", "(", "VOIDmode", ",", "copy_rtx", "(", "cond", ")", ",", "pattern", ")", ";", "emit_insn", "(", "pattern", ")", ";", "}", ""], "natrual_language": ["Emit", "an", "instruction", "with", "the", "indicated", "PATTERN", ".", "If", "COND", "is", "non-NULL", ",", "conditionalize", "the", "execution", "of", "the", "instruction", "on", "COND", "being", "true", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "emit_constant_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45175, "Length": 35}
{"ground_truth": ["", "static", "rtx", "emit_multi_reg_push", "(", "unsigned", "long", "mask", ",", "unsigned", "long", "dwarf_regs_mask", ")", "{", "int", "num_regs", "=", "0", ";", "int", "num_dwarf_regs", "=", "0", ";", "int", "i", ",", "j", ";", "rtx", "par", ";", "rtx", "dwarf", ";", "int", "dwarf_par_index", ";", "rtx", "tmp", ",", "reg", ";", "dwarf_regs_mask", "&=", "~", "(", "1", "<<", "PC_REGNUM", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_dwarf_regs", "++", ";", "}", "gcc_assert", "(", "num_regs", "&&", "num_regs", "<=", "16", ")", ";", "gcc_assert", "(", "(", "dwarf_regs_mask", "&", "~", "mask", ")", "==", "0", ")", ";", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_regs", ")", ")", ";", "dwarf", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "rtvec_alloc", "(", "num_dwarf_regs", "+", "1", ")", ")", ";", "dwarf_par_index", "=", "1", ";", "for", "(", "i", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "BLKmode", ",", "gen_rtx_PRE_MODIFY", "(", "Pmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "num_regs", ")", ")", ")", ",", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ")", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "SImode", ",", "stack_pointer_rtx", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", "++", ")", "=", "tmp", ";", "}", "break", ";", "}", "}", "for", "(", "j", "=", "1", ",", "i", "++", ";", "j", "<", "num_regs", ";", "i", "++", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "i", ")", ")", "{", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "i", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "j", ")", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "if", "(", "dwarf_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "{", "tmp", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "SImode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", "*", "j", ")", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "dwarf_par_index", "++", ")", "=", "tmp", ";", "}", "j", "++", ";", "}", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "num_regs", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "0", ")", "=", "tmp", ";", "add_reg_note", "(", "par", ",", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ")", ";", "return", "par", ";", "}", ""], "natrual_language": ["Generate", "and", "emit", "an", "insn", "that", "we", "will", "recognize", "as", "a", "push_multi", ".", "Unfortunately", ",", "since", "this", "insn", "does", "not", "reflect", "very", "well", "the", "actual", "semantics", "of", "the", "operation", ",", "we", "need", "to", "annotate", "the", "insn", "for", "the", "benefit", "of", "DWARF2", "frame", "unwind", "information", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "1", "16", "0", "1", "1", "0", "1", "0", "0", "4", "1", "1", "1", "0", "1", "1", "0", "1", "4", "1", "0", "4", "1", "0", "0"], "File": "arm", "Func": "emit_multi_reg_push", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45176, "Length": 445}
{"ground_truth": ["", "inline", "static", "rtx_insn", "*", "emit_set_insn", "(", "rtx", "x", ",", "rtx", "y", ")", "{", "return", "emit_insn", "(", "gen_rtx_SET", "(", "x", ",", "y", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "an", "insn", "that", "'s", "a", "simple", "single-set", ".", "Both", "the", "operands", "must", "be", "known", "to", "be", "valid", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "emit_set_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45177, "Length": 25}
{"ground_truth": ["", "static", "void", "emit_unlikely_jump", "(", "rtx", "insn", ")", "{", "rtx_insn", "*", "jump", "=", "emit_jump_insn", "(", "insn", ")", ";", "add_reg_br_prob_note", "(", "jump", ",", "profile_probability", "::", "very_unlikely", "(", ")", ")", ";", "}", ""], "natrual_language": ["Mark", "the", "previous", "jump", "instruction", "as", "unlikely", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "emit_unlikely_jump", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45178, "Length": 29}
{"ground_truth": ["", "inline", "bool", "libcall_hasher", "::", "equal", "(", "const", "rtx_def", "*", "p1", ",", "const", "rtx_def", "*", "p2", ")", "{", "return", "rtx_equal_p", "(", "p1", ",", "p2", ")", ";", "}", ""], "natrual_language": ["Compare", "H1", "and", "H2", "for", "equivalence", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "equal", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45179, "Length": 26}
{"ground_truth": ["", "static", "bool", "extract_base_offset_in_addr", "(", "rtx", "mem", ",", "rtx", "*", "base", ",", "rtx", "*", "offset", ")", "{", "rtx", "addr", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "addr", ")", "==", "CONST", ")", "addr", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "if", "(", "REG_P", "(", "addr", ")", ")", "{", "*", "base", "=", "addr", ";", "*", "offset", "=", "const0_rtx", ";", "return", "true", ";", "}", "if", "(", "GET_CODE", "(", "addr", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "addr", ",", "0", ")", ")", "==", "REG", "&&", "CONST_INT_P", "(", "XEXP", "(", "addr", ",", "1", ")", ")", ")", "{", "*", "base", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "*", "offset", "=", "XEXP", "(", "addr", ",", "1", ")", ";", "return", "true", ";", "}", "*", "base", "=", "NULL_RTX", ";", "*", "offset", "=", "NULL_RTX", ";", "return", "false", ";", "}", ""], "natrual_language": ["If", "MEM", "is", "in", "the", "form", "of", "``", "base+offset", "''", ",", "extract", "the", "two", "parts", "of", "address", "and", "set", "to", "BASE", "and", "OFFSET", ",", "otherwise", "return", "false", "after", "clearing", "BASE", "and", "OFFSET", "."], "TS_V_token": ["arm", "0", "0", "0", "1", "0", "1"], "File": "arm", "Func": "extract_base_offset_in_addr", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45180, "Length": 146}
{"ground_truth": ["", "static", "bool", "fa726te_sched_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "int", "dep_type", ",", "rtx_insn", "*", "dep", ",", "int", "*", "cost", ")", "{", "if", "(", "dep_type", "==", "REG_DEP_TRUE", "&&", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", "&&", "get_attr_conds", "(", "dep", ")", "==", "CONDS_SET", ")", "{", "if", "(", "get_attr_conds", "(", "insn", ")", "==", "CONDS_USE", "&&", "get_attr_type", "(", "insn", ")", "!=", "TYPE_BRANCH", ")", "{", "*", "cost", "=", "3", ";", "return", "false", ";", "}", "if", "(", "GET_CODE", "(", "PATTERN", "(", "insn", ")", ")", "==", "COND_EXEC", "||", "get_attr_conds", "(", "insn", ")", "==", "CONDS_USE", ")", "{", "*", "cost", "=", "0", ";", "return", "false", ";", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Adjust", "cost", "hook", "for", "FA726TE", "."], "TS_V_token": ["arm", "0", "0", "3", "0"], "File": "arm", "Func": "fa726te_sched_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45181, "Length": 108}
{"ground_truth": ["", "static", "const", "char", "*", "fp_const_from_val", "(", "REAL_VALUE_TYPE", "*", "r", ")", "{", "if", "(", "!", "fp_consts_inited", ")", "init_fp_table", "(", ")", ";", "gcc_assert", "(", "real_equal", "(", "r", ",", "&", "value_fp0", ")", ")", ";", "return", "\"0\"", ";", "}", ""], "natrual_language": ["As", "for", "fp_immediate_constant", ",", "but", "value", "is", "passed", "directly", ",", "not", "in", "rtx", "."], "TS_V_token": ["arm", "\"0\""], "File": "arm", "Func": "fp_const_from_val", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45182, "Length": 35}
{"ground_truth": ["", "static", "bool", "fusion_load_store", "(", "rtx_insn", "*", "insn", ",", "rtx", "*", "base", ",", "rtx", "*", "offset", ",", "bool", "*", "is_load", ")", "{", "rtx", "x", ",", "dest", ",", "src", ";", "gcc_assert", "(", "INSN_P", "(", "insn", ")", ")", ";", "x", "=", "PATTERN", "(", "insn", ")", ";", "if", "(", "GET_CODE", "(", "x", ")", "!=", "SET", ")", "return", "false", ";", "src", "=", "SET_SRC", "(", "x", ")", ";", "dest", "=", "SET_DEST", "(", "x", ")", ";", "if", "(", "REG_P", "(", "src", ")", "&&", "MEM_P", "(", "dest", ")", ")", "{", "*", "is_load", "=", "false", ";", "extract_base_offset_in_addr", "(", "dest", ",", "base", ",", "offset", ")", ";", "}", "else", "if", "(", "MEM_P", "(", "src", ")", "&&", "REG_P", "(", "dest", ")", ")", "{", "*", "is_load", "=", "true", ";", "extract_base_offset_in_addr", "(", "src", ",", "base", ",", "offset", ")", ";", "}", "else", "return", "false", ";", "return", "(", "*", "base", "!=", "NULL_RTX", "&&", "*", "offset", "!=", "NULL_RTX", ")", ";", "}", ""], "natrual_language": ["If", "INSN", "is", "a", "load", "or", "store", "of", "address", "in", "the", "form", "of", "[", "base+offset", "]", ",", "extract", "the", "two", "parts", "and", "set", "to", "BASE", "and", "OFFSET", ".", "IS_LOAD", "is", "set", "to", "TRUE", "if", "it", "'s", "a", "load", ".", "Return", "TRUE", "if", "INSN", "is", "such", "an", "instruction", ",", "otherwise", "return", "FALSE", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "fusion_load_store", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45183, "Length": 144}
{"ground_truth": ["", "bool", "gen_ldm_seq", "(", "rtx", "*", "operands", ",", "int", "nops", ",", "bool", "sort_regs", ")", "{", "int", "regs", "[", "MAX_LDM_STM_OPS", "]", ",", "mem_order", "[", "MAX_LDM_STM_OPS", "]", ";", "rtx", "mems", "[", "MAX_LDM_STM_OPS", "]", ";", "int", "i", ",", "j", ",", "base_reg", ";", "rtx", "base_reg_rtx", ";", "HOST_WIDE_INT", "offset", ";", "int", "write_back", "=", "FALSE", ";", "int", "ldm_case", ";", "rtx", "addr", ";", "ldm_case", "=", "load_multiple_sequence", "(", "operands", ",", "nops", ",", "regs", ",", "mem_order", ",", "&", "base_reg", ",", "&", "offset", ",", "!", "sort_regs", ")", ";", "if", "(", "ldm_case", "==", "0", ")", "return", "false", ";", "if", "(", "sort_regs", ")", "for", "(", "i", "=", "0", ";", "i", "<", "nops", "-", "1", ";", "i", "++", ")", "for", "(", "j", "=", "i", "+", "1", ";", "j", "<", "nops", ";", "j", "++", ")", "if", "(", "regs", "[", "i", "]", ">", "regs", "[", "j", "]", ")", "{", "int", "t", "=", "regs", "[", "i", "]", ";", "regs", "[", "i", "]", "=", "regs", "[", "j", "]", ";", "regs", "[", "j", "]", "=", "t", ";", "}", "base_reg_rtx", "=", "gen_rtx_REG", "(", "Pmode", ",", "base_reg", ")", ";", "if", "(", "TARGET_THUMB1", ")", "{", "gcc_assert", "(", "ldm_case", "==", "1", "||", "ldm_case", "==", "5", ")", ";", "write_back", "=", "true", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nops", ";", "i", "++", ")", "if", "(", "base_reg", "==", "regs", "[", "i", "]", ")", "write_back", "=", "false", ";", "if", "(", "write_back", "&&", "!", "peep2_reg_dead_p", "(", "nops", ",", "base_reg_rtx", ")", ")", "return", "false", ";", "}", "if", "(", "ldm_case", "==", "5", ")", "{", "rtx", "newbase", "=", "TARGET_THUMB1", "?", "base_reg_rtx", ":", "gen_rtx_REG", "(", "SImode", ",", "regs", "[", "0", "]", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "newbase", ",", "base_reg_rtx", ",", "GEN_INT", "(", "offset", ")", ")", ")", ";", "offset", "=", "0", ";", "base_reg_rtx", "=", "newbase", ";", "}", "for", "(", "i", "=", "0", ";", "i", "<", "nops", ";", "i", "++", ")", "{", "addr", "=", "plus_constant", "(", "Pmode", ",", "base_reg_rtx", ",", "offset", "+", "i", "*", "4", ")", ";", "mems", "[", "i", "]", "=", "adjust_automodify_address_nv", "(", "operands", "[", "nops", "+", "mem_order", "[", "i", "]", "]", ",", "SImode", ",", "addr", ",", "0", ")", ";", "}", "emit_insn", "(", "arm_gen_load_multiple_1", "(", "nops", ",", "regs", ",", "mems", ",", "base_reg_rtx", ",", "write_back", "?", "offset", "+", "i", "*", "4", ":", "0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Called", "from", "a", "peephole2", "expander", "to", "turn", "a", "sequence", "of", "loads", "into", "an", "LDM", "instruction", ".", "OPERANDS", "are", "the", "operands", "found", "by", "the", "peephole", "matcher", ";", "NOPS", "indicates", "how", "many", "separate", "loads", "we", "are", "trying", "to", "combine", ".", "SORT_REGS", "is", "true", "if", "we", "can", "reorder", "the", "registers", "because", "they", "are", "used", "commutatively", "subsequently", ".", "Returns", "true", "iff", "we", "could", "generate", "a", "new", "instruction", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "1", "5", "0", "5", "0", "0", "0", "4", "0", "4", "0"], "File": "arm", "Func": "gen_ldm_seq", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45184, "Length": 360}
{"ground_truth": ["", "bool", "gen_stm_seq", "(", "rtx", "*", "operands", ",", "int", "nops", ")", "{", "int", "i", ";", "int", "regs", "[", "MAX_LDM_STM_OPS", "]", ",", "mem_order", "[", "MAX_LDM_STM_OPS", "]", ";", "rtx", "mems", "[", "MAX_LDM_STM_OPS", "]", ";", "int", "base_reg", ";", "rtx", "base_reg_rtx", ";", "HOST_WIDE_INT", "offset", ";", "int", "write_back", "=", "FALSE", ";", "int", "stm_case", ";", "rtx", "addr", ";", "bool", "base_reg_dies", ";", "stm_case", "=", "store_multiple_sequence", "(", "operands", ",", "nops", ",", "nops", ",", "regs", ",", "NULL", ",", "mem_order", ",", "&", "base_reg", ",", "&", "offset", ",", "true", ")", ";", "if", "(", "stm_case", "==", "0", ")", "return", "false", ";", "base_reg_rtx", "=", "gen_rtx_REG", "(", "Pmode", ",", "base_reg", ")", ";", "base_reg_dies", "=", "peep2_reg_dead_p", "(", "nops", ",", "base_reg_rtx", ")", ";", "if", "(", "TARGET_THUMB1", ")", "{", "gcc_assert", "(", "base_reg_dies", ")", ";", "write_back", "=", "TRUE", ";", "}", "if", "(", "stm_case", "==", "5", ")", "{", "gcc_assert", "(", "base_reg_dies", ")", ";", "emit_insn", "(", "gen_addsi3", "(", "base_reg_rtx", ",", "base_reg_rtx", ",", "GEN_INT", "(", "offset", ")", ")", ")", ";", "offset", "=", "0", ";", "}", "addr", "=", "plus_constant", "(", "Pmode", ",", "base_reg_rtx", ",", "offset", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nops", ";", "i", "++", ")", "{", "addr", "=", "plus_constant", "(", "Pmode", ",", "base_reg_rtx", ",", "offset", "+", "i", "*", "4", ")", ";", "mems", "[", "i", "]", "=", "adjust_automodify_address_nv", "(", "operands", "[", "nops", "+", "mem_order", "[", "i", "]", "]", ",", "SImode", ",", "addr", ",", "0", ")", ";", "}", "emit_insn", "(", "arm_gen_store_multiple_1", "(", "nops", ",", "regs", ",", "mems", ",", "base_reg_rtx", ",", "write_back", "?", "offset", "+", "i", "*", "4", ":", "0", ")", ")", ";", "return", "true", ";", "}", ""], "natrual_language": ["Called", "from", "a", "peephole2", "expander", "to", "turn", "a", "sequence", "of", "stores", "into", "an", "STM", "instruction", ".", "OPERANDS", "are", "the", "operands", "found", "by", "the", "peephole", "matcher", ";", "NOPS", "indicates", "how", "many", "separate", "stores", "we", "are", "trying", "to", "combine", ".", "Returns", "true", "iff", "we", "could", "generate", "a", "new", "instruction", "."], "TS_V_token": ["arm", "0", "5", "0", "0", "4", "0", "4", "0"], "File": "arm", "Func": "gen_stm_seq", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45185, "Length": 246}
{"ground_truth": ["", "static", "enum", "arm_cond_code", "get_arm_condition_code", "(", "rtx", "comparison", ")", "{", "enum", "arm_cond_code", "code", "=", "maybe_get_arm_condition_code", "(", "comparison", ")", ";", "gcc_assert", "(", "code", "!=", "ARM_NV", ")", ";", "return", "code", ";", "}", ""], "natrual_language": ["Returns", "the", "index", "of", "the", "ARM", "condition", "code", "string", "in", "`", "arm_condition_codes", "'", ".", "COMPARISON", "should", "be", "an", "rtx", "like", "`", "(", "eq", "(", "...", ")", "(", "...", ")", ")", "'", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "get_arm_condition_code", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45186, "Length": 29}
{"ground_truth": ["", "static", "HOST_WIDE_INT", "get_label_padding", "(", "rtx", "label", ")", "{", "HOST_WIDE_INT", "align", ",", "min_insn_size", ";", "align", "=", "1", "<<", "label_to_alignment", "(", "label", ")", ".", "levels", "[", "0", "]", ".", "log", ";", "min_insn_size", "=", "TARGET_THUMB", "?", "2", ":", "4", ";", "return", "align", ">", "min_insn_size", "?", "align", "-", "min_insn_size", ":", "0", ";", "}", ""], "natrual_language": ["Return", "the", "maximum", "amount", "of", "padding", "that", "will", "be", "inserted", "before", "label", "LABEL", "."], "TS_V_token": ["arm", "1", "0", "2", "4", "0"], "File": "arm", "Func": "get_label_padding", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45187, "Length": 49}
{"ground_truth": ["", "static", "void", "get_scratch_register_on_entry", "(", "struct", "scratch_reg", "*", "sr", ",", "unsigned", "int", "regno1", ",", "unsigned", "long", "live_regs", ")", "{", "int", "regno", "=", "-", "1", ";", "sr", "->", "saved", "=", "false", ";", "if", "(", "regno1", "!=", "LR_REGNUM", "&&", "(", "live_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", "!=", "0", ")", "regno", "=", "LR_REGNUM", ";", "else", "{", "unsigned", "int", "i", ";", "for", "(", "i", "=", "4", ";", "i", "<", "11", ";", "i", "++", ")", "if", "(", "regno1", "!=", "i", "&&", "(", "live_regs", "&", "(", "1", "<<", "i", ")", ")", "!=", "0", ")", "{", "regno", "=", "i", ";", "break", ";", "}", "if", "(", "regno", "<", "0", ")", "{", "if", "(", "regno1", "==", "IP_REGNUM", "&&", "IS_NESTED", "(", "arm_current_func_type", "(", ")", ")", ")", "regno1", "=", "3", ";", "regno", "=", "(", "regno1", "==", "3", "?", "2", ":", "3", ")", ";", "sr", "->", "saved", "=", "REGNO_REG_SET_P", "(", "df_get_live_out", "(", "ENTRY_BLOCK_PTR_FOR_FN", "(", "cfun", ")", ")", ",", "regno", ")", ";", "}", "}", "sr", "->", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ";", "if", "(", "sr", "->", "saved", ")", "{", "rtx", "addr", "=", "gen_rtx_PRE_DEC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ";", "rtx", "insn", "=", "emit_set_insn", "(", "gen_frame_mem", "(", "SImode", ",", "addr", ")", ",", "sr", "->", "reg", ")", ";", "rtx", "x", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "add_reg_note", "(", "insn", ",", "REG_FRAME_RELATED_EXPR", ",", "x", ")", ";", "}", "}", ""], "natrual_language": ["Return", "a", "short-lived", "scratch", "register", "for", "use", "on", "function", "entry", ".", "In", "32-bit", "mode", ",", "it", "is", "valid", "only", "after", "the", "registers", "are", "saved", "in", "the", "prologue", ".", "This", "register", "must", "be", "released", "by", "means", "of", "release_scratch_register_on_entry", "once", "it", "is", "dead", "."], "TS_V_token": ["arm", "1", "1", "0", "4", "11", "1", "0", "0", "3", "3", "2", "3", "4", "1"], "File": "arm", "Func": "get_scratch_register_on_entry", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45188, "Length": 233}
{"ground_truth": ["", "inline", "hashval_t", "libcall_hasher", "::", "hash", "(", "const", "rtx_def", "*", "p1", ")", "{", "return", "hash_rtx", "(", "p1", ",", "VOIDmode", ",", "NULL", ",", "NULL", ",", "FALSE", ")", ";", "}", ""], "natrual_language": ["Hash", "function", "for", "builtin", "functions", "with", "up", "to", "3", "arguments", "and", "a", "return", "type", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "hash", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45189, "Length": 27}
{"ground_truth": ["", "static", "bool", "is_called_in_ARM_mode", "(", "tree", "func", ")", "{", "gcc_assert", "(", "TREE_CODE", "(", "func", ")", "==", "FUNCTION_DECL", ")", ";", "if", "(", "TARGET_CALLEE_INTERWORKING", "&&", "TREE_PUBLIC", "(", "func", ")", ")", "return", "true", ";", "return", "lookup_attribute", "(", "\"interfacearm\"", ",", "DECL_ATTRIBUTES", "(", "func", ")", ")", "!=", "NULL_TREE", ";", "return", "false", ";", "}", ""], "natrual_language": ["Return", "non-zero", "if", "FUNC", "must", "be", "entered", "in", "ARM", "mode", "."], "TS_V_token": ["arm", "\"interfacearm\""], "File": "arm", "Func": "is_called_in_ARM_mode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45190, "Length": 47}
{"ground_truth": ["", "static", "bool", "is_indirect_tailcall_p", "(", "rtx", "call", ")", "{", "rtx", "pat", "=", "PATTERN", "(", "call", ")", ";", "pat", "=", "XVECEXP", "(", "pat", ",", "0", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "pat", ")", "==", "SET", ")", "pat", "=", "SET_SRC", "(", "pat", ")", ";", "pat", "=", "XEXP", "(", "XEXP", "(", "pat", ",", "0", ")", ",", "0", ")", ";", "return", "REG_P", "(", "pat", ")", ";", "}", ""], "natrual_language": ["We", "do", "not", "know", "if", "r3", "will", "be", "available", "because", "we", "do", "have", "an", "indirect", "tailcall", "happening", "in", "this", "particular", "case", "."], "TS_V_token": ["arm", "0", "0", "0", "0"], "File": "arm", "Func": "is_indirect_tailcall_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45191, "Length": 64}
{"ground_truth": ["", "int", "label_mentioned_p", "(", "rtx", "x", ")", "{", "const", "char", "*", "fmt", ";", "int", "i", ";", "if", "(", "LABEL_REF_P", "(", "x", ")", ")", "return", "1", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "return", "0", ";", "fmt", "=", "GET_RTX_FORMAT", "(", "GET_CODE", "(", "x", ")", ")", ";", "for", "(", "i", "=", "GET_RTX_LENGTH", "(", "GET_CODE", "(", "x", ")", ")", "-", "1", ";", "i", ">=", "0", ";", "i", "--", ")", "{", "if", "(", "fmt", "[", "i", "]", "==", "'E'", ")", "{", "int", "j", ";", "for", "(", "j", "=", "XVECLEN", "(", "x", ",", "i", ")", "-", "1", ";", "j", ">=", "0", ";", "j", "--", ")", "if", "(", "label_mentioned_p", "(", "XVECEXP", "(", "x", ",", "i", ",", "j", ")", ")", ")", "return", "1", ";", "}", "else", "if", "(", "fmt", "[", "i", "]", "==", "'e'", "&&", "label_mentioned_p", "(", "XEXP", "(", "x", ",", "i", ")", ")", ")", "return", "1", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "references", "a", "LABEL_REF", "."], "TS_V_token": ["arm", "1", "1", "0", "1", "0", "1", "0", "1", "1", "0"], "File": "arm", "Func": "label_mentioned_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45192, "Length": 157}
{"ground_truth": ["", "int", "legitimate_pic_operand_p", "(", "rtx", "x", ")", "{", "if", "(", "SYMBOL_REF_P", "(", "x", ")", "||", "(", "GET_CODE", "(", "x", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "SYMBOL_REF", ")", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "OP", "is", "a", "legitimate", "general", "operand", "when", "generating", "PIC", "code", ".", "It", "is", "given", "that", "flag_pic", "is", "on", "and", "that", "OP", "satisfies", "CONSTANT_P", "or", "is", "a", "CONST_DOUBLE", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "1"], "File": "arm", "Func": "legitimate_pic_operand_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45193, "Length": 59}
{"ground_truth": ["", "static", "bool", "mem_ok_for_ldrd_strd", "(", "rtx", "mem", ",", "rtx", "*", "base", ",", "rtx", "*", "offset", ",", "HOST_WIDE_INT", "*", "align", ")", "{", "rtx", "addr", ";", "gcc_assert", "(", "base", "!=", "NULL", "&&", "offset", "!=", "NULL", ")", ";", "if", "(", "side_effects_p", "(", "mem", ")", ")", "return", "false", ";", "if", "(", "SUBREG_P", "(", "mem", ")", ")", "return", "false", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "*", "offset", "=", "const0_rtx", ";", "*", "align", "=", "MEM_ALIGN", "(", "mem", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "if", "(", "!", "arm_legitimate_address_p", "(", "DImode", ",", "addr", ",", "reload_in_progress", "||", "reload_completed", ")", ")", "return", "false", ";", "if", "(", "REG_P", "(", "addr", ")", ")", "{", "*", "base", "=", "addr", ";", "return", "true", ";", "}", "else", "if", "(", "GET_CODE", "(", "addr", ")", "==", "PLUS", ")", "{", "*", "base", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "*", "offset", "=", "XEXP", "(", "addr", ",", "1", ")", ";", "return", "(", "REG_P", "(", "*", "base", ")", "&&", "CONST_INT_P", "(", "*", "offset", ")", ")", ";", "}", "return", "false", ";", "}", ""], "natrual_language": ["Helper", "for", "gen_operands_ldrd_strd", ".", "Returns", "true", "iff", "the", "memory", "operand", "MEM", "'s", "address", "contains", "an", "immediate", "offset", "from", "the", "base", "register", "and", "has", "no", "side", "effects", ",", "in", "which", "case", "it", "sets", "BASE", "and", "OFFSET", "accordingly", "."], "TS_V_token": ["arm", "0", "0", "1"], "File": "arm", "Func": "mem_ok_for_ldrd_strd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45194, "Length": 169}
{"ground_truth": ["", "static", "Mnode", "*", "move_minipool_fix_forward_ref", "(", "Mnode", "*", "mp", ",", "Mnode", "*", "max_mp", ",", "HOST_WIDE_INT", "max_address", ")", "{", "gcc_assert", "(", "mp", "!=", "max_mp", ")", ";", "if", "(", "max_mp", "==", "NULL", ")", "{", "if", "(", "max_address", "<", "mp", "->", "max_address", ")", "mp", "->", "max_address", "=", "max_address", ";", "}", "else", "{", "if", "(", "max_address", ">", "max_mp", "->", "max_address", "-", "mp", "->", "fix_size", ")", "mp", "->", "max_address", "=", "max_mp", "->", "max_address", "-", "mp", "->", "fix_size", ";", "else", "mp", "->", "max_address", "=", "max_address", ";", "mp", "->", "prev", "->", "next", "=", "mp", "->", "next", ";", "if", "(", "mp", "->", "next", "!=", "NULL", ")", "mp", "->", "next", "->", "prev", "=", "mp", "->", "prev", ";", "else", "minipool_vector_tail", "=", "mp", "->", "prev", ";", "mp", "->", "next", "=", "max_mp", ";", "mp", "->", "prev", "=", "max_mp", "->", "prev", ";", "max_mp", "->", "prev", "=", "mp", ";", "if", "(", "mp", "->", "prev", "!=", "NULL", ")", "mp", "->", "prev", "->", "next", "=", "mp", ";", "else", "minipool_vector_head", "=", "mp", ";", "}", "max_mp", "=", "mp", ";", "while", "(", "mp", "->", "prev", "!=", "NULL", "&&", "mp", "->", "prev", "->", "max_address", ">", "mp", "->", "max_address", "-", "mp", "->", "prev", "->", "fix_size", ")", "{", "mp", "->", "prev", "->", "max_address", "=", "mp", "->", "max_address", "-", "mp", "->", "prev", "->", "fix_size", ";", "mp", "=", "mp", "->", "prev", ";", "}", "return", "max_mp", ";", "}", ""], "natrual_language": ["Move", "a", "minipool", "fix", "MP", "from", "its", "current", "location", "to", "before", "MAX_MP", ".", "If", "MAX_MP", "is", "NULL", ",", "then", "MP", "does", "n't", "need", "moving", ",", "but", "the", "addressing", "contrains", "may", "need", "updating", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "move_minipool_fix_forward_ref", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45195, "Length": 212}
{"ground_truth": ["", "static", "bool", "multiple_operation_profitable_p", "(", "bool", "is_store", "ATTRIBUTE_UNUSED", ",", "int", "nops", ",", "HOST_WIDE_INT", "add_offset", ")", "{", "if", "(", "nops", "==", "2", "&&", "arm_ld_sched", "&&", "add_offset", "!=", "0", ")", "return", "false", ";", "if", "(", "nops", "<=", "2", "&&", "arm_tune_xscale", "&&", "!", "optimize_size", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Return", "true", "iff", "it", "would", "be", "profitable", "to", "turn", "a", "sequence", "of", "NOPS", "loads", "or", "stores", "(", "depending", "on", "IS_STORE", ")", "into", "a", "load-multiple", "or", "store-multiple", "instruction", ".", "ADD_OFFSET", "is", "nonzero", "if", "the", "base", "address", "register", "needs", "to", "be", "modified", "with", "an", "add", "instruction", "before", "we", "can", "use", "it", "."], "TS_V_token": ["arm", "2", "0", "2"], "File": "arm", "Func": "multiple_operation_profitable_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45196, "Length": 48}
{"ground_truth": ["", "rtx", "mve_bool_vec_to_const", "(", "rtx", "const_vec", ")", "{", "int", "n_elts", "=", "GET_MODE_NUNITS", "(", "GET_MODE", "(", "const_vec", ")", ")", ";", "int", "repeat", "=", "16", "/", "n_elts", ";", "int", "i", ";", "int", "hi_val", "=", "0", ";", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "i", "++", ")", "{", "rtx", "el", "=", "CONST_VECTOR_ELT", "(", "const_vec", ",", "i", ")", ";", "unsigned", "HOST_WIDE_INT", "elpart", ";", "gcc_assert", "(", "CONST_INT_P", "(", "el", ")", ")", ";", "elpart", "=", "INTVAL", "(", "el", ")", ";", "for", "(", "int", "j", "=", "0", ";", "j", "<", "repeat", ";", "j", "++", ")", "hi_val", "|=", "elpart", "<<", "(", "i", "*", "repeat", "+", "j", ")", ";", "}", "return", "gen_int_mode", "(", "hi_val", ",", "HImode", ")", ";", "}", ""], "natrual_language": ["Return", "a", "HI", "representation", "of", "CONST_VEC", "suitable", "for", "MVE", "predicates", "."], "TS_V_token": ["arm", "16", "0", "0", "0"], "File": "arm", "Func": "mve_bool_vec_to_const", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45197, "Length": 112}
{"ground_truth": ["", "int", "mve_vector_mem_operand", "(", "machine_mode", "mode", ",", "rtx", "op", ",", "bool", "strict", ")", "{", "enum", "rtx_code", "code", ";", "int", "val", ",", "reg_no", ";", "if", "(", "REG_P", "(", "op", ")", ")", "{", "int", "reg_no", "=", "REGNO", "(", "op", ")", ";", "return", "(", "(", "(", "mode", "==", "E_V8QImode", "||", "mode", "==", "E_V4QImode", "||", "mode", "==", "E_V4HImode", ")", "?", "reg_no", "<=", "LAST_LO_REGNUM", ":", "(", "reg_no", "<", "LAST_ARM_REGNUM", "&&", "reg_no", "!=", "SP_REGNUM", ")", ")", "||", "(", "!", "strict", "&&", "reg_no", ">=", "FIRST_PSEUDO_REGISTER", ")", ")", ";", "}", "code", "=", "GET_CODE", "(", "op", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "{", "reg_no", "=", "REGNO", "(", "XEXP", "(", "op", ",", "0", ")", ")", ";", "return", "(", "(", "mode", "==", "E_V8QImode", "||", "mode", "==", "E_V4QImode", "||", "mode", "==", "E_V4HImode", ")", "?", "reg_no", "<=", "LAST_LO_REGNUM", ":", "(", "reg_no", "<", "LAST_ARM_REGNUM", "&&", "reg_no", "!=", "SP_REGNUM", ")", ")", "||", "reg_no", ">=", "FIRST_PSEUDO_REGISTER", ";", "}", "else", "if", "(", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "GET_CODE", "(", "XEXP", "(", "op", ",", "1", ")", ")", "==", "PLUS", "&&", "XEXP", "(", "op", ",", "0", ")", "==", "XEXP", "(", "XEXP", "(", "op", ",", "1", ")", ",", "0", ")", "&&", "REG_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "op", ",", "1", ")", ",", "1", ")", ")", "==", "CONST_INT", ")", "||", "(", "reload_completed", "&&", "code", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", "&&", "GET_CODE", "(", "XEXP", "(", "op", ",", "1", ")", ")", "==", "CONST_INT", ")", ")", "{", "reg_no", "=", "REGNO", "(", "XEXP", "(", "op", ",", "0", ")", ")", ";", "if", "(", "code", "==", "PLUS", ")", "val", "=", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ";", "else", "val", "=", "INTVAL", "(", "XEXP", "(", "XEXP", "(", "op", ",", "1", ")", ",", "1", ")", ")", ";", "switch", "(", "mode", ")", "{", "case", "E_V16QImode", ":", "case", "E_V8QImode", ":", "case", "E_V4QImode", ":", "if", "(", "abs", "(", "val", ")", ">", "127", ")", "return", "FALSE", ";", "break", ";", "case", "E_V8HImode", ":", "case", "E_V8HFmode", ":", "case", "E_V4HImode", ":", "case", "E_V4HFmode", ":", "if", "(", "val", "%", "2", "!=", "0", "||", "abs", "(", "val", ")", ">", "254", ")", "return", "FALSE", ";", "break", ";", "case", "E_V4SImode", ":", "case", "E_V4SFmode", ":", "if", "(", "val", "%", "4", "!=", "0", "||", "abs", "(", "val", ")", ">", "508", ")", "return", "FALSE", ";", "break", ";", "default", ":", "return", "FALSE", ";", "}", "return", "reg_no", ">=", "FIRST_PSEUDO_REGISTER", "||", "(", "MVE_STN_LDW_MODE", "(", "mode", ")", "?", "reg_no", "<=", "LAST_LO_REGNUM", ":", "(", "reg_no", "<", "LAST_ARM_REGNUM", "&&", "reg_no", "!=", "SP_REGNUM", ")", ")", ";", "}", "return", "FALSE", ";", "}", ""], "natrual_language": ["This", "function", "returns", "TRUE", "on", "matching", "mode", "and", "op.1", ".", "For", "given", "modes", ",", "check", "for", "[", "Rn", "]", ",", "return", "TRUE", "for", "Rn", "<", "=", "LO_REGS.2", ".", "For", "other", "modes", ",", "check", "for", "[", "Rn", "]", ",", "return", "TRUE", "for", "Rn", "<", "R15", "(", "expect", "R13", ")", "."], "TS_V_token": ["arm", "0", "1", "0", "1", "0", "0", "1", "1", "0", "1", "0", "1", "1", "1", "127", "2", "0", "254", "4", "0", "508"], "File": "arm", "Func": "mve_vector_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45198, "Length": 430}
{"ground_truth": ["", "void", "neon_disambiguate_copy", "(", "rtx", "*", "operands", ",", "rtx", "*", "dest", ",", "rtx", "*", "src", ",", "unsigned", "int", "count", ")", "{", "unsigned", "int", "i", ";", "if", "(", "!", "reg_overlap_mentioned_p", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ")", "||", "REGNO", "(", "operands", "[", "0", "]", ")", "<", "REGNO", "(", "operands", "[", "1", "]", ")", ")", "{", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "{", "operands", "[", "2", "*", "i", "]", "=", "dest", "[", "i", "]", ";", "operands", "[", "2", "*", "i", "+", "1", "]", "=", "src", "[", "i", "]", ";", "}", "}", "else", "{", "for", "(", "i", "=", "0", ";", "i", "<", "count", ";", "i", "++", ")", "{", "operands", "[", "2", "*", "i", "]", "=", "dest", "[", "count", "-", "i", "-", "1", "]", ";", "operands", "[", "2", "*", "i", "+", "1", "]", "=", "src", "[", "count", "-", "i", "-", "1", "]", ";", "}", "}", "}", ""], "natrual_language": ["Set", "up", "OPERANDS", "for", "a", "register", "copy", "from", "SRC", "to", "DEST", ",", "taking", "care", "not", "to", "early-clobber", "SRC", "registers", "in", "the", "process", ".", "We", "assume", "that", "the", "operands", "described", "by", "SRC", "and", "DEST", "represent", "a", "decomposed", "copy", "of", "OPERANDS", "[", "1", "]", "into", "OPERANDS", "[", "0", "]", ".", "COUNT", "is", "the", "number", "of", "components", "into", "which", "the", "copy", "has", "been", "decomposed", "."], "TS_V_token": ["arm", "0", "1", "0", "1", "0", "2", "2", "1", "0", "2", "1", "2", "1", "1"], "File": "arm", "Func": "neon_disambiguate_copy", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45199, "Length": 152}
{"ground_truth": ["", "static", "int", "neon_endian_lane_map", "(", "machine_mode", "mode", ",", "int", "lane", ")", "{", "if", "(", "BYTES_BIG_ENDIAN", ")", "{", "int", "nelems", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "lane", "=", "(", "nelems", "-", "1", "-", "lane", ")", ";", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "==", "16", ")", "lane", "=", "lane", "^", "(", "nelems", "/", "2", ")", ";", "}", "return", "lane", ";", "}", ""], "natrual_language": ["Map", "lane", "ordering", "between", "architectural", "lane", "order", ",", "and", "GCC", "lane", "order", ",", "taking", "into", "account", "ABI", ".", "See", "comment", "above", "output_move_neon", "for", "details", "."], "TS_V_token": ["arm", "1", "16", "2"], "File": "arm", "Func": "neon_endian_lane_map", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45200, "Length": 58}
{"ground_truth": ["", "void", "neon_expand_vector_init", "(", "rtx", "target", ",", "rtx", "vals", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "target", ")", ";", "machine_mode", "inner_mode", "=", "GET_MODE_INNER", "(", "mode", ")", ";", "int", "n_elts", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "int", "n_var", "=", "0", ",", "one_var", "=", "-", "1", ";", "bool", "all_same", "=", "true", ";", "rtx", "x", ",", "mem", ";", "int", "i", ";", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "++", "i", ")", "{", "x", "=", "XVECEXP", "(", "vals", ",", "0", ",", "i", ")", ";", "if", "(", "!", "CONSTANT_P", "(", "x", ")", ")", "++", "n_var", ",", "one_var", "=", "i", ";", "if", "(", "i", ">", "0", "&&", "!", "rtx_equal_p", "(", "x", ",", "XVECEXP", "(", "vals", ",", "0", ",", "0", ")", ")", ")", "all_same", "=", "false", ";", "}", "if", "(", "n_var", "==", "0", ")", "{", "rtx", "constant", "=", "neon_make_constant", "(", "vals", ")", ";", "if", "(", "constant", "!=", "NULL_RTX", ")", "{", "emit_move_insn", "(", "target", ",", "constant", ")", ";", "return", ";", "}", "}", "if", "(", "all_same", "&&", "GET_MODE_SIZE", "(", "inner_mode", ")", "<=", "4", ")", "{", "x", "=", "copy_to_mode_reg", "(", "inner_mode", ",", "XVECEXP", "(", "vals", ",", "0", ",", "0", ")", ")", ";", "emit_insn", "(", "gen_rtx_SET", "(", "target", ",", "gen_vec_duplicate", "(", "mode", ",", "x", ")", ")", ")", ";", "return", ";", "}", "if", "(", "n_var", "==", "1", ")", "{", "rtx", "copy", "=", "copy_rtx", "(", "vals", ")", ";", "rtx", "merge_mask", "=", "GEN_INT", "(", "1", "<<", "one_var", ")", ";", "XVECEXP", "(", "copy", ",", "0", ",", "one_var", ")", "=", "XVECEXP", "(", "vals", ",", "0", ",", "(", "one_var", "+", "1", ")", "%", "n_elts", ")", ";", "neon_expand_vector_init", "(", "target", ",", "copy", ")", ";", "x", "=", "copy_to_mode_reg", "(", "inner_mode", ",", "XVECEXP", "(", "vals", ",", "0", ",", "one_var", ")", ")", ";", "emit_insn", "(", "gen_vec_set_internal", "(", "mode", ",", "target", ",", "x", ",", "merge_mask", ",", "target", ")", ")", ";", "return", ";", "}", "mem", "=", "assign_stack_temp", "(", "mode", ",", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "i", "++", ")", "emit_move_insn", "(", "adjust_address_nv", "(", "mem", ",", "inner_mode", ",", "i", "*", "GET_MODE_SIZE", "(", "inner_mode", ")", ")", ",", "XVECEXP", "(", "vals", ",", "0", ",", "i", ")", ")", ";", "emit_move_insn", "(", "target", ",", "mem", ")", ";", "}", ""], "natrual_language": ["Initialize", "vector", "TARGET", "to", "VALS", "."], "TS_V_token": ["arm", "0", "1", "0", "0", "0", "0", "0", "0", "4", "0", "0", "1", "1", "0", "0", "1", "0", "0", "0"], "File": "arm", "Func": "neon_expand_vector_init", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45201, "Length": 352}
{"ground_truth": ["", "int", "neon_immediate_valid_for_logic", "(", "rtx", "op", ",", "machine_mode", "mode", ",", "int", "inverse", ",", "rtx", "*", "modconst", ",", "int", "*", "elementwidth", ")", "{", "rtx", "tmpconst", ";", "int", "tmpwidth", ";", "int", "retval", "=", "simd_valid_immediate", "(", "op", ",", "mode", ",", "inverse", ",", "&", "tmpconst", ",", "&", "tmpwidth", ")", ";", "if", "(", "retval", "<", "0", "||", "retval", ">", "5", ")", "return", "0", ";", "if", "(", "modconst", ")", "*", "modconst", "=", "tmpconst", ";", "if", "(", "elementwidth", ")", "*", "elementwidth", "=", "tmpwidth", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "legal", "for", "use", "in", "a", "VORR", "or", "VBIC", "instruction", ".", "If", "the", "immediate", "is", "valid", ",", "write", "a", "constant", "suitable", "for", "using", "as", "an", "operand", "to", "VORR/VBIC/VAND/VORN", "to", "*", "MODCONST", "and", "the", "corresponding", "element", "width", "to", "*", "ELEMENTWIDTH", ".", "See", "neon_valid_immediate", "for", "description", "of", "INVERSE", "."], "TS_V_token": ["arm", "0", "5", "0", "1"], "File": "arm", "Func": "neon_immediate_valid_for_logic", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45202, "Length": 80}
{"ground_truth": ["", "int", "neon_immediate_valid_for_shift", "(", "rtx", "op", ",", "machine_mode", "mode", ",", "rtx", "*", "modconst", ",", "int", "*", "elementwidth", ",", "bool", "isleftshift", ")", "{", "unsigned", "int", "innersize", "=", "GET_MODE_UNIT_SIZE", "(", "mode", ")", ";", "unsigned", "int", "n_elts", "=", "CONST_VECTOR_NUNITS", "(", "op", ")", ",", "i", ";", "unsigned", "HOST_WIDE_INT", "last_elt", "=", "0", ";", "unsigned", "HOST_WIDE_INT", "maxshift", ";", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "i", "++", ")", "{", "rtx", "el", "=", "CONST_VECTOR_ELT", "(", "op", ",", "i", ")", ";", "unsigned", "HOST_WIDE_INT", "elpart", ";", "if", "(", "CONST_INT_P", "(", "el", ")", ")", "elpart", "=", "INTVAL", "(", "el", ")", ";", "else", "if", "(", "CONST_DOUBLE_P", "(", "el", ")", ")", "return", "0", ";", "else", "gcc_unreachable", "(", ")", ";", "if", "(", "i", "!=", "0", "&&", "elpart", "!=", "last_elt", ")", "return", "0", ";", "last_elt", "=", "elpart", ";", "}", "maxshift", "=", "innersize", "*", "8", ";", "if", "(", "isleftshift", ")", "{", "if", "(", "last_elt", ">=", "maxshift", ")", "return", "0", ";", "}", "else", "{", "if", "(", "last_elt", "==", "0", "||", "last_elt", ">", "maxshift", ")", "return", "0", ";", "}", "if", "(", "elementwidth", ")", "*", "elementwidth", "=", "innersize", "*", "8", ";", "if", "(", "modconst", ")", "*", "modconst", "=", "CONST_VECTOR_ELT", "(", "op", ",", "0", ")", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "OP", "is", "legal", "for", "use", "in", "a", "VSHR", "or", "VSHL", "instruction", ".", "If", "the", "immediate", "is", "valid", ",", "write", "a", "constant", "suitable", "for", "using", "as", "an", "operand", "to", "VSHR/VSHL", "to", "*", "MODCONST", "and", "the", "corresponding", "element", "width", "to", "*", "ELEMENTWIDTH", ".", "ISLEFTSHIFT", "is", "for", "determine", "left", "or", "right", "shift", ",", "because", "they", "have", "different", "limitations", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "8", "0", "0", "0", "8", "0", "1"], "File": "arm", "Func": "neon_immediate_valid_for_shift", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45203, "Length": 193}
{"ground_truth": ["", "void", "neon_lane_bounds", "(", "rtx", "operand", ",", "HOST_WIDE_INT", "low", ",", "HOST_WIDE_INT", "high", ",", "const_tree", "exp", ")", "{", "bounds_check", "(", "operand", ",", "low", ",", "high", ",", "exp", ",", "\"lane\"", ")", ";", "}", ""], "natrual_language": ["Bounds-check", "lanes", "."], "TS_V_token": ["arm", "\"lane\""], "File": "arm", "Func": "neon_lane_bounds", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45204, "Length": 30}
{"ground_truth": ["", "rtx", "neon_make_constant", "(", "rtx", "vals", ",", "bool", "generate", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "vals", ")", ";", "rtx", "target", ";", "rtx", "const_vec", "=", "NULL_RTX", ";", "int", "n_elts", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "int", "n_const", "=", "0", ";", "int", "i", ";", "if", "(", "GET_CODE", "(", "vals", ")", "==", "CONST_VECTOR", ")", "const_vec", "=", "vals", ";", "else", "if", "(", "GET_CODE", "(", "vals", ")", "==", "PARALLEL", ")", "{", "for", "(", "i", "=", "0", ";", "i", "<", "n_elts", ";", "++", "i", ")", "{", "rtx", "x", "=", "XVECEXP", "(", "vals", ",", "0", ",", "i", ")", ";", "if", "(", "CONST_INT_P", "(", "x", ")", "||", "CONST_DOUBLE_P", "(", "x", ")", ")", "n_const", "++", ";", "}", "if", "(", "n_const", "==", "n_elts", ")", "const_vec", "=", "gen_rtx_CONST_VECTOR", "(", "mode", ",", "XVEC", "(", "vals", ",", "0", ")", ")", ";", "}", "else", "gcc_unreachable", "(", ")", ";", "if", "(", "const_vec", "!=", "NULL", "&&", "simd_immediate_valid_for_move", "(", "const_vec", ",", "mode", ",", "NULL", ",", "NULL", ")", ")", "return", "const_vec", ";", "else", "if", "(", "TARGET_HAVE_MVE", "&&", "(", "GET_MODE_CLASS", "(", "mode", ")", "==", "MODE_VECTOR_BOOL", ")", ")", "return", "mve_bool_vec_to_const", "(", "const_vec", ")", ";", "else", "if", "(", "(", "target", "=", "neon_vdup_constant", "(", "vals", ",", "generate", ")", ")", "!=", "NULL_RTX", ")", "return", "target", ";", "else", "if", "(", "const_vec", "!=", "NULL_RTX", ")", "return", "arm_disable_literal_pool", "?", "NULL_RTX", ":", "const_vec", ";", "else", "return", "NULL_RTX", ";", "}", ""], "natrual_language": ["Generate", "code", "to", "load", "VALS", ",", "which", "is", "a", "PARALLEL", "containing", "only", "constants", "(", "for", "vec_init", ")", "or", "CONST_VECTOR", ",", "efficiently", "into", "a", "register", ".", "Returns", "an", "RTX", "to", "copy", "into", "the", "register", ",", "or", "NULL_RTX", "for", "a", "PARALLEL", "that", "can", "not", "be", "converted", "into", "a", "CONST_VECTOR", "."], "TS_V_token": ["arm", "0", "0", "0", "0"], "File": "arm", "Func": "neon_make_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45205, "Length": 212}
{"ground_truth": ["", "char", "*", "neon_output_logic_immediate", "(", "const", "char", "*", "mnem", ",", "rtx", "*", "op2", ",", "machine_mode", "mode", ",", "int", "inverse", ",", "int", "quad", ")", "{", "int", "width", ",", "is_valid", ";", "static", "char", "templ", "[", "40", "]", ";", "is_valid", "=", "neon_immediate_valid_for_logic", "(", "*", "op2", ",", "mode", ",", "inverse", ",", "op2", ",", "&", "width", ")", ";", "gcc_assert", "(", "is_valid", "!=", "0", ")", ";", "if", "(", "quad", ")", "sprintf", "(", "templ", ",", "\"%s.i%d\\t%%q0, %%2\"", ",", "mnem", ",", "width", ")", ";", "else", "sprintf", "(", "templ", ",", "\"%s.i%d\\t%%P0, %%2\"", ",", "mnem", ",", "width", ")", ";", "return", "templ", ";", "}", ""], "natrual_language": ["Return", "a", "string", "suitable", "for", "output", "of", "Neon", "immediate", "logic", "operation", "MNEM", "."], "TS_V_token": ["arm", "40", "0", "\"%s.i%d\\t%%q0, %%2\"", "\"%s.i%d\\t%%P0, %%2\""], "File": "arm", "Func": "neon_output_logic_immediate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45206, "Length": 90}
{"ground_truth": ["", "char", "*", "neon_output_shift_immediate", "(", "const", "char", "*", "mnem", ",", "char", "sign", ",", "rtx", "*", "op2", ",", "machine_mode", "mode", ",", "int", "quad", ",", "bool", "isleftshift", ")", "{", "int", "width", ",", "is_valid", ";", "static", "char", "templ", "[", "40", "]", ";", "is_valid", "=", "neon_immediate_valid_for_shift", "(", "*", "op2", ",", "mode", ",", "op2", ",", "&", "width", ",", "isleftshift", ")", ";", "gcc_assert", "(", "is_valid", "!=", "0", ")", ";", "if", "(", "quad", ")", "sprintf", "(", "templ", ",", "\"%s.%c%d\\t%%q0, %%q1, %%2\"", ",", "mnem", ",", "sign", ",", "width", ")", ";", "else", "sprintf", "(", "templ", ",", "\"%s.%c%d\\t%%P0, %%P1, %%2\"", ",", "mnem", ",", "sign", ",", "width", ")", ";", "return", "templ", ";", "}", ""], "natrual_language": ["Return", "a", "string", "suitable", "for", "output", "of", "Neon", "immediate", "shift", "operation", "(", "VSHR", "or", "VSHL", ")", "MNEM", "."], "TS_V_token": ["arm", "40", "0", "\"%s.%c%d\\t%%q0, %%q1, %%2\"", "\"%s.%c%d\\t%%P0, %%P1, %%2\""], "File": "arm", "Func": "neon_output_shift_immediate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45207, "Length": 97}
{"ground_truth": ["", "void", "neon_pairwise_reduce", "(", "rtx", "op0", ",", "rtx", "op1", ",", "machine_mode", "mode", ",", "rtx", "(", "*", "reduc", ")", "(", "rtx", ",", "rtx", ",", "rtx", ")", ")", "{", "unsigned", "int", "i", ",", "parts", "=", "GET_MODE_SIZE", "(", "mode", ")", "/", "GET_MODE_UNIT_SIZE", "(", "mode", ")", ";", "rtx", "tmpsum", "=", "op1", ";", "for", "(", "i", "=", "parts", "/", "2", ";", "i", ">=", "1", ";", "i", "/=", "2", ")", "{", "rtx", "dest", "=", "(", "i", "==", "1", ")", "?", "op0", ":", "gen_reg_rtx", "(", "mode", ")", ";", "emit_insn", "(", "reduc", "(", "dest", ",", "tmpsum", ",", "tmpsum", ")", ")", ";", "tmpsum", "=", "dest", ";", "}", "}", ""], "natrual_language": ["Output", "a", "sequence", "of", "pairwise", "operations", "to", "implement", "a", "reduction", ".", "NOTE", ":", "We", "do", "``", "too", "much", "work", "''", "here", ",", "because", "pairwise", "operations", "work", "on", "two", "registers-worth", "of", "operands", "in", "one", "go", ".", "Unfortunately", "we", "ca", "n't", "exploit", "those", "extra", "calculations", "to", "do", "the", "full", "operation", "in", "fewer", "steps", ",", "I", "do", "n't", "think", ".", "Although", "all", "vector", "elements", "of", "the", "result", "but", "the", "first", "are", "ignored", ",", "we", "actually", "calculate", "the", "same", "result", "in", "each", "of", "the", "elements", ".", "An", "alternative", "such", "as", "initially", "loading", "a", "vector", "with", "zero", "to", "use", "as", "each", "of", "the", "second", "operands", "would", "use", "up", "an", "additional", "register", "and", "take", "an", "extra", "instruction", ",", "for", "no", "particular", "gain", "."], "TS_V_token": ["arm", "2", "1", "2", "1"], "File": "arm", "Func": "neon_pairwise_reduce", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45208, "Length": 98}
{"ground_truth": ["", "static", "int", "neon_pair_endian_lane_map", "(", "machine_mode", "mode", ",", "int", "lane", ")", "{", "int", "nelem", "=", "GET_MODE_NUNITS", "(", "mode", ")", ";", "if", "(", "BYTES_BIG_ENDIAN", ")", "lane", "=", "neon_endian_lane_map", "(", "mode", ",", "lane", "&", "(", "nelem", "-", "1", ")", ")", "+", "(", "lane", "&", "nelem", ")", ";", "return", "lane", ";", "}", ""], "natrual_language": ["Some", "permutations", "index", "into", "pairs", "of", "vectors", ",", "this", "is", "a", "helper", "function", "to", "map", "indexes", "into", "those", "pairs", "of", "vectors", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "neon_pair_endian_lane_map", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45209, "Length": 48}
{"ground_truth": ["", "void", "neon_split_vcombine", "(", "rtx", "operands", "[", "3", "]", ")", "{", "unsigned", "int", "dest", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "unsigned", "int", "src1", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "unsigned", "int", "src2", "=", "REGNO", "(", "operands", "[", "2", "]", ")", ";", "machine_mode", "halfmode", "=", "GET_MODE", "(", "operands", "[", "1", "]", ")", ";", "unsigned", "int", "halfregs", "=", "REG_NREGS", "(", "operands", "[", "1", "]", ")", ";", "rtx", "destlo", ",", "desthi", ";", "if", "(", "src1", "==", "dest", "&&", "src2", "==", "dest", "+", "halfregs", ")", "{", "emit_note", "(", "NOTE_INSN_DELETED", ")", ";", "return", ";", "}", "destlo", "=", "gen_rtx_REG_offset", "(", "operands", "[", "0", "]", ",", "halfmode", ",", "dest", ",", "0", ")", ";", "desthi", "=", "gen_rtx_REG_offset", "(", "operands", "[", "0", "]", ",", "halfmode", ",", "dest", "+", "halfregs", ",", "GET_MODE_SIZE", "(", "halfmode", ")", ")", ";", "if", "(", "src2", "==", "dest", "&&", "src1", "==", "dest", "+", "halfregs", ")", "{", "rtx", "x", "=", "gen_rtx_SET", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "rtx", "y", "=", "gen_rtx_SET", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "emit_insn", "(", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec", "(", "2", ",", "x", ",", "y", ")", ")", ")", ";", "return", ";", "}", "if", "(", "!", "reg_overlap_mentioned_p", "(", "operands", "[", "2", "]", ",", "destlo", ")", ")", "{", "if", "(", "src1", "!=", "dest", ")", "emit_move_insn", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "if", "(", "src2", "!=", "dest", "+", "halfregs", ")", "emit_move_insn", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "}", "else", "{", "if", "(", "src2", "!=", "dest", "+", "halfregs", ")", "emit_move_insn", "(", "desthi", ",", "operands", "[", "2", "]", ")", ";", "if", "(", "src1", "!=", "dest", ")", "emit_move_insn", "(", "destlo", ",", "operands", "[", "1", "]", ")", ";", "}", "}", ""], "natrual_language": ["Split", "operands", "into", "moves", "from", "op", "[", "1", "]", "+", "op", "[", "2", "]", "into", "op", "[", "0", "]", "."], "TS_V_token": ["arm", "3", "0", "1", "2", "1", "1", "0", "0", "0", "1", "2", "2", "2", "1", "2", "2", "1"], "File": "arm", "Func": "neon_split_vcombine", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45210, "Length": 278}
{"ground_truth": ["", "int", "neon_struct_mem_operand", "(", "rtx", "op", ")", "{", "rtx", "ind", ";", "if", "(", "!", "(", "reload_in_progress", "||", "reload_completed", ")", "&&", "(", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "arg_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_incoming_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_outgoing_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_dynamic_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_vars_rtx", ",", "op", ")", ")", ")", "return", "FALSE", ";", "if", "(", "!", "MEM_P", "(", "op", ")", ")", "return", "FALSE", ";", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "reload_completed", "&&", "(", "LABEL_REF_P", "(", "ind", ")", "||", "(", "GET_CODE", "(", "ind", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "TRUE", ";", "if", "(", "REG_P", "(", "ind", ")", ")", "return", "arm_address_register_rtx_p", "(", "ind", ",", "0", ")", ";", "if", "(", "GET_CODE", "(", "ind", ")", "==", "POST_INC", "||", "GET_CODE", "(", "ind", ")", "==", "PRE_DEC", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "mem", "suitable", "for", "loading/storing", "a", "Neon", "struct", "type", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "0", "0"], "File": "arm", "Func": "neon_struct_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45211, "Length": 201}
{"ground_truth": ["", "rtx", "*", "neon_vcmla_lane_prepare_operands", "(", "rtx", "*", "operands", ")", "{", "int", "lane", "=", "INTVAL", "(", "operands", "[", "4", "]", ")", ";", "machine_mode", "constmode", "=", "SImode", ";", "machine_mode", "mode", "=", "GET_MODE", "(", "operands", "[", "3", "]", ")", ";", "int", "regno", "=", "REGNO", "(", "operands", "[", "3", "]", ")", ";", "regno", "=", "(", "(", "regno", "-", "FIRST_VFP_REGNUM", ")", ">>", "1", ")", ";", "if", "(", "lane", ">", "0", "&&", "lane", ">=", "GET_MODE_NUNITS", "(", "mode", ")", "/", "4", ")", "{", "operands", "[", "3", "]", "=", "gen_int_mode", "(", "regno", "+", "1", ",", "constmode", ")", ";", "operands", "[", "4", "]", "=", "gen_int_mode", "(", "lane", "-", "GET_MODE_NUNITS", "(", "mode", ")", "/", "4", ",", "constmode", ")", ";", "}", "else", "{", "operands", "[", "3", "]", "=", "gen_int_mode", "(", "regno", ",", "constmode", ")", ";", "operands", "[", "4", "]", "=", "gen_int_mode", "(", "lane", ",", "constmode", ")", ";", "}", "return", "operands", ";", "}", ""], "natrual_language": ["Prepares", "the", "operands", "for", "the", "VCMLA", "by", "lane", "instruction", "such", "that", "the", "right", "register", "number", "is", "selected", ".", "This", "instruction", "is", "special", "in", "that", "it", "always", "requires", "a", "D", "register", ",", "however", "there", "is", "a", "choice", "to", "be", "made", "between", "Dn", "[", "0", "]", ",", "Dn", "[", "1", "]", ",", "D", "(", "n+1", ")", "[", "0", "]", ",", "and", "D", "(", "n+1", ")", "[", "1", "]", "depending", "on", "the", "mode", "of", "the", "registers", ".", "The", "VCMLA", "by", "lane", "function", "always", "selects", "two", "values", ".", "For", "instance", "given", "D0", "and", "a", "V2SF", ",", "the", "only", "valid", "index", "is", "0", "as", "the", "values", "in", "S0", "and", "S1", "will", "be", "used", "by", "the", "instruction", ".", "However", "given", "V4SF", "then", "index", "0", "and", "1", "are", "valid", "as", "D0", "[", "0", "]", "or", "D1", "[", "0", "]", "are", "both", "valid", ".", "This", "function", "centralizes", "that", "information", "based", "on", "OPERANDS", ",", "OPERANDS", "[", "3", "]", "will", "be", "changed", "from", "a", "REG", "into", "a", "CONST_INT", "RTX", "and", "OPERANDS", "[", "4", "]", "will", "be", "updated", "to", "contain", "the", "right", "index", "."], "TS_V_token": ["arm", "4", "3", "3", "1", "0", "4", "3", "1", "4", "4", "3", "4"], "File": "arm", "Func": "neon_vcmla_lane_prepare_operands", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45212, "Length": 140}
{"ground_truth": ["", "static", "rtx", "neon_vdup_constant", "(", "rtx", "vals", ",", "bool", "generate", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "vals", ")", ";", "machine_mode", "inner_mode", "=", "GET_MODE_INNER", "(", "mode", ")", ";", "rtx", "x", ";", "if", "(", "GET_CODE", "(", "vals", ")", "!=", "CONST_VECTOR", "||", "GET_MODE_SIZE", "(", "inner_mode", ")", ">", "4", ")", "return", "NULL_RTX", ";", "if", "(", "!", "const_vec_duplicate_p", "(", "vals", ",", "&", "x", ")", ")", "return", "NULL_RTX", ";", "if", "(", "!", "generate", ")", "return", "x", ";", "x", "=", "copy_to_mode_reg", "(", "inner_mode", ",", "x", ")", ";", "return", "gen_vec_duplicate", "(", "mode", ",", "x", ")", ";", "}", ""], "natrual_language": ["Return", "a", "non-NULL", "RTX", "iff", "VALS", "is", "a", "vector", "constant", "that", "can", "be", "loaded", "into", "a", "register", "using", "VDUP", ".", "If", "this", "is", "the", "case", ",", "and", "GENERATE", "is", "set", ",", "we", "also", "generate", "instructions", "to", "do", "this", "and", "return", "an", "RTX", "to", "assign", "to", "the", "register", "."], "TS_V_token": ["arm", "4"], "File": "arm", "Func": "neon_vdup_constant", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45213, "Length": 89}
{"ground_truth": ["", "int", "neon_vector_mem_operand", "(", "rtx", "op", ",", "int", "type", ",", "bool", "strict", ")", "{", "rtx", "ind", ";", "if", "(", "strict", "&&", "!", "(", "reload_in_progress", "||", "reload_completed", ")", "&&", "(", "reg_mentioned_p", "(", "frame_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "arg_pointer_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_incoming_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_outgoing_args_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_dynamic_rtx", ",", "op", ")", "||", "reg_mentioned_p", "(", "virtual_stack_vars_rtx", ",", "op", ")", ")", ")", "return", "FALSE", ";", "if", "(", "!", "MEM_P", "(", "op", ")", ")", "return", "FALSE", ";", "ind", "=", "XEXP", "(", "op", ",", "0", ")", ";", "if", "(", "reload_completed", "&&", "(", "LABEL_REF_P", "(", "ind", ")", "||", "(", "GET_CODE", "(", "ind", ")", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "TRUE", ";", "if", "(", "REG_P", "(", "ind", ")", ")", "return", "arm_address_register_rtx_p", "(", "ind", ",", "0", ")", ";", "if", "(", "(", "type", "!=", "1", "&&", "GET_CODE", "(", "ind", ")", "==", "POST_INC", ")", "||", "(", "type", "==", "0", "&&", "GET_CODE", "(", "ind", ")", "==", "PRE_DEC", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "0", ")", ";", "if", "(", "type", "==", "2", "&&", "GET_CODE", "(", "ind", ")", "==", "POST_MODIFY", "&&", "GET_CODE", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "XEXP", "(", "ind", ",", "1", ")", ",", "1", ")", ")", "&&", "REG_P", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "&&", "rtx_equal_p", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "XEXP", "(", "XEXP", "(", "ind", ",", "1", ")", ",", "0", ")", ")", ")", "return", "true", ";", "if", "(", "type", "==", "0", "&&", "GET_CODE", "(", "ind", ")", "==", "PLUS", "&&", "REG_P", "(", "XEXP", "(", "ind", ",", "0", ")", ")", "&&", "REG_MODE_OK_FOR_BASE_P", "(", "XEXP", "(", "ind", ",", "0", ")", ",", "VOIDmode", ")", "&&", "CONST_INT_P", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&&", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "<", "(", "VALID_NEON_QREG_MODE", "(", "GET_MODE", "(", "op", ")", ")", "?", "1016", ":", "1024", ")", ")", "&&", "(", "INTVAL", "(", "XEXP", "(", "ind", ",", "1", ")", ")", "&", "3", ")", "==", "0", ")", "return", "TRUE", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "OP", "is", "a", "memory", "operand", "which", "we", "can", "load", "or", "store", "a", "vector", "to/from", ".", "TYPE", "is", "one", "of", "the", "following", "values", ":", "0", "-", "Vector", "load/stor", "(", "vldr", ")", "1", "-", "Core", "registers", "(", "ldm", ")", "2", "-", "Element/structure", "loads", "(", "vld1", ")"], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "2", "1", "1", "1", "0", "0", "1", "0", "0", "0", "0", "1", "1", "1024", "1", "1016", "1024", "1", "3", "0"], "File": "arm", "Func": "neon_vector_mem_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45214, "Length": 399}
{"ground_truth": ["", "inline", "static", "rtx", "next_consecutive_mem", "(", "rtx", "mem", ")", "{", "machine_mode", "mode", "=", "GET_MODE", "(", "mem", ")", ";", "HOST_WIDE_INT", "offset", "=", "GET_MODE_SIZE", "(", "mode", ")", ";", "rtx", "addr", "=", "plus_constant", "(", "Pmode", ",", "XEXP", "(", "mem", ",", "0", ")", ",", "offset", ")", ";", "return", "adjust_automodify_address", "(", "mem", ",", "mode", ",", "addr", ",", "offset", ")", ";", "}", ""], "natrual_language": ["Helper", "for", "gen_movmem_ldrd_strd", ".", "Increase", "the", "address", "of", "memory", "rtxby", "mode", "size", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "next_consecutive_mem", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45215, "Length": 55}
{"ground_truth": ["", "static", "void", "note_invalid_constants", "(", "rtx_insn", "*", "insn", ",", "HOST_WIDE_INT", "address", ",", "int", "do_pushes", ")", "{", "int", "opno", ";", "extract_constrain_insn", "(", "insn", ")", ";", "if", "(", "recog_data", ".", "n_alternatives", "==", "0", ")", "return", ";", "preprocess_constraints", "(", "insn", ")", ";", "const", "operand_alternative", "*", "op_alt", "=", "which_op_alt", "(", ")", ";", "for", "(", "opno", "=", "0", ";", "opno", "<", "recog_data", ".", "n_operands", ";", "opno", "++", ")", "{", "if", "(", "recog_data", ".", "operand_type", "[", "opno", "]", "!=", "OP_IN", ")", "continue", ";", "if", "(", "op_alt", "[", "opno", "]", ".", "memory_ok", ")", "{", "rtx", "op", "=", "recog_data", ".", "operand", "[", "opno", "]", ";", "if", "(", "CONSTANT_P", "(", "op", ")", ")", "{", "if", "(", "do_pushes", ")", "push_minipool_fix", "(", "insn", ",", "address", ",", "recog_data", ".", "operand_loc", "[", "opno", "]", ",", "recog_data", ".", "operand_mode", "[", "opno", "]", ",", "op", ")", ";", "}", "else", "if", "(", "MEM_P", "(", "op", ")", "&&", "GET_CODE", "(", "XEXP", "(", "op", ",", "0", ")", ")", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "XEXP", "(", "op", ",", "0", ")", ")", ")", "{", "if", "(", "do_pushes", ")", "{", "rtx", "cop", "=", "avoid_constant_pool_reference", "(", "op", ")", ";", "if", "(", "op", "==", "cop", ")", "cop", "=", "get_pool_constant", "(", "XEXP", "(", "op", ",", "0", ")", ")", ";", "push_minipool_fix", "(", "insn", ",", "address", ",", "recog_data", ".", "operand_loc", "[", "opno", "]", ",", "recog_data", ".", "operand_mode", "[", "opno", "]", ",", "cop", ")", ";", "}", "}", "}", "}", "return", ";", "}", ""], "natrual_language": ["Scan", "INSN", "and", "note", "any", "of", "its", "operands", "that", "need", "fixing", ".", "If", "DO_PUSHES", "is", "false", "we", "do", "not", "actually", "push", "any", "of", "the", "fixups", "needed", ".", "The", "function", "returns", "TRUE", "if", "any", "fixups", "were", "needed/pushed", ".", "This", "is", "used", "by", "arm_memory_load_p", "(", ")", "which", "needs", "to", "know", "about", "loads", "of", "constants", "that", "will", "be", "converted", "into", "minipool", "loads", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0"], "File": "arm", "Func": "note_invalid_constants", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45216, "Length": 224}
{"ground_truth": ["", "inline", "static", "int", "number_of_first_bit_set", "(", "unsigned", "mask", ")", "{", "return", "ctz_hwi", "(", "mask", ")", ";", "}", ""], "natrual_language": ["Return", "the", "number", "(", "counting", "from", "0", ")", "of", "the", "least", "significant", "set", "bit", "in", "MASK", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "number_of_first_bit_set", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45217, "Length": 16}
{"ground_truth": ["", "bool", "offset_ok_for_ldrd_strd", "(", "HOST_WIDE_INT", "offset", ")", "{", "HOST_WIDE_INT", "max_offset", ";", "if", "(", "TARGET_THUMB2", "&&", "(", "(", "offset", "&", "3", ")", "!=", "0", ")", ")", "return", "false", ";", "if", "(", "TARGET_THUMB2", ")", "max_offset", "=", "1020", ";", "else", "if", "(", "TARGET_ARM", ")", "max_offset", "=", "255", ";", "else", "return", "false", ";", "return", "(", "(", "offset", "<=", "max_offset", ")", "&&", "(", "offset", ">=", "-", "max_offset", ")", ")", ";", "}", ""], "natrual_language": ["Returns", "true", "iff", "OFFSET", "is", "valid", "for", "use", "in", "an", "LDRD/STRD", "instruction", ",", "assuming", "that", "the", "address", "in", "the", "base", "register", "is", "word", "aligned", "."], "TS_V_token": ["arm", "3", "0", "1020", "255"], "File": "arm", "Func": "offset_ok_for_ldrd_strd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45218, "Length": 65}
{"ground_truth": ["", "bool", "operands_ok_ldrd_strd", "(", "rtx", "rt", ",", "rtx", "rt2", ",", "rtx", "rn", ",", "HOST_WIDE_INT", "offset", ",", "bool", "wback", ",", "bool", "load", ")", "{", "unsigned", "int", "t", ",", "t2", ",", "n", ";", "if", "(", "!", "reload_completed", ")", "return", "true", ";", "if", "(", "!", "offset_ok_for_ldrd_strd", "(", "offset", ")", ")", "return", "false", ";", "t", "=", "REGNO", "(", "rt", ")", ";", "t2", "=", "REGNO", "(", "rt2", ")", ";", "n", "=", "REGNO", "(", "rn", ")", ";", "if", "(", "(", "TARGET_THUMB2", ")", "&&", "(", "(", "wback", "&&", "(", "n", "==", "t", "||", "n", "==", "t2", ")", ")", "||", "(", "t", "==", "SP_REGNUM", ")", "||", "(", "t", "==", "PC_REGNUM", ")", "||", "(", "t2", "==", "SP_REGNUM", ")", "||", "(", "t2", "==", "PC_REGNUM", ")", "||", "(", "!", "load", "&&", "(", "n", "==", "PC_REGNUM", ")", ")", "||", "(", "load", "&&", "(", "t", "==", "t2", ")", ")", "||", "(", "!", "wback", "&&", "load", "&&", "fix_cm3_ldrd", "&&", "(", "n", "==", "t", ")", ")", ")", ")", "return", "false", ";", "if", "(", "(", "TARGET_ARM", ")", "&&", "(", "(", "wback", "&&", "(", "n", "==", "t", "||", "n", "==", "t2", ")", ")", "||", "(", "t2", "==", "PC_REGNUM", ")", "||", "(", "t", "%", "2", "!=", "0", ")", "||", "(", "t2", "!=", "t", "+", "1", ")", "||", "(", "n", "==", "PC_REGNUM", ")", ")", ")", "return", "false", ";", "return", "true", ";", "}", ""], "natrual_language": ["Checks", "whether", "the", "operands", "are", "valid", "for", "use", "in", "an", "LDRD/STRD", "instruction", ".", "Assumes", "that", "RT", ",", "RT2", ",", "and", "RN", "are", "REG", ".", "This", "is", "guaranteed", "by", "the", "patterns", ".", "Assumes", "that", "the", "address", "in", "the", "base", "register", "RN", "is", "word", "aligned", ".", "Pattern", "guarantees", "that", "both", "memory", "accesses", "use", "the", "same", "base", "register", ",", "the", "offsets", "are", "constants", "within", "the", "range", ",", "and", "the", "gap", "between", "the", "offsets", "is", "4", ".", "If", "preload", "complete", "then", "check", "that", "registers", "are", "legal", ".", "WBACK", "indicates", "whether", "address", "is", "updated", ".", "LOAD", "indicates", "whether", "memory", "access", "is", "load", "or", "store", "."], "TS_V_token": ["arm", "2", "0", "1"], "File": "arm", "Func": "operands_ok_ldrd_strd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45219, "Length": 212}
{"ground_truth": ["", "static", "int", "optimal_immediate_sequence", "(", "enum", "rtx_code", "code", ",", "unsigned", "HOST_WIDE_INT", "val", ",", "struct", "four_ints", "*", "return_sequence", ")", "{", "int", "best_consecutive_zeros", "=", "0", ";", "int", "i", ";", "int", "best_start", "=", "0", ";", "int", "insns1", ",", "insns2", ";", "struct", "four_ints", "tmp_sequence", ";", "if", "(", "TARGET_ARM", ")", "{", "for", "(", "i", "=", "0", ";", "i", "<", "32", ";", "i", "+=", "2", ")", "{", "int", "consecutive_zeros", "=", "0", ";", "if", "(", "!", "(", "val", "&", "(", "3", "<<", "i", ")", ")", ")", "{", "while", "(", "(", "i", "<", "32", ")", "&&", "!", "(", "val", "&", "(", "3", "<<", "i", ")", ")", ")", "{", "consecutive_zeros", "+=", "2", ";", "i", "+=", "2", ";", "}", "if", "(", "consecutive_zeros", ">", "best_consecutive_zeros", ")", "{", "best_consecutive_zeros", "=", "consecutive_zeros", ";", "best_start", "=", "i", "-", "consecutive_zeros", ";", "}", "i", "-=", "2", ";", "}", "}", "}", "insns1", "=", "optimal_immediate_sequence_1", "(", "code", ",", "val", ",", "return_sequence", ",", "best_start", ")", ";", "if", "(", "best_start", "!=", "0", "&&", "(", "(", "HOST_WIDE_INT_1U", "<<", "best_start", ")", "<", "val", ")", ")", "{", "insns2", "=", "optimal_immediate_sequence_1", "(", "code", ",", "val", ",", "&", "tmp_sequence", ",", "0", ")", ";", "if", "(", "insns2", "<=", "insns1", ")", "{", "*", "return_sequence", "=", "tmp_sequence", ";", "insns1", "=", "insns2", ";", "}", "}", "return", "insns1", ";", "}", ""], "natrual_language": ["Return", "a", "sequence", "of", "integers", ",", "in", "RETURN_SEQUENCE", "that", "fit", "into", "ARM/THUMB2", "immediates", ",", "and", "add", "up", "to", "VAL", ".", "Thr", "function", "return", "value", "gives", "the", "number", "of", "insns", "required", "."], "TS_V_token": ["arm", "0", "0", "0", "32", "2", "0", "3", "32", "3", "2", "2", "2", "0", "0"], "File": "arm", "Func": "optimal_immediate_sequence", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45220, "Length": 199}
{"ground_truth": ["", "static", "int", "optimal_immediate_sequence_1", "(", "enum", "rtx_code", "code", ",", "unsigned", "HOST_WIDE_INT", "val", ",", "struct", "four_ints", "*", "return_sequence", ",", "int", "i", ")", "{", "int", "remainder", "=", "val", "&", "0xffffffff", ";", "int", "insns", "=", "0", ";", "do", "{", "int", "end", ";", "unsigned", "int", "b1", ",", "b2", ",", "b3", ",", "b4", ";", "unsigned", "HOST_WIDE_INT", "result", ";", "int", "loc", ";", "gcc_assert", "(", "insns", "<", "4", ")", ";", "if", "(", "i", "<=", "0", ")", "i", "+=", "32", ";", "if", "(", "remainder", "&", "(", "(", "TARGET_ARM", "?", "(", "3", "<<", "(", "i", "-", "2", ")", ")", ":", "(", "1", "<<", "(", "i", "-", "1", ")", ")", ")", ")", ")", "{", "loc", "=", "i", ";", "if", "(", "i", "<=", "12", "&&", "TARGET_THUMB2", "&&", "code", "==", "PLUS", ")", "result", "=", "remainder", ";", "else", "{", "end", "=", "i", "-", "8", ";", "if", "(", "end", "<", "0", ")", "end", "+=", "32", ";", "result", "=", "remainder", "&", "(", "(", "0x0ff", "<<", "end", ")", "|", "(", "(", "i", "<", "end", ")", "?", "(", "0xff", ">>", "(", "32", "-", "end", ")", ")", ":", "0", ")", ")", ";", "i", "-=", "8", ";", "}", "}", "else", "{", "i", "-=", "TARGET_ARM", "?", "2", ":", "1", ";", "continue", ";", "}", "if", "(", "TARGET_THUMB2", ")", "{", "b1", "=", "(", "remainder", "&", "0xff000000", ")", ">>", "24", ";", "b2", "=", "(", "remainder", "&", "0x00ff0000", ")", ">>", "16", ";", "b3", "=", "(", "remainder", "&", "0x0000ff00", ")", ">>", "8", ";", "b4", "=", "remainder", "&", "0xff", ";", "if", "(", "loc", ">", "24", ")", "{", "unsigned", "int", "tmp", "=", "b1", "&", "b2", "&", "b3", "&", "b4", ";", "unsigned", "int", "tmp2", "=", "tmp", "+", "(", "tmp", "<<", "8", ")", "+", "(", "tmp", "<<", "16", ")", "+", "(", "tmp", "<<", "24", ")", ";", "unsigned", "int", "matching_bytes", "=", "(", "tmp", "==", "b1", ")", "+", "(", "tmp", "==", "b2", ")", "+", "(", "tmp", "==", "b3", ")", "+", "(", "tmp", "==", "b4", ")", ";", "if", "(", "tmp", "&&", "(", "matching_bytes", ">=", "3", "||", "(", "matching_bytes", "==", "2", "&&", "const_ok_for_op", "(", "remainder", "&", "~", "tmp2", ",", "code", ")", ")", ")", ")", "{", "result", "=", "tmp2", ";", "i", "=", "tmp", "!=", "b1", "?", "32", ":", "tmp", "!=", "b2", "?", "24", ":", "tmp", "!=", "b3", "?", "16", ":", "8", ";", "}", "else", "if", "(", "b1", "==", "b3", "&&", "(", "!", "b2", "||", "!", "b4", "||", "(", "remainder", "&", "0x00ff0000", "&", "~", "result", ")", ")", ")", "{", "result", "=", "remainder", "&", "0xff00ff00", ";", "i", "=", "24", ";", "}", "}", "else", "if", "(", "loc", ">", "16", ")", "{", "if", "(", "b2", "==", "b4", ")", "{", "result", "=", "remainder", "&", "0x00ff00ff", ";", "i", "=", "16", ";", "}", "}", "}", "return_sequence", "->", "i", "[", "insns", "++", "]", "=", "result", ";", "remainder", "&=", "~", "result", ";", "if", "(", "code", "==", "SET", "||", "code", "==", "MINUS", ")", "code", "=", "PLUS", ";", "}", "while", "(", "remainder", ")", ";", "return", "insns", ";", "}", ""], "natrual_language": ["As", "for", "optimal_immediate_sequence", ",", "but", "starting", "at", "bit-position", "I", "."], "TS_V_token": ["arm", "0xffffffff", "0", "4", "0", "32", "3", "2", "1", "1", "12", "8", "0", "32", "0x0ff", "0xff", "32", "0", "8", "2", "1", "0xff000000", "24", "0x00ff0000", "16", "0x0000ff00", "8", "0xff", "24", "8", "16", "24", "3", "2", "32", "24", "16", "8", "0x00ff0000", "0xff00ff00", "24", "16", "0x00ff00ff", "16"], "File": "arm", "Func": "optimal_immediate_sequence_1", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45221, "Length": 462}
{"ground_truth": ["", "const", "char", "*", "output_add_immediate", "(", "rtx", "*", "operands", ")", "{", "HOST_WIDE_INT", "n", "=", "INTVAL", "(", "operands", "[", "2", "]", ")", ";", "if", "(", "n", "!=", "0", "||", "REGNO", "(", "operands", "[", "0", "]", ")", "!=", "REGNO", "(", "operands", "[", "1", "]", ")", ")", "{", "if", "(", "n", "<", "0", ")", "output_multi_immediate", "(", "operands", ",", "\"sub%?\\t%0, %1, %2\"", ",", "\"sub%?\\t%0, %0, %2\"", ",", "2", ",", "-", "n", ")", ";", "else", "output_multi_immediate", "(", "operands", ",", "\"add%?\\t%0, %1, %2\"", ",", "\"add%?\\t%0, %0, %2\"", ",", "2", ",", "n", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "an", "ADD", "r", ",", "s", ",", "#", "n", "where", "n", "may", "be", "too", "big", "for", "one", "instruction", ".", "If", "adding", "zero", "to", "one", "register", ",", "output", "nothing", "."], "TS_V_token": ["arm", "2", "0", "0", "1", "0", "\"sub%?\\t%0, %1, %2\"", "\"sub%?\\t%0, %0, %2\"", "2", "\"add%?\\t%0, %1, %2\"", "\"add%?\\t%0, %0, %2\"", "2", "\"\""], "File": "arm", "Func": "output_add_immediate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45222, "Length": 83}
{"ground_truth": ["", "const", "char", "*", "output_call", "(", "rtx", "*", "operands", ")", "{", "gcc_assert", "(", "!", "arm_arch5t", ")", ";", "if", "(", "REGNO", "(", "operands", "[", "0", "]", ")", "==", "LR_REGNUM", ")", "{", "operands", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "IP_REGNUM", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %|lr\"", ",", "operands", ")", ";", "}", "output_asm_insn", "(", "\"mov%?\\t%|lr, %|pc\"", ",", "operands", ")", ";", "if", "(", "TARGET_INTERWORK", "||", "arm_arch4t", ")", "output_asm_insn", "(", "\"bx%?\\t%0\"", ",", "operands", ")", ";", "else", "output_asm_insn", "(", "\"mov%?\\t%|pc, %0\"", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["INSN", "is", "either", "a", "function", "call", "or", "a", "millicode", "call", ".", "It", "may", "have", "an", "unconditional", "jump", "in", "its", "delay", "slot", ".", "CALL_DEST", "is", "the", "routine", "we", "are", "calling", "."], "TS_V_token": ["arm", "0", "0", "\"mov%?\\t%0, %|lr\"", "\"mov%?\\t%|lr, %|pc\"", "\"bx%?\\t%0\"", "\"mov%?\\t%|pc, %0\"", "\"\""], "File": "arm", "Func": "output_call", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45223, "Length": 81}
{"ground_truth": ["", "const", "char", "*", "output_move_quad", "(", "rtx", "*", "operands", ")", "{", "if", "(", "REG_P", "(", "operands", "[", "0", "]", ")", ")", "{", "if", "(", "MEM_P", "(", "operands", "[", "1", "]", ")", ")", "{", "switch", "(", "GET_CODE", "(", "XEXP", "(", "operands", "[", "1", "]", ",", "0", ")", ")", ")", "{", "case", "REG", ":", "output_asm_insn", "(", "\"ldmia%?\\t%m1, %M0\"", ",", "operands", ")", ";", "break", ";", "case", "LABEL_REF", ":", "case", "CONST", ":", "output_asm_insn", "(", "\"adr%?\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldmia%?\\t%0, %M0\"", ",", "operands", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "else", "{", "rtx", "ops", "[", "2", "]", ";", "int", "dest", ",", "src", ",", "i", ";", "gcc_assert", "(", "REG_P", "(", "operands", "[", "1", "]", ")", ")", ";", "dest", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "src", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "if", "(", "dest", "<", "src", ")", "for", "(", "i", "=", "0", ";", "i", "<", "4", ";", "i", "++", ")", "{", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "dest", "+", "i", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "src", "+", "i", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %1\"", ",", "ops", ")", ";", "}", "else", "for", "(", "i", "=", "3", ";", "i", ">=", "0", ";", "i", "--", ")", "{", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "dest", "+", "i", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "src", "+", "i", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %1\"", ",", "ops", ")", ";", "}", "}", "}", "else", "{", "gcc_assert", "(", "MEM_P", "(", "operands", "[", "0", "]", ")", ")", ";", "gcc_assert", "(", "REG_P", "(", "operands", "[", "1", "]", ")", ")", ";", "gcc_assert", "(", "!", "reg_overlap_mentioned_p", "(", "operands", "[", "1", "]", ",", "operands", "[", "0", "]", ")", ")", ";", "switch", "(", "GET_CODE", "(", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ")", ")", "{", "case", "REG", ":", "output_asm_insn", "(", "\"stm%?\\t%m0, %M1\"", ",", "operands", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "assembler", "code", "to", "perform", "a", "quadword", "move", "insn", "with", "operands", "OPERANDS", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "\"ldmia%?\\t%m1, %M0\"", "\"adr%?\\t%0, %1\"", "\"ldmia%?\\t%0, %M0\"", "2", "1", "0", "1", "0", "4", "0", "1", "\"mov%?\\t%0, %1\"", "3", "0", "0", "1", "\"mov%?\\t%0, %1\"", "0", "1", "1", "0", "0", "0", "\"stm%?\\t%m0, %M1\"", "\"\""], "File": "arm", "Func": "output_move_quad", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45224, "Length": 326}
{"ground_truth": ["", "const", "char", "*", "output_move_vfp", "(", "rtx", "*", "operands", ")", "{", "rtx", "reg", ",", "mem", ",", "addr", ",", "ops", "[", "2", "]", ";", "int", "load", "=", "REG_P", "(", "operands", "[", "0", "]", ")", ";", "int", "dp", "=", "GET_MODE_SIZE", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ")", "==", "8", ";", "int", "sp", "=", "(", "!", "TARGET_VFP_FP16INST", "||", "GET_MODE_SIZE", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ")", "==", "4", ")", ";", "int", "integer_p", "=", "GET_MODE_CLASS", "(", "GET_MODE", "(", "operands", "[", "0", "]", ")", ")", "==", "MODE_INT", ";", "const", "char", "*", "templ", ";", "char", "buff", "[", "50", "]", ";", "machine_mode", "mode", ";", "reg", "=", "operands", "[", "!", "load", "]", ";", "mem", "=", "operands", "[", "load", "]", ";", "mode", "=", "GET_MODE", "(", "reg", ")", ";", "gcc_assert", "(", "REG_P", "(", "reg", ")", ")", ";", "gcc_assert", "(", "IS_VFP_REGNUM", "(", "REGNO", "(", "reg", ")", ")", ")", ";", "gcc_assert", "(", "(", "mode", "==", "HFmode", "&&", "TARGET_HARD_FLOAT", ")", "||", "mode", "==", "SFmode", "||", "mode", "==", "DFmode", "||", "mode", "==", "HImode", "||", "mode", "==", "SImode", "||", "mode", "==", "DImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_DREG_MODE", "(", "mode", ")", ")", ")", ";", "gcc_assert", "(", "MEM_P", "(", "mem", ")", ")", ";", "addr", "=", "XEXP", "(", "mem", ",", "0", ")", ";", "switch", "(", "GET_CODE", "(", "addr", ")", ")", "{", "case", "PRE_DEC", ":", "templ", "=", "\"v%smdb%%?.%s\\t%%0!, {%%%s1}%s\"", ";", "ops", "[", "0", "]", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "ops", "[", "1", "]", "=", "reg", ";", "break", ";", "case", "POST_INC", ":", "templ", "=", "\"v%smia%%?.%s\\t%%0!, {%%%s1}%s\"", ";", "ops", "[", "0", "]", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "ops", "[", "1", "]", "=", "reg", ";", "break", ";", "default", ":", "templ", "=", "\"v%sr%%?.%s\\t%%%s0, %%1%s\"", ";", "ops", "[", "0", "]", "=", "reg", ";", "ops", "[", "1", "]", "=", "mem", ";", "break", ";", "}", "sprintf", "(", "buff", ",", "templ", ",", "load", "?", "\"ld\"", ":", "\"st\"", ",", "dp", "?", "\"64\"", ":", "sp", "?", "\"32\"", ":", "\"16\"", ",", "dp", "?", "\"P\"", ":", "\"\"", ",", "integer_p", "?", "\"\\t%@ int\"", ":", "\"\"", ")", ";", "output_asm_insn", "(", "buff", ",", "ops", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "VFP", "load", "or", "store", "instruction", "."], "TS_V_token": ["arm", "2", "0", "0", "8", "0", "4", "0", "50", "0", "\"v%smdb%%?.%s\\t%%0!, {%%%s1}%s\"", "0", "0", "1", "\"v%smia%%?.%s\\t%%0!, {%%%s1}%s\"", "0", "0", "1", "\"v%sr%%?.%s\\t%%%s0, %%1%s\"", "0", "1", "\"ld\"", "\"st\"", "\"64\"", "\"32\"", "\"16\"", "\"P\"", "\"\"", "\"\\t%@ int\"", "\"\"", "\"\""], "File": "arm", "Func": "output_move_vfp", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45225, "Length": 331}
{"ground_truth": ["", "const", "char", "*", "output_mov_long_double_arm_from_arm", "(", "rtx", "*", "operands", ")", "{", "int", "dest_start", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "int", "src_start", "=", "REGNO", "(", "operands", "[", "1", "]", ")", ";", "rtx", "ops", "[", "2", "]", ";", "int", "i", ";", "if", "(", "dest_start", "<", "src_start", ")", "{", "for", "(", "i", "=", "0", ";", "i", "<", "3", ";", "i", "++", ")", "{", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "dest_start", "+", "i", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "src_start", "+", "i", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %1\"", ",", "ops", ")", ";", "}", "}", "else", "{", "for", "(", "i", "=", "2", ";", "i", ">=", "0", ";", "i", "--", ")", "{", "ops", "[", "0", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "dest_start", "+", "i", ")", ";", "ops", "[", "1", "]", "=", "gen_rtx_REG", "(", "SImode", ",", "src_start", "+", "i", ")", ";", "output_asm_insn", "(", "\"mov%?\\t%0, %1\"", ",", "ops", ")", ";", "}", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "move", "from", "arm", "registers", "to", "arm", "registers", "of", "a", "long", "double", "OPERANDS", "[", "0", "]", "is", "the", "destination", ".", "OPERANDS", "[", "1", "]", "is", "the", "source", "."], "TS_V_token": ["arm", "0", "1", "2", "0", "3", "0", "1", "\"mov%?\\t%0, %1\"", "2", "0", "0", "1", "\"mov%?\\t%0, %1\"", "\"\""], "File": "arm", "Func": "output_mov_long_double_arm_from_arm", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45226, "Length": 156}
{"ground_truth": ["", "static", "const", "char", "*", "output_multi_immediate", "(", "rtx", "*", "operands", ",", "const", "char", "*", "instr1", ",", "const", "char", "*", "instr2", ",", "int", "immed_op", ",", "HOST_WIDE_INT", "n", ")", "{", "n", "&=", "0xffffffff", ";", "if", "(", "n", "==", "0", ")", "{", "operands", "[", "immed_op", "]", "=", "const0_rtx", ";", "output_asm_insn", "(", "instr1", ",", "operands", ")", ";", "}", "else", "{", "int", "i", ";", "const", "char", "*", "instr", "=", "instr1", ";", "for", "(", "i", "=", "0", ";", "i", "<", "32", ";", "i", "+=", "2", ")", "{", "if", "(", "n", "&", "(", "3", "<<", "i", ")", ")", "{", "operands", "[", "immed_op", "]", "=", "GEN_INT", "(", "n", "&", "(", "255", "<<", "i", ")", ")", ";", "output_asm_insn", "(", "instr", ",", "operands", ")", ";", "instr", "=", "instr2", ";", "i", "+=", "6", ";", "}", "}", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "multiple", "immediate", "operation", ".", "OPERANDS", "is", "the", "vector", "of", "operands", "referred", "to", "in", "the", "output", "patterns", ".", "INSTR1", "is", "the", "output", "pattern", "to", "use", "for", "the", "first", "constant", ".", "INSTR2", "is", "the", "output", "pattern", "to", "use", "for", "subsequent", "constants", ".", "IMMED_OP", "is", "the", "index", "of", "the", "constant", "slot", "in", "OPERANDS", ".", "N", "is", "the", "constant", "value", "."], "TS_V_token": ["arm", "0xffffffff", "0", "0", "32", "2", "3", "255", "6", "\"\""], "File": "arm", "Func": "output_multi_immediate", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45227, "Length": 129}
{"ground_truth": ["", "const", "char", "*", "output_probe_stack_range", "(", "rtx", "reg1", ",", "rtx", "reg2", ")", "{", "static", "int", "labelno", "=", "0", ";", "char", "loop_lab", "[", "32", "]", ";", "rtx", "xops", "[", "2", "]", ";", "ASM_GENERATE_INTERNAL_LABEL", "(", "loop_lab", ",", "\"LPSRL\"", ",", "labelno", "++", ")", ";", "ASM_OUTPUT_INTERNAL_LABEL", "(", "asm_out_file", ",", "loop_lab", ")", ";", "xops", "[", "0", "]", "=", "reg1", ";", "xops", "[", "1", "]", "=", "GEN_INT", "(", "PROBE_INTERVAL", ")", ";", "output_asm_insn", "(", "\"sub\\t%0, %0, %1\"", ",", "xops", ")", ";", "output_asm_insn", "(", "\"str\\tr0, [%0, #0]\"", ",", "xops", ")", ";", "xops", "[", "1", "]", "=", "reg2", ";", "output_asm_insn", "(", "\"cmp\\t%0, %1\"", ",", "xops", ")", ";", "fputs", "(", "\"\\tbne\\t\"", ",", "asm_out_file", ")", ";", "assemble_name_raw", "(", "asm_out_file", ",", "loop_lab", ")", ";", "fputc", "(", "'\\n'", ",", "asm_out_file", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Wrapper", "around", "the", "output_probe_stack_range", "routines", "."], "TS_V_token": ["arm", "0", "32", "2", "\"LPSRL\"", "0", "1", "\"sub\\t%0, %0, %1\"", "\"str\\tr0, [%0, #0]\"", "1", "\"cmp\\t%0, %1\"", "\"\\tbne\\t\"", "\"\""], "File": "arm", "Func": "output_probe_stack_range", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45228, "Length": 117}
{"ground_truth": ["", "static", "int", "pcrel_constant_p", "(", "rtx", "x", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "==", "MINUS", ")", "return", "symbol_mentioned_p", "(", "XEXP", "(", "x", ",", "0", ")", ")", "&&", "label_mentioned_p", "(", "XEXP", "(", "x", ",", "1", ")", ")", ";", "return", "FALSE", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "this", "rtx", "is", "the", "difference", "of", "a", "symbol", "and", "a", "label", ",", "and", "will", "reduce", "to", "a", "PC-relative", "relocation", "in", "the", "object", "file", ".", "Expressions", "like", "this", "can", "be", "left", "alone", "when", "generating", "PIC", ",", "rather", "than", "forced", "through", "the", "GOT", "."], "TS_V_token": ["arm", "0", "1"], "File": "arm", "Func": "pcrel_constant_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45229, "Length": 42}
{"ground_truth": ["", "static", "void", "push_minipool_barrier", "(", "rtx_insn", "*", "insn", ",", "HOST_WIDE_INT", "address", ")", "{", "Mfix", "*", "fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "fix", ")", ")", ";", "fix", "->", "insn", "=", "insn", ";", "fix", "->", "address", "=", "address", ";", "fix", "->", "next", "=", "NULL", ";", "if", "(", "minipool_fix_head", "!=", "NULL", ")", "minipool_fix_tail", "->", "next", "=", "fix", ";", "else", "minipool_fix_head", "=", "fix", ";", "minipool_fix_tail", "=", "fix", ";", "}", ""], "natrual_language": ["Record", "that", "there", "is", "a", "natural", "barrier", "in", "the", "insn", "stream", "at", "ADDRESS", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "push_minipool_barrier", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45230, "Length": 72}
{"ground_truth": ["", "static", "void", "push_minipool_fix", "(", "rtx_insn", "*", "insn", ",", "HOST_WIDE_INT", "address", ",", "rtx", "*", "loc", ",", "machine_mode", "mode", ",", "rtx", "value", ")", "{", "gcc_assert", "(", "!", "arm_disable_literal_pool", ")", ";", "Mfix", "*", "fix", "=", "(", "Mfix", "*", ")", "obstack_alloc", "(", "&", "minipool_obstack", ",", "sizeof", "(", "*", "fix", ")", ")", ";", "fix", "->", "insn", "=", "insn", ";", "fix", "->", "address", "=", "address", ";", "fix", "->", "loc", "=", "loc", ";", "fix", "->", "mode", "=", "mode", ";", "fix", "->", "fix_size", "=", "MINIPOOL_FIX_SIZE", "(", "mode", ")", ";", "fix", "->", "value", "=", "value", ";", "fix", "->", "forwards", "=", "get_attr_pool_range", "(", "insn", ")", ";", "fix", "->", "backwards", "=", "get_attr_neg_pool_range", "(", "insn", ")", ";", "fix", "->", "minipool", "=", "NULL", ";", "gcc_assert", "(", "fix", "->", "forwards", "||", "fix", "->", "backwards", ")", ";", "if", "(", "ARM_DOUBLEWORD_ALIGN", "&&", "fix", "->", "fix_size", ">=", "8", ")", "minipool_pad", "=", "4", ";", "if", "(", "dump_file", ")", "{", "fprintf", "(", "dump_file", ",", "\";; %smode fixup for i%d; addr %lu, range (%ld,%ld): \"", ",", "GET_MODE_NAME", "(", "mode", ")", ",", "INSN_UID", "(", "insn", ")", ",", "(", "unsigned", "long", ")", "address", ",", "-", "1", "*", "(", "long", ")", "fix", "->", "backwards", ",", "(", "long", ")", "fix", "->", "forwards", ")", ";", "arm_print_value", "(", "dump_file", ",", "fix", "->", "value", ")", ";", "fprintf", "(", "dump_file", ",", "\"\\n\"", ")", ";", "}", "fix", "->", "next", "=", "NULL", ";", "if", "(", "minipool_fix_head", "!=", "NULL", ")", "minipool_fix_tail", "->", "next", "=", "fix", ";", "else", "minipool_fix_head", "=", "fix", ";", "minipool_fix_tail", "=", "fix", ";", "}", ""], "natrual_language": ["Record", "INSN", ",", "which", "will", "need", "fixing", "up", "to", "load", "a", "value", "from", "the", "minipool", ".", "ADDRESS", "is", "the", "offset", "of", "the", "insn", "since", "the", "start", "of", "the", "function", ";", "LOC", "is", "a", "pointer", "to", "the", "part", "of", "the", "insn", "which", "requires", "fixing", ";", "VALUE", "is", "the", "constant", "that", "must", "be", "loaded", ",", "which", "is", "of", "type", "MODE", "."], "TS_V_token": ["arm", "8", "4", "\";; %smode fixup for i%d; addr %lu, range (%ld,%ld): \"", "1", "\"\\n\""], "File": "arm", "Func": "push_minipool_fix", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45231, "Length": 226}
{"ground_truth": ["", "static", "void", "release_scratch_register_on_entry", "(", "struct", "scratch_reg", "*", "sr", ")", "{", "if", "(", "sr", "->", "saved", ")", "{", "rtx", "addr", "=", "gen_rtx_POST_INC", "(", "Pmode", ",", "stack_pointer_rtx", ")", ";", "rtx", "insn", "=", "emit_set_insn", "(", "sr", "->", "reg", ",", "gen_frame_mem", "(", "SImode", ",", "addr", ")", ")", ";", "rtx", "x", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "4", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "add_reg_note", "(", "insn", ",", "REG_FRAME_RELATED_EXPR", ",", "x", ")", ";", "}", "}", ""], "natrual_language": ["Release", "a", "scratch", "register", "obtained", "from", "the", "preceding", "function", ".", "If", "RELEASE_VIA_POP", "is", "true", ",", "we", "just", "pop", "the", "register", "off", "the", "stack", "to", "release", "it", ".", "This", "is", "what", "non-Linux", "systems", "use", "with", "-fstack-check", ".", "Otherwise", "we", "use", "OFFSET", "to", "locate", "the", "saved", "register", "and", "the", "allocated", "stack", "space", "becomes", "part", "of", "the", "local", "frame", "and", "is", "deallocated", "by", "the", "epilogue", "."], "TS_V_token": ["arm", "4", "1"], "File": "arm", "Func": "release_scratch_register_on_entry", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45232, "Length": 79}
{"ground_truth": ["", "static", "void", "require_pic_register", "(", "rtx", "pic_reg", ",", "bool", "compute_now", ")", "{", "gcc_assert", "(", "compute_now", "==", "(", "pic_reg", "!=", "NULL_RTX", ")", ")", ";", "if", "(", "!", "crtl", "->", "uses_pic_offset_table", "||", "compute_now", ")", "{", "gcc_assert", "(", "can_create_pseudo_p", "(", ")", "||", "(", "pic_reg", "!=", "NULL_RTX", "&&", "REG_P", "(", "pic_reg", ")", "&&", "GET_MODE", "(", "pic_reg", ")", "==", "Pmode", ")", ")", ";", "if", "(", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "!", "compute_now", "&&", "!", "(", "TARGET_THUMB1", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", ")", ")", "{", "if", "(", "!", "cfun", "->", "machine", "->", "pic_reg", ")", "cfun", "->", "machine", "->", "pic_reg", "=", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ";", "if", "(", "current_ir_type", "(", ")", "!=", "IR_GIMPLE", "||", "currently_expanding_to_rtl", ")", "crtl", "->", "uses_pic_offset_table", "=", "1", ";", "}", "else", "{", "rtx_insn", "*", "seq", ",", "*", "insn", ";", "if", "(", "pic_reg", "==", "NULL_RTX", ")", "pic_reg", "=", "gen_reg_rtx", "(", "Pmode", ")", ";", "if", "(", "!", "cfun", "->", "machine", "->", "pic_reg", ")", "cfun", "->", "machine", "->", "pic_reg", "=", "pic_reg", ";", "if", "(", "current_ir_type", "(", ")", "!=", "IR_GIMPLE", "||", "currently_expanding_to_rtl", ")", "{", "crtl", "->", "uses_pic_offset_table", "=", "1", ";", "start_sequence", "(", ")", ";", "if", "(", "TARGET_THUMB1", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "arm_pic_register", ">", "LAST_LO_REGNUM", "&&", "!", "compute_now", ")", "emit_move_insn", "(", "cfun", "->", "machine", "->", "pic_reg", ",", "gen_rtx_REG", "(", "Pmode", ",", "arm_pic_register", ")", ")", ";", "else", "arm_load_pic_register", "(", "0UL", ",", "pic_reg", ")", ";", "seq", "=", "get_insns", "(", ")", ";", "end_sequence", "(", ")", ";", "for", "(", "insn", "=", "seq", ";", "insn", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "if", "(", "INSN_P", "(", "insn", ")", ")", "INSN_LOCATION", "(", "insn", ")", "=", "prologue_location", ";", "if", "(", "currently_expanding_to_rtl", ")", "insert_insn_on_edge", "(", "seq", ",", "single_succ_edge", "(", "ENTRY_BLOCK_PTR_FOR_FN", "(", "cfun", ")", ")", ")", ";", "else", "emit_insn", "(", "seq", ")", ";", "}", "}", "}", "}", ""], "natrual_language": ["Record", "that", "the", "current", "function", "needs", "a", "PIC", "register", ".", "Initialize", "cfun-", ">", "machine-", ">", "pic_reg", "if", "we", "have", "not", "already", "done", "so", "."], "TS_V_token": ["arm", "1", "1", "0UL"], "File": "arm", "Func": "require_pic_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45233, "Length": 280}
{"ground_truth": ["", "void", "save_restore_target_globals", "(", "tree", "new_tree", ")", "{", "if", "(", "TREE_TARGET_GLOBALS", "(", "new_tree", ")", ")", "restore_target_globals", "(", "TREE_TARGET_GLOBALS", "(", "new_tree", ")", ")", ";", "else", "if", "(", "new_tree", "==", "target_option_default_node", ")", "restore_target_globals", "(", "&", "default_target_globals", ")", ";", "else", "{", "TREE_TARGET_GLOBALS", "(", "new_tree", ")", "=", "save_target_globals_default_opts", "(", ")", ";", "}", "arm_option_params_internal", "(", ")", ";", "}", ""], "natrual_language": ["Restore", "or", "save", "the", "TREE_TARGET_GLOBALS", "from", "or", "to", "NEW_TREE", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "save_restore_target_globals", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45234, "Length": 52}
{"ground_truth": ["", "static", "rtx", "shifter_op_p", "(", "rtx", "op", ",", "rtx", "*", "shift_reg", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "op", ")", ";", "if", "(", "code", "==", "MULT", "&&", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", "&&", "exact_log2", "(", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", ">", "0", ")", "return", "XEXP", "(", "op", ",", "0", ")", ";", "else", "if", "(", "code", "==", "ROTATE", "&&", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "return", "XEXP", "(", "op", ",", "0", ")", ";", "else", "if", "(", "code", "==", "ROTATERT", "||", "code", "==", "ASHIFT", "||", "code", "==", "LSHIFTRT", "||", "code", "==", "ASHIFTRT", ")", "{", "if", "(", "!", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "*", "shift_reg", "=", "XEXP", "(", "op", ",", "1", ")", ";", "return", "XEXP", "(", "op", ",", "0", ")", ";", "}", "return", "NULL", ";", "}", ""], "natrual_language": ["Helper", "function", "for", "arm_rtx_costs", ".", "If", "the", "operand", "is", "a", "valid", "shift", "operand", ",", "then", "return", "the", "operand", "that", "is", "being", "shifted", ".", "If", "the", "shift", "is", "not", "by", "a", "constant", ",", "then", "set", "SHIFT_REG", "to", "point", "to", "the", "operand", ".", "Return", "NULL", "if", "OP", "is", "not", "a", "shifter", "operand", "."], "TS_V_token": ["arm", "1", "1", "0", "0", "1", "0", "1", "1", "0"], "File": "arm", "Func": "shifter_op_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45235, "Length": 141}
{"ground_truth": ["", "static", "const", "char", "*", "shift_op", "(", "rtx", "op", ",", "HOST_WIDE_INT", "*", "amountp", ")", "{", "const", "char", "*", "mnem", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "op", ")", ";", "switch", "(", "code", ")", "{", "case", "ROTATE", ":", "if", "(", "!", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "code", "=", "ROTATERT", ";", "*", "amountp", "=", "32", "-", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ";", "mnem", "=", "\"ror\"", ";", "break", ";", "case", "ASHIFT", ":", "case", "ASHIFTRT", ":", "case", "LSHIFTRT", ":", "case", "ROTATERT", ":", "mnem", "=", "arm_shift_nmem", "(", "code", ")", ";", "if", "(", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "*", "amountp", "=", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", ";", "}", "else", "if", "(", "REG_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "*", "amountp", "=", "-", "1", ";", "return", "mnem", ";", "}", "else", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "break", ";", "case", "MULT", ":", "if", "(", "!", "CONST_INT_P", "(", "XEXP", "(", "op", ",", "1", ")", ")", ")", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "*", "amountp", "=", "INTVAL", "(", "XEXP", "(", "op", ",", "1", ")", ")", "&", "0xFFFFFFFF", ";", "if", "(", "*", "amountp", "&", "(", "*", "amountp", "-", "1", ")", ")", "{", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "*", "amountp", "=", "exact_log2", "(", "*", "amountp", ")", ";", "gcc_assert", "(", "IN_RANGE", "(", "*", "amountp", ",", "0", ",", "31", ")", ")", ";", "return", "ARM_LSL_NAME", ";", "default", ":", "output_operand_lossage", "(", "\"invalid shift operand\"", ")", ";", "return", "NULL", ";", "}", "if", "(", "code", "==", "ROTATERT", ")", "*", "amountp", "&=", "31", ";", "else", "if", "(", "*", "amountp", "!=", "(", "*", "amountp", "&", "31", ")", ")", "{", "if", "(", "code", "==", "ASHIFT", ")", "mnem", "=", "\"lsr\"", ";", "*", "amountp", "=", "32", ";", "}", "if", "(", "*", "amountp", "==", "0", ")", "return", "NULL", ";", "return", "mnem", ";", "}", ""], "natrual_language": ["Ensure", "valid", "constant", "shifts", "and", "return", "the", "appropriate", "shift", "mnemonic", "for", "the", "operation", "code", ".", "The", "returned", "result", "should", "not", "be", "overwritten", ".", "OP", "is", "the", "rtx", "code", "of", "the", "shift", ".", "On", "exit", ",", "*", "AMOUNTP", "will", "be", "-1", "if", "the", "shift", "is", "by", "a", "register", ",", "or", "a", "constant", "shift", "."], "TS_V_token": ["arm", "1", "\"invalid shift operand\"", "32", "1", "\"ror\"", "1", "1", "1", "1", "\"invalid shift operand\"", "1", "\"invalid shift operand\"", "1", "0xFFFFFFFF", "1", "\"invalid shift operand\"", "0", "31", "\"invalid shift operand\"", "31", "31", "\"lsr\"", "32", "0"], "File": "arm", "Func": "shift_op", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45236, "Length": 321}
{"ground_truth": ["", "int", "simd_immediate_valid_for_move", "(", "rtx", "op", ",", "machine_mode", "mode", ",", "rtx", "*", "modconst", ",", "int", "*", "elementwidth", ")", "{", "rtx", "tmpconst", ";", "int", "tmpwidth", ";", "int", "retval", "=", "simd_valid_immediate", "(", "op", ",", "mode", ",", "0", ",", "&", "tmpconst", ",", "&", "tmpwidth", ")", ";", "if", "(", "retval", "==", "-", "1", ")", "return", "0", ";", "if", "(", "modconst", ")", "*", "modconst", "=", "tmpconst", ";", "if", "(", "elementwidth", ")", "*", "elementwidth", "=", "tmpwidth", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "legal", "for", "use", "as", "either", "a", "Neon", "or", "MVE", "VMOV", "(", "or", ",", "implicitly", ",", "VMVN", ")", "immediate", ".", "Write", "back", "width", "per", "element", "to", "*", "ELEMENTWIDTH", "(", "or", "zero", "for", "float", "elements", ")", ",", "and", "a", "modified", "constant", "(", "whatever", "should", "be", "output", "for", "a", "VMOV", ")", "in", "*", "MODCONST", ".", "``", "neon_immediate_valid_for_move", "''", "function", "is", "modified", "to", "``", "simd_immediate_valid_for_move", "''", "as", "this", "function", "will", "be", "used", "both", "by", "neon", "and", "mve", "."], "TS_V_token": ["arm", "0", "1", "0", "1"], "File": "arm", "Func": "simd_immediate_valid_for_move", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45237, "Length": 74}
{"ground_truth": ["", "static", "rtx", "strip_carry_operation", "(", "rtx", "op", ")", "{", "gcc_assert", "(", "GET_CODE", "(", "op", ")", "==", "PLUS", ")", ";", "if", "(", "arm_carry_operation", "(", "XEXP", "(", "op", ",", "0", ")", ",", "GET_MODE", "(", "op", ")", ")", ")", "return", "XEXP", "(", "op", ",", "1", ")", ";", "else", "if", "(", "arm_carry_operation", "(", "XEXP", "(", "op", ",", "1", ")", ",", "GET_MODE", "(", "op", ")", ")", ")", "return", "XEXP", "(", "op", ",", "0", ")", ";", "return", "op", ";", "}", ""], "natrual_language": ["Helper", "function", "for", "arm_rtx_costs", ".", "If", "one", "operand", "of", "the", "OP", ",", "a", "PLUS", ",", "adds", "the", "carry", "flag", ",", "then", "return", "the", "other", "operand", ".", "If", "neither", "is", "a", "carry", ",", "return", "OP", "unchanged", "."], "TS_V_token": ["arm", "0", "1", "1", "0"], "File": "arm", "Func": "strip_carry_operation", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45238, "Length": 73}
{"ground_truth": ["", "int", "symbol_mentioned_p", "(", "rtx", "x", ")", "{", "const", "char", "*", "fmt", ";", "int", "i", ";", "if", "(", "SYMBOL_REF_P", "(", "x", ")", ")", "return", "1", ";", "if", "(", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_TLS", ")", "return", "0", ";", "fmt", "=", "GET_RTX_FORMAT", "(", "GET_CODE", "(", "x", ")", ")", ";", "for", "(", "i", "=", "GET_RTX_LENGTH", "(", "GET_CODE", "(", "x", ")", ")", "-", "1", ";", "i", ">=", "0", ";", "i", "--", ")", "{", "if", "(", "fmt", "[", "i", "]", "==", "'E'", ")", "{", "int", "j", ";", "for", "(", "j", "=", "XVECLEN", "(", "x", ",", "i", ")", "-", "1", ";", "j", ">=", "0", ";", "j", "--", ")", "if", "(", "symbol_mentioned_p", "(", "XVECEXP", "(", "x", ",", "i", ",", "j", ")", ")", ")", "return", "1", ";", "}", "else", "if", "(", "fmt", "[", "i", "]", "==", "'e'", "&&", "symbol_mentioned_p", "(", "XEXP", "(", "x", ",", "i", ")", ")", ")", "return", "1", ";", "}", "return", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "X", "references", "a", "SYMBOL_REF", "."], "TS_V_token": ["arm", "1", "1", "0", "1", "0", "1", "0", "1", "1", "0"], "File": "arm", "Func": "symbol_mentioned_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45239, "Length": 157}
{"ground_truth": ["", "static", "int", "thumb1_base_register_rtx_p", "(", "rtx", "x", ",", "machine_mode", "mode", ",", "int", "strict_p", ")", "{", "int", "regno", ";", "if", "(", "!", "REG_P", "(", "x", ")", ")", "return", "0", ";", "regno", "=", "REGNO", "(", "x", ")", ";", "if", "(", "strict_p", ")", "return", "THUMB1_REGNO_MODE_OK_FOR_BASE_P", "(", "regno", ",", "mode", ")", ";", "return", "(", "regno", "<=", "LAST_LO_REGNUM", "||", "regno", ">", "LAST_VIRTUAL_REGISTER", "||", "regno", "==", "FRAME_POINTER_REGNUM", "||", "(", "GET_MODE_SIZE", "(", "mode", ")", ">=", "4", "&&", "(", "regno", "==", "STACK_POINTER_REGNUM", "||", "regno", ">=", "FIRST_PSEUDO_REGISTER", "||", "x", "==", "hard_frame_pointer_rtx", "||", "x", "==", "arg_pointer_rtx", ")", ")", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "valid", "as", "a", "16-bit", "Thumb", "state", "base", "register", "."], "TS_V_token": ["arm", "0", "4"], "File": "arm", "Func": "thumb1_base_register_rtx_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45240, "Length": 90}
{"ground_truth": ["", "static", "unsigned", "long", "thumb1_compute_save_core_reg_mask", "(", "void", ")", "{", "unsigned", "long", "mask", ";", "unsigned", "reg", ";", "mask", "=", "0", ";", "for", "(", "reg", "=", "0", ";", "reg", "<", "12", ";", "reg", "++", ")", "if", "(", "df_regs_ever_live_p", "(", "reg", ")", "&&", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "if", "(", "frame_pointer_needed", ")", "mask", "|=", "1", "<<", "HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "flag_pic", "&&", "!", "TARGET_SINGLE_PIC_BASE", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "crtl", "->", "uses_pic_offset_table", ")", "mask", "|=", "1", "<<", "PIC_OFFSET_TABLE_REGNUM", ";", "if", "(", "!", "frame_pointer_needed", "&&", "CALLER_INTERWORKING_SLOT_SIZE", ">", "0", ")", "mask", "|=", "1", "<<", "ARM_HARD_FRAME_POINTER_REGNUM", ";", "if", "(", "mask", "&", "0xff", "||", "thumb_force_lr_save", "(", ")", ")", "mask", "|=", "(", "1", "<<", "LR_REGNUM", ")", ";", "bool", "call_clobbered_scratch", "=", "(", "thumb1_prologue_unused_call_clobbered_lo_regs", "(", ")", "&&", "thumb1_epilogue_unused_call_clobbered_lo_regs", "(", ")", ")", ";", "if", "(", "(", "mask", "&", "0xff", ")", "==", "0", "&&", "!", "call_clobbered_scratch", "&&", "(", "(", "mask", "&", "0x0f00", ")", "||", "TARGET_BACKTRACE", ")", ")", "{", "reg", "=", "thumb_find_work_register", "(", "1", "<<", "LAST_LO_REGNUM", ")", ";", "if", "(", "reg", "*", "UNITS_PER_WORD", "<=", "(", "unsigned", ")", "arm_size_return_regs", "(", ")", ")", "reg", "=", "LAST_LO_REGNUM", ";", "if", "(", "callee_saved_reg_p", "(", "reg", ")", ")", "mask", "|=", "1", "<<", "reg", ";", "}", "if", "(", "(", "CALLER_INTERWORKING_SLOT_SIZE", "+", "ROUND_UP_WORD", "(", "get_frame_size", "(", ")", ")", "+", "crtl", "->", "outgoing_args_size", ")", ">=", "504", ")", "{", "for", "(", "reg", "=", "LAST_ARG_REGNUM", "+", "1", ";", "reg", "<=", "LAST_LO_REGNUM", ";", "reg", "++", ")", "if", "(", "mask", "&", "(", "1", "<<", "reg", ")", ")", "break", ";", "if", "(", "reg", ">", "LAST_LO_REGNUM", ")", "{", "mask", "|=", "1", "<<", "LAST_LO_REGNUM", ";", "}", "}", "return", "mask", ";", "}", ""], "natrual_language": ["Compute", "a", "bit", "mask", "of", "which", "core", "registers", "need", "to", "be", "saved", "on", "the", "stack", "for", "the", "current", "function", "."], "TS_V_token": ["arm", "0", "0", "12", "1", "1", "1", "0", "1", "0xff", "1", "0xff", "0", "0x0f00", "1", "1", "504", "1", "1", "1"], "File": "arm", "Func": "thumb1_compute_save_core_reg_mask", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45241, "Length": 257}
{"ground_truth": ["", "static", "rtx_insn", "*", "thumb1_emit_multi_reg_push", "(", "unsigned", "long", "mask", ",", "unsigned", "long", "real_regs", ")", "{", "unsigned", "long", "regno", ";", "rtx", "par", "[", "10", "]", ",", "tmp", ",", "reg", ";", "rtx_insn", "*", "insn", ";", "int", "i", ",", "j", ";", "for", "(", "i", "=", "0", ";", "mask", ";", "++", "i", ",", "mask", "&=", "mask", "-", "1", ")", "{", "regno", "=", "ctz_hwi", "(", "mask", ")", ";", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ";", "if", "(", "i", "==", "0", ")", "tmp", "=", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ";", "else", "tmp", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "par", "[", "i", "]", "=", "tmp", ";", "}", "tmp", "=", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "i", ")", ";", "tmp", "=", "gen_rtx_PRE_MODIFY", "(", "Pmode", ",", "stack_pointer_rtx", ",", "tmp", ")", ";", "tmp", "=", "gen_frame_mem", "(", "BLKmode", ",", "tmp", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "tmp", ",", "par", "[", "0", "]", ")", ";", "par", "[", "0", "]", "=", "tmp", ";", "tmp", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "gen_rtvec_v", "(", "i", ",", "par", ")", ")", ";", "insn", "=", "emit_insn", "(", "tmp", ")", ";", "tmp", "=", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "4", "*", "i", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "tmp", ")", ";", "par", "[", "0", "]", "=", "tmp", ";", "for", "(", "j", "=", "0", ";", "real_regs", ";", "++", "j", ",", "real_regs", "&=", "real_regs", "-", "1", ")", "{", "regno", "=", "ctz_hwi", "(", "real_regs", ")", ";", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "regno", ")", ";", "tmp", "=", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "j", "*", "4", ")", ";", "tmp", "=", "gen_frame_mem", "(", "SImode", ",", "tmp", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "tmp", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "par", "[", "j", "+", "1", "]", "=", "tmp", ";", "}", "if", "(", "j", "==", "0", ")", "tmp", "=", "par", "[", "0", "]", ";", "else", "{", "RTX_FRAME_RELATED_P", "(", "par", "[", "0", "]", ")", "=", "1", ";", "tmp", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "gen_rtvec_v", "(", "j", "+", "1", ",", "par", ")", ")", ";", "}", "add_reg_note", "(", "insn", ",", "REG_FRAME_RELATED_EXPR", ",", "tmp", ")", ";", "return", "insn", ";", "}", ""], "natrual_language": ["Like", "emit_multi_reg_push", ",", "but", "allowing", "for", "a", "different", "set", "of", "registers", "to", "be", "described", "as", "saved", ".", "MASK", "is", "the", "set", "of", "registers", "to", "be", "saved", ";", "REAL_REGS", "is", "the", "set", "of", "registers", "to", "be", "described", "as", "saved", ".", "If", "REAL_REGS", "is", "0", ",", "only", "describe", "the", "stack", "adjustment", "."], "TS_V_token": ["arm", "10", "0", "1", "0", "1", "4", "0", "0", "4", "0", "0", "1", "4", "1", "1", "0", "0", "0", "1", "1"], "File": "arm", "Func": "thumb1_emit_multi_reg_push", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45242, "Length": 352}
{"ground_truth": ["", "static", "unsigned", "long", "thumb1_epilogue_unused_call_clobbered_lo_regs", "(", "void", ")", "{", "unsigned", "long", "mask", "=", "0", ";", "bitmap", "epilogue_live_in", "=", "df_get_live_in", "(", "EXIT_BLOCK_PTR_FOR_FN", "(", "cfun", ")", ")", ";", "for", "(", "int", "reg", "=", "FIRST_LO_REGNUM", ";", "reg", "<=", "LAST_LO_REGNUM", ";", "reg", "++", ")", "if", "(", "!", "callee_saved_reg_p", "(", "reg", ")", "&&", "!", "REGNO_REG_SET_P", "(", "epilogue_live_in", ",", "reg", ")", ")", "mask", "|=", "1", "<<", "(", "reg", "-", "FIRST_LO_REGNUM", ")", ";", "return", "mask", ";", "}", ""], "natrual_language": ["Similarly", "for", "the", "start", "of", "the", "epilogue", "."], "TS_V_token": ["arm", "0", "1"], "File": "arm", "Func": "thumb1_epilogue_unused_call_clobbered_lo_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45243, "Length": 69}
{"ground_truth": ["", "static", "int", "thumb1_extra_regs_pushed", "(", "arm_stack_offsets", "*", "offsets", ",", "bool", "for_prologue", ")", "{", "HOST_WIDE_INT", "amount", ";", "unsigned", "long", "live_regs_mask", "=", "offsets", "->", "saved_regs_mask", ";", "unsigned", "long", "l_mask", "=", "live_regs_mask", "&", "(", "for_prologue", "?", "0x40ff", ":", "0xff", ")", ";", "unsigned", "long", "high_regs_pushed", "=", "bit_count", "(", "live_regs_mask", "&", "0x0f00", ")", ";", "int", "n_free", ",", "reg_base", ",", "size", ";", "if", "(", "!", "for_prologue", "&&", "frame_pointer_needed", ")", "amount", "=", "offsets", "->", "locals_base", "-", "offsets", "->", "saved_regs", ";", "else", "amount", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "!", "optimize_size", "&&", "amount", "!=", "512", ")", "return", "0", ";", "if", "(", "high_regs_pushed", "!=", "0", ")", "return", "0", ";", "if", "(", "l_mask", "==", "0", "&&", "(", "for_prologue", "||", "TARGET_BACKTRACE", "||", "(", "live_regs_mask", "&", "1", "<<", "LR_REGNUM", ")", "==", "0", "||", "TARGET_INTERWORK", "||", "crtl", "->", "args", ".", "pretend_args_size", "!=", "0", ")", ")", "return", "0", ";", "if", "(", "for_prologue", "&&", "(", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", ")", "||", "(", "!", "frame_pointer_needed", "&&", "CALLER_INTERWORKING_SLOT_SIZE", ">", "0", ")", ")", ")", "return", "0", ";", "reg_base", "=", "0", ";", "n_free", "=", "0", ";", "if", "(", "!", "for_prologue", ")", "{", "size", "=", "arm_size_return_regs", "(", ")", ";", "reg_base", "=", "ARM_NUM_INTS", "(", "size", ")", ";", "live_regs_mask", ">>=", "reg_base", ";", "}", "while", "(", "reg_base", "+", "n_free", "<", "8", "&&", "!", "(", "live_regs_mask", "&", "1", ")", "&&", "(", "for_prologue", "||", "call_used_or_fixed_reg_p", "(", "reg_base", "+", "n_free", ")", ")", ")", "{", "live_regs_mask", ">>=", "1", ";", "n_free", "++", ";", "}", "if", "(", "n_free", "==", "0", ")", "return", "0", ";", "gcc_assert", "(", "amount", "/", "4", "*", "4", "==", "amount", ")", ";", "if", "(", "amount", ">=", "512", "&&", "(", "amount", "-", "n_free", "*", "4", ")", "<", "512", ")", "return", "(", "amount", "-", "508", ")", "/", "4", ";", "if", "(", "amount", "<=", "n_free", "*", "4", ")", "return", "amount", "/", "4", ";", "return", "0", ";", "}", ""], "natrual_language": ["Given", "the", "stack", "offsets", "and", "register", "mask", "in", "OFFSETS", ",", "decide", "how", "many", "additional", "registers", "to", "push", "instead", "of", "subtracting", "a", "constant", "from", "SP", ".", "For", "epilogues", "the", "principle", "is", "the", "same", "except", "we", "use", "pop", ".", "FOR_PROLOGUE", "indicates", "which", "we", "'re", "generating", "."], "TS_V_token": ["arm", "0x40ff", "0xff", "0x0f00", "512", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "8", "1", "1", "0", "0", "4", "4", "512", "4", "512", "508", "4", "4", "4", "0"], "File": "arm", "Func": "thumb1_extra_regs_pushed", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45244, "Length": 294}
{"ground_truth": ["", "void", "thumb1_final_prescan_insn", "(", "rtx_insn", "*", "insn", ")", "{", "if", "(", "flag_print_asm_name", ")", "asm_fprintf", "(", "asm_out_file", ",", "\"%@ 0x%04x\\n\"", ",", "INSN_ADDRESSES", "(", "INSN_UID", "(", "insn", ")", ")", ")", ";", "if", "(", "INSN_CODE", "(", "insn", ")", "!=", "CODE_FOR_cbranchsi4_insn", ")", "{", "enum", "attr_conds", "conds", ";", "if", "(", "cfun", "->", "machine", "->", "thumb1_cc_insn", ")", "{", "if", "(", "modified_in_p", "(", "cfun", "->", "machine", "->", "thumb1_cc_op0", ",", "insn", ")", "||", "modified_in_p", "(", "cfun", "->", "machine", "->", "thumb1_cc_op1", ",", "insn", ")", ")", "CC_STATUS_INIT", ";", "}", "conds", "=", "get_attr_conds", "(", "insn", ")", ";", "if", "(", "conds", "==", "CONDS_SET", ")", "{", "rtx", "set", "=", "single_set", "(", "insn", ")", ";", "cfun", "->", "machine", "->", "thumb1_cc_insn", "=", "insn", ";", "cfun", "->", "machine", "->", "thumb1_cc_op0", "=", "SET_DEST", "(", "set", ")", ";", "cfun", "->", "machine", "->", "thumb1_cc_op1", "=", "const0_rtx", ";", "cfun", "->", "machine", "->", "thumb1_cc_mode", "=", "CC_NZmode", ";", "if", "(", "INSN_CODE", "(", "insn", ")", "==", "CODE_FOR_thumb1_subsi3_insn", ")", "{", "rtx", "src1", "=", "XEXP", "(", "SET_SRC", "(", "set", ")", ",", "1", ")", ";", "if", "(", "src1", "==", "const0_rtx", ")", "cfun", "->", "machine", "->", "thumb1_cc_mode", "=", "CCmode", ";", "}", "else", "if", "(", "REG_P", "(", "SET_DEST", "(", "set", ")", ")", "&&", "REG_P", "(", "SET_SRC", "(", "set", ")", ")", ")", "{", "cfun", "->", "machine", "->", "thumb1_cc_op0", "=", "SET_SRC", "(", "set", ")", ";", "}", "}", "else", "if", "(", "conds", "!=", "CONDS_NOCOND", ")", "cfun", "->", "machine", "->", "thumb1_cc_insn", "=", "NULL_RTX", ";", "}", "if", "(", "cfun", "->", "machine", "->", "lr_save_eliminated", "&&", "get_attr_far_jump", "(", "insn", ")", "==", "FAR_JUMP_YES", ")", "internal_error", "(", "\"Unexpected thumb1 far jump\"", ")", ";", "}", ""], "natrual_language": ["Scan", "INSN", "just", "before", "assembler", "is", "output", "for", "it", ".", "For", "Thumb-1", ",", "we", "track", "the", "status", "of", "the", "condition", "codes", ";", "this", "information", "is", "used", "in", "the", "cbranchsi4_insn", "pattern", "."], "TS_V_token": ["arm", "\"%@ 0x%04x\\n\"", "1", "\"Unexpected thumb1 far jump\""], "File": "arm", "Func": "thumb1_final_prescan_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45245, "Length": 242}
{"ground_truth": ["", "void", "thumb1_gen_const_int", "(", "rtx", "op0", ",", "HOST_WIDE_INT", "op1", ")", "{", "bool", "mov_done_p", "=", "false", ";", "int", "i", ";", "for", "(", "i", "=", "0", ";", "i", "<", "3", ";", "i", "++", ")", "{", "int", "byte", "=", "(", "op1", ">>", "(", "8", "*", "(", "3", "-", "i", ")", ")", ")", "&", "0xff", ";", "if", "(", "byte", ")", "{", "emit_set_insn", "(", "op0", ",", "mov_done_p", "?", "gen_rtx_PLUS", "(", "SImode", ",", "op0", ",", "GEN_INT", "(", "byte", ")", ")", ":", "GEN_INT", "(", "byte", ")", ")", ";", "mov_done_p", "=", "true", ";", "}", "if", "(", "mov_done_p", ")", "emit_set_insn", "(", "op0", ",", "gen_rtx_ASHIFT", "(", "SImode", ",", "op0", ",", "GEN_INT", "(", "8", ")", ")", ")", ";", "}", "if", "(", "!", "mov_done_p", ")", "emit_set_insn", "(", "op0", ",", "GEN_INT", "(", "op1", "&", "0xff", ")", ")", ";", "else", "if", "(", "op1", "&", "0xff", ")", "emit_set_insn", "(", "op0", ",", "gen_rtx_PLUS", "(", "SImode", ",", "op0", ",", "GEN_INT", "(", "op1", "&", "0xff", ")", ")", ")", ";", "}", ""], "natrual_language": ["Emit", "a", "sequence", "of", "movs/adds/shift", "to", "produce", "a", "32-bit", "constant", ".", "Avoid", "generating", "useless", "code", "when", "one", "of", "the", "bytes", "is", "zero", "."], "TS_V_token": ["arm", "0", "3", "8", "3", "0xff", "8", "0xff", "0xff", "0xff"], "File": "arm", "Func": "thumb1_gen_const_int", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45246, "Length": 151}
{"ground_truth": ["", "void", "thumb1_gen_const_int_rtl", "(", "rtx", "dst", ",", "HOST_WIDE_INT", "op1", ")", "{", "thumb1_const_rtl", "t", "(", "dst", ")", ";", "thumb1_gen_const_int_1", "(", "t", ",", "op1", ")", ";", "}", ""], "natrual_language": ["Proxies", "for", "thumb1.md", ",", "since", "the", "thumb1_const_print", "and", "thumb1_const_rtl", "classes", "are", "not", "exported", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "thumb1_gen_const_int_rtl", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45247, "Length": 24}
{"ground_truth": ["", "inline", "static", "int", "thumb1_index_register_rtx_p", "(", "rtx", "x", ",", "int", "strict_p", ")", "{", "return", "thumb1_base_register_rtx_p", "(", "x", ",", "QImode", ",", "strict_p", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "x", "is", "a", "legitimate", "index", "register", ".", "This", "is", "the", "case", "for", "any", "base", "register", "that", "can", "access", "a", "QImode", "object", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "thumb1_index_register_rtx_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45248, "Length": 23}
{"ground_truth": ["", "rtx_insn", "*", "thumb1_md_asm_adjust", "(", "vec", "<", "rtx", ">", "&", "outputs", ",", "vec", "<", "rtx", ">", "&", ",", "vec", "<", "machine_mode", ">", "&", ",", "vec", "<", "const", "char", "*", ">", "&", "constraints", ",", "vec", "<", "rtx", ">", "&", ",", "HARD_REG_SET", "&", ",", "location_t", ")", "{", "for", "(", "unsigned", "i", "=", "0", ",", "n", "=", "outputs", ".", "length", "(", ")", ";", "i", "<", "n", ";", "++", "i", ")", "if", "(", "startswith", "(", "constraints", "[", "i", "]", ",", "\"=@cc\"", ")", ")", "{", "sorry", "(", "\"% flags not supported in thumb1 mode\"", ")", ";", "break", ";", "}", "return", "NULL", ";", "}", ""], "natrual_language": ["Worker", "function", "for", "TARGET_MD_ASM_ADJUST", ",", "while", "in", "thumb1", "mode", ".", "Unlike", "the", "arm", "version", ",", "we", "do", "NOT", "implement", "asm", "flag", "outputs", "."], "TS_V_token": ["arm", "0", "\"=@cc\"", "\"% flags not supported in thumb1 mode\""], "File": "arm", "Func": "thumb1_md_asm_adjust", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45249, "Length": 91}
{"ground_truth": ["", "const", "char", "*", "thumb1_output_casesi", "(", "rtx", "*", "operands", ")", "{", "rtx", "diff_vec", "=", "PATTERN", "(", "NEXT_INSN", "(", "as_a", "<", "rtx_insn", "*", ">", "(", "operands", "[", "0", "]", ")", ")", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "diff_vec", ")", "==", "ADDR_DIFF_VEC", ")", ";", "switch", "(", "GET_MODE", "(", "diff_vec", ")", ")", "{", "case", "E_QImode", ":", "return", "(", "ADDR_DIFF_VEC_FLAGS", "(", "diff_vec", ")", ".", "offset_unsigned", "?", "\"bl\\t%___gnu_thumb1_case_uqi\"", ":", "\"bl\\t%___gnu_thumb1_case_sqi\"", ")", ";", "case", "E_HImode", ":", "return", "(", "ADDR_DIFF_VEC_FLAGS", "(", "diff_vec", ")", ".", "offset_unsigned", "?", "\"bl\\t%___gnu_thumb1_case_uhi\"", ":", "\"bl\\t%___gnu_thumb1_case_shi\"", ")", ";", "case", "E_SImode", ":", "return", "\"bl\\t%___gnu_thumb1_case_si\"", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Output", "a", "Thumb-1", "casesi", "dispatch", "sequence", "."], "TS_V_token": ["arm", "0", "\"bl\\t%___gnu_thumb1_case_uqi\"", "\"bl\\t%___gnu_thumb1_case_sqi\"", "\"bl\\t%___gnu_thumb1_case_uhi\"", "\"bl\\t%___gnu_thumb1_case_shi\"", "\"bl\\t%___gnu_thumb1_case_si\""], "File": "arm", "Func": "thumb1_output_casesi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45250, "Length": 97}
{"ground_truth": ["", "const", "char", "*", "thumb1_output_interwork", "(", "void", ")", "{", "const", "char", "*", "name", ";", "FILE", "*", "f", "=", "asm_out_file", ";", "gcc_assert", "(", "MEM_P", "(", "DECL_RTL", "(", "current_function_decl", ")", ")", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "XEXP", "(", "DECL_RTL", "(", "current_function_decl", ")", ",", "0", ")", ")", "==", "SYMBOL_REF", ")", ";", "name", "=", "XSTR", "(", "XEXP", "(", "DECL_RTL", "(", "current_function_decl", ")", ",", "0", ")", ",", "0", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\torr\\t%r, %r, #1\\n\"", ",", "IP_REGNUM", ",", "PC_REGNUM", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\tbx\\t%r\\n\"", ",", "IP_REGNUM", ")", ";", "fprintf", "(", "f", ",", "\"\\t.code\\t16\\n\"", ")", ";", "if", "(", "arm_dllexport_name_p", "(", "name", ")", ")", "name", "=", "arm_strip_name_encoding", "(", "name", ")", ";", "asm_fprintf", "(", "f", ",", "\"\\t.globl %s%U%s\\n\"", ",", "STUB_NAME", ",", "name", ")", ";", "fprintf", "(", "f", ",", "\"\\t.thumb_func\\n\"", ")", ";", "asm_fprintf", "(", "f", ",", "\"%s%U%s:\\n\"", ",", "STUB_NAME", ",", "name", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Implementation", "of", "insn", "prologue_thumb1_interwork", ".", "This", "is", "the", "first", "``", "instruction", "''", "of", "a", "function", "called", "in", "ARM", "mode", ".", "Swap", "to", "thumb", "mode", "."], "TS_V_token": ["arm", "0", "0", "0", "\"\\torr\\t%r, %r, #1\\n\"", "\"\\tbx\\t%r\\n\"", "\"\\t.code\\t16\\n\"", "\"\\t.globl %s%U%s\\n\"", "\"\\t.thumb_func\\n\"", "\"%s%U%s:\\n\"", "\"\""], "File": "arm", "Func": "thumb1_output_interwork", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45251, "Length": 139}
{"ground_truth": ["", "static", "unsigned", "long", "thumb1_prologue_unused_call_clobbered_lo_regs", "(", "void", ")", "{", "unsigned", "long", "mask", "=", "0", ";", "bitmap", "prologue_live_out", "=", "df_get_live_out", "(", "ENTRY_BLOCK_PTR_FOR_FN", "(", "cfun", ")", ")", ";", "for", "(", "int", "reg", "=", "FIRST_LO_REGNUM", ";", "reg", "<=", "LAST_LO_REGNUM", ";", "reg", "++", ")", "if", "(", "!", "callee_saved_reg_p", "(", "reg", ")", "&&", "!", "REGNO_REG_SET_P", "(", "prologue_live_out", ",", "reg", ")", ")", "mask", "|=", "1", "<<", "(", "reg", "-", "FIRST_LO_REGNUM", ")", ";", "return", "mask", ";", "}", ""], "natrual_language": ["Return", "a", "mask", "for", "the", "call-clobbered", "low", "registers", "that", "are", "unused", "at", "the", "end", "of", "the", "prologue", "."], "TS_V_token": ["arm", "0", "1"], "File": "arm", "Func": "thumb1_prologue_unused_call_clobbered_lo_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45252, "Length": 69}
{"ground_truth": ["", "static", "void", "thumb1_reorg", "(", "void", ")", "{", "basic_block", "bb", ";", "FOR_EACH_BB_FN", "(", "bb", ",", "cfun", ")", "{", "rtx", "dest", ",", "src", ";", "rtx", "cmp", ",", "op0", ",", "op1", ",", "set", "=", "NULL", ";", "rtx_insn", "*", "prev", ",", "*", "insn", "=", "BB_END", "(", "bb", ")", ";", "bool", "insn_clobbered", "=", "false", ";", "while", "(", "insn", "!=", "BB_HEAD", "(", "bb", ")", "&&", "!", "NONDEBUG_INSN_P", "(", "insn", ")", ")", "insn", "=", "PREV_INSN", "(", "insn", ")", ";", "if", "(", "insn", "==", "BB_HEAD", "(", "bb", ")", "||", "INSN_CODE", "(", "insn", ")", "!=", "CODE_FOR_cbranchsi4_insn", ")", "continue", ";", "cmp", "=", "XEXP", "(", "SET_SRC", "(", "PATTERN", "(", "insn", ")", ")", ",", "0", ")", ";", "op0", "=", "XEXP", "(", "cmp", ",", "0", ")", ";", "op1", "=", "XEXP", "(", "cmp", ",", "1", ")", ";", "if", "(", "!", "CONST_INT_P", "(", "op1", ")", "||", "INTVAL", "(", "op1", ")", "!=", "0", ")", "continue", ";", "gcc_assert", "(", "insn", "!=", "BB_HEAD", "(", "bb", ")", ")", ";", "for", "(", "prev", "=", "PREV_INSN", "(", "insn", ")", ";", "(", "!", "insn_clobbered", "&&", "prev", "!=", "BB_HEAD", "(", "bb", ")", "&&", "(", "NOTE_P", "(", "prev", ")", "||", "DEBUG_INSN_P", "(", "prev", ")", "||", "(", "(", "set", "=", "single_set", "(", "prev", ")", ")", "!=", "NULL", "&&", "get_attr_conds", "(", "prev", ")", "==", "CONDS_NOCOND", ")", ")", ")", ";", "prev", "=", "PREV_INSN", "(", "prev", ")", ")", "{", "if", "(", "reg_set_p", "(", "op0", ",", "prev", ")", ")", "insn_clobbered", "=", "true", ";", "}", "if", "(", "insn_clobbered", ")", "continue", ";", "if", "(", "!", "set", ")", "continue", ";", "dest", "=", "SET_DEST", "(", "set", ")", ";", "src", "=", "SET_SRC", "(", "set", ")", ";", "if", "(", "!", "low_register_operand", "(", "dest", ",", "SImode", ")", "||", "!", "low_register_operand", "(", "src", ",", "SImode", ")", ")", "continue", ";", "if", "(", "REGNO", "(", "op0", ")", "==", "REGNO", "(", "src", ")", "||", "REGNO", "(", "op0", ")", "==", "REGNO", "(", "dest", ")", ")", "{", "dest", "=", "copy_rtx", "(", "dest", ")", ";", "src", "=", "copy_rtx", "(", "src", ")", ";", "src", "=", "gen_rtx_MINUS", "(", "SImode", ",", "src", ",", "const0_rtx", ")", ";", "PATTERN", "(", "prev", ")", "=", "gen_rtx_SET", "(", "dest", ",", "src", ")", ";", "INSN_CODE", "(", "prev", ")", "=", "-", "1", ";", "XEXP", "(", "cmp", ",", "0", ")", "=", "copy_rtx", "(", "dest", ")", ";", "INSN_CODE", "(", "insn", ")", "=", "-", "1", ";", "}", "}", "}", ""], "natrual_language": ["Rewrite", "move", "insn", "into", "subtract", "of", "0", "if", "the", "condition", "codes", "will", "be", "useful", "in", "next", "conditional", "jump", "insn", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "1", "0", "1"], "File": "arm", "Func": "thumb1_reorg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45253, "Length": 363}
{"ground_truth": ["", "const", "char", "*", "thumb1_unexpanded_epilogue", "(", "void", ")", "{", "arm_stack_offsets", "*", "offsets", ";", "int", "regno", ";", "unsigned", "long", "live_regs_mask", "=", "0", ";", "int", "high_regs_pushed", "=", "0", ";", "int", "extra_pop", ";", "int", "had_to_push_lr", ";", "int", "size", ";", "if", "(", "cfun", "->", "machine", "->", "return_used_this_function", "!=", "0", ")", "return", "\"\"", ";", "if", "(", "IS_NAKED", "(", "arm_current_func_type", "(", ")", ")", ")", "return", "\"\"", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "live_regs_mask", "=", "offsets", "->", "saved_regs_mask", ";", "high_regs_pushed", "=", "bit_count", "(", "live_regs_mask", "&", "0x0f00", ")", ";", "size", "=", "arm_size_return_regs", "(", ")", ";", "extra_pop", "=", "thumb1_extra_regs_pushed", "(", "offsets", ",", "false", ")", ";", "if", "(", "extra_pop", ">", "0", ")", "{", "unsigned", "long", "extra_mask", "=", "(", "1", "<<", "extra_pop", ")", "-", "1", ";", "live_regs_mask", "|=", "extra_mask", "<<", "ARM_NUM_INTS", "(", "size", ")", ";", "}", "if", "(", "high_regs_pushed", ")", "{", "unsigned", "long", "mask", "=", "live_regs_mask", "&", "0xff", ";", "int", "next_hi_reg", ";", "mask", "|=", "thumb1_epilogue_unused_call_clobbered_lo_regs", "(", ")", ";", "if", "(", "mask", "==", "0", ")", "internal_error", "(", "\"no low registers available for popping high registers\"", ")", ";", "for", "(", "next_hi_reg", "=", "12", ";", "next_hi_reg", ">", "LAST_LO_REGNUM", ";", "next_hi_reg", "--", ")", "if", "(", "live_regs_mask", "&", "(", "1", "<<", "next_hi_reg", ")", ")", "break", ";", "while", "(", "high_regs_pushed", ")", "{", "for", "(", "regno", "=", "LAST_LO_REGNUM", ";", "regno", ">=", "0", ";", "regno", "--", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "regno", ")", ")", "high_regs_pushed", "--", ";", "if", "(", "high_regs_pushed", "==", "0", ")", "break", ";", "}", "if", "(", "high_regs_pushed", "==", "0", "&&", "regno", ">=", "0", ")", "mask", "&=", "~", "(", "(", "1", "<<", "regno", ")", "-", "1", ")", ";", "thumb_pop", "(", "asm_out_file", ",", "mask", ")", ";", "for", "(", "regno", "=", "LAST_LO_REGNUM", ";", "regno", ">=", "0", ";", "regno", "--", ")", "{", "if", "(", "mask", "&", "(", "1", "<<", "regno", ")", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "next_hi_reg", ",", "regno", ")", ";", "for", "(", "next_hi_reg", "--", ";", "next_hi_reg", ">", "LAST_LO_REGNUM", ";", "next_hi_reg", "--", ")", "if", "(", "live_regs_mask", "&", "(", "1", "<<", "next_hi_reg", ")", ")", "break", ";", "}", "}", "}", "live_regs_mask", "&=", "~", "0x0f00", ";", "}", "had_to_push_lr", "=", "(", "live_regs_mask", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", "!=", "0", ";", "live_regs_mask", "&=", "0xff", ";", "if", "(", "crtl", "->", "args", ".", "pretend_args_size", "==", "0", "||", "TARGET_BACKTRACE", ")", "{", "if", "(", "had_to_push_lr", ")", "live_regs_mask", "|=", "1", "<<", "PC_REGNUM", ";", "if", "(", "live_regs_mask", ")", "thumb_pop", "(", "asm_out_file", ",", "live_regs_mask", ")", ";", "if", "(", "!", "had_to_push_lr", ")", "thumb_exit", "(", "asm_out_file", ",", "LR_REGNUM", ")", ";", "}", "else", "{", "if", "(", "live_regs_mask", ")", "thumb_pop", "(", "asm_out_file", ",", "live_regs_mask", ")", ";", "if", "(", "had_to_push_lr", ")", "{", "if", "(", "size", ">", "12", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "IP_REGNUM", ",", "LAST_ARG_REGNUM", ")", ";", "}", "thumb_pop", "(", "asm_out_file", ",", "1", "<<", "LAST_ARG_REGNUM", ")", ";", "if", "(", "size", ">", "12", ")", "{", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "LR_REGNUM", ",", "LAST_ARG_REGNUM", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tmov\\t%r, %r\\n\"", ",", "LAST_ARG_REGNUM", ",", "IP_REGNUM", ")", ";", "regno", "=", "LR_REGNUM", ";", "}", "else", "regno", "=", "LAST_ARG_REGNUM", ";", "}", "else", "regno", "=", "LR_REGNUM", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tadd\\t%r, %r, #%d\\n\"", ",", "SP_REGNUM", ",", "SP_REGNUM", ",", "crtl", "->", "args", ".", "pretend_args_size", ")", ";", "thumb_exit", "(", "asm_out_file", ",", "regno", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["The", "bits", "which", "are", "n't", "usefully", "expanded", "as", "rtl", "."], "TS_V_token": ["arm", "0", "0", "0", "\"\"", "\"\"", "0x0f00", "0", "1", "1", "0xff", "0", "\"no low registers available for popping high registers\"", "12", "1", "0", "1", "0", "0", "0", "1", "1", "0", "1", "\"\\tmov\\t%r, %r\\n\"", "1", "0x0f00", "1", "0", "0xff", "0", "1", "12", "\"\\tmov\\t%r, %r\\n\"", "1", "12", "\"\\tmov\\t%r, %r\\n\"", "\"\\tmov\\t%r, %r\\n\"", "\"\\tadd\\t%r, %r, #%d\\n\"", "\"\""], "File": "arm", "Func": "thumb1_unexpanded_epilogue", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45254, "Length": 508}
{"ground_truth": ["", "void", "thumb2_asm_output_opcode", "(", "FILE", "*", "stream", ")", "{", "char", "buff", "[", "5", "]", ";", "int", "n", ";", "if", "(", "arm_condexec_mask", ")", "{", "for", "(", "n", "=", "0", ";", "n", "<", "arm_condexec_masklen", ";", "n", "++", ")", "buff", "[", "n", "]", "=", "(", "arm_condexec_mask", "&", "(", "1", "<<", "n", ")", ")", "?", "'t'", ":", "'e'", ";", "buff", "[", "n", "]", "=", "0", ";", "asm_fprintf", "(", "stream", ",", "\"i%s\\t%s\\n\\t\"", ",", "buff", ",", "arm_condition_codes", "[", "arm_current_cc", "]", ")", ";", "arm_condexec_mask", "=", "0", ";", "}", "}", ""], "natrual_language": ["Output", "IT", "instructions", "."], "TS_V_token": ["arm", "5", "0", "1", "0", "\"i%s\\t%s\\n\\t\"", "0"], "File": "arm", "Func": "thumb2_asm_output_opcode", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45255, "Length": 81}
{"ground_truth": ["", "void", "thumb2_expand_return", "(", "bool", "simple_return", ")", "{", "int", "i", ",", "num_regs", ";", "unsigned", "long", "saved_regs_mask", ";", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "saved_regs_mask", "=", "offsets", "->", "saved_regs_mask", ";", "for", "(", "i", "=", "0", ",", "num_regs", "=", "0", ";", "i", "<=", "LAST_ARM_REGNUM", ";", "i", "++", ")", "if", "(", "saved_regs_mask", "&", "(", "1", "<<", "i", ")", ")", "num_regs", "++", ";", "if", "(", "!", "simple_return", "&&", "saved_regs_mask", ")", "{", "gcc_assert", "(", "!", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", ";", "if", "(", "num_regs", "==", "1", ")", "{", "rtx", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "2", ")", ")", ";", "rtx", "reg", "=", "gen_rtx_REG", "(", "SImode", ",", "PC_REGNUM", ")", ";", "rtx", "addr", "=", "gen_rtx_MEM", "(", "SImode", ",", "gen_rtx_POST_INC", "(", "SImode", ",", "stack_pointer_rtx", ")", ")", ";", "set_mem_alias_set", "(", "addr", ",", "get_frame_alias_set", "(", ")", ")", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "ret_rtx", ";", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", "=", "gen_rtx_SET", "(", "reg", ",", "addr", ")", ";", "RTX_FRAME_RELATED_P", "(", "XVECEXP", "(", "par", ",", "0", ",", "1", ")", ")", "=", "1", ";", "emit_jump_insn", "(", "par", ")", ";", "}", "else", "{", "saved_regs_mask", "&=", "~", "(", "1", "<<", "LR_REGNUM", ")", ";", "saved_regs_mask", "|=", "(", "1", "<<", "PC_REGNUM", ")", ";", "arm_emit_multi_reg_pop", "(", "saved_regs_mask", ")", ";", "}", "}", "else", "{", "if", "(", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", "cmse_nonsecure_entry_clear_before_return", "(", ")", ";", "emit_jump_insn", "(", "simple_return_rtx", ")", ";", "}", "}", ""], "natrual_language": ["Generate", "pattern", "*", "pop_multiple_with_stack_update_and_return", "if", "single", "POP", "instruction", "can", "be", "generated", ".", "LR", "should", "be", "replaced", "by", "PC", ".", "All", "the", "checks", "required", "are", "already", "done", "by", "USE_RETURN_INSN", "(", ")", ".", "Hence", ",", "all", "we", "really", "need", "to", "check", "here", "is", "if", "single", "register", "is", "to", "be", "returned", ",", "or", "multiple", "register", "return", "."], "TS_V_token": ["arm", "0", "0", "1", "1", "2", "0", "0", "0", "1", "0", "1", "1", "1", "1"], "File": "arm", "Func": "thumb2_expand_return", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45256, "Length": 230}
{"ground_truth": ["", "void", "thumb2_final_prescan_insn", "(", "rtx_insn", "*", "insn", ")", "{", "rtx_insn", "*", "first_insn", "=", "insn", ";", "rtx", "body", "=", "PATTERN", "(", "insn", ")", ";", "rtx", "predicate", ";", "enum", "arm_cond_code", "code", ";", "int", "n", ";", "int", "mask", ";", "int", "max", ";", "max", "=", "MAX_INSN_PER_IT_BLOCK", ";", "if", "(", "arm_condexec_count", ")", "arm_condexec_count", "--", ";", "if", "(", "arm_condexec_count", ")", "return", ";", "if", "(", "GET_CODE", "(", "body", ")", "!=", "COND_EXEC", ")", "return", ";", "if", "(", "JUMP_P", "(", "insn", ")", ")", "return", ";", "predicate", "=", "COND_EXEC_TEST", "(", "body", ")", ";", "arm_current_cc", "=", "get_arm_condition_code", "(", "predicate", ")", ";", "n", "=", "get_attr_ce_count", "(", "insn", ")", ";", "arm_condexec_count", "=", "1", ";", "arm_condexec_mask", "=", "(", "1", "<<", "n", ")", "-", "1", ";", "arm_condexec_masklen", "=", "n", ";", "for", "(", ";", ";", ")", "{", "insn", "=", "next_nonnote_insn", "(", "insn", ")", ";", "if", "(", "!", "NONJUMP_INSN_P", "(", "insn", ")", "&&", "!", "JUMP_P", "(", "insn", ")", ")", "break", ";", "body", "=", "PATTERN", "(", "insn", ")", ";", "if", "(", "GET_CODE", "(", "body", ")", "==", "USE", "||", "GET_CODE", "(", "body", ")", "==", "CLOBBER", ")", "continue", ";", "if", "(", "GET_CODE", "(", "body", ")", "!=", "COND_EXEC", ")", "break", ";", "n", "=", "get_attr_ce_count", "(", "insn", ")", ";", "if", "(", "arm_condexec_masklen", "+", "n", ">", "max", ")", "break", ";", "predicate", "=", "COND_EXEC_TEST", "(", "body", ")", ";", "code", "=", "get_arm_condition_code", "(", "predicate", ")", ";", "mask", "=", "(", "1", "<<", "n", ")", "-", "1", ";", "if", "(", "arm_current_cc", "==", "code", ")", "arm_condexec_mask", "|=", "(", "mask", "<<", "arm_condexec_masklen", ")", ";", "else", "if", "(", "arm_current_cc", "!=", "ARM_INVERSE_CONDITION_CODE", "(", "code", ")", ")", "break", ";", "arm_condexec_count", "++", ";", "arm_condexec_masklen", "+=", "n", ";", "if", "(", "JUMP_P", "(", "insn", ")", ")", "break", ";", "}", "extract_constrain_insn_cached", "(", "first_insn", ")", ";", "}", ""], "natrual_language": ["Tell", "arm_asm_output_opcode", "to", "output", "IT", "blocks", "for", "conditionally", "executed", "instructions", "."], "TS_V_token": ["arm", "1", "1", "1", "1", "1"], "File": "arm", "Func": "thumb2_final_prescan_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45257, "Length": 269}
{"ground_truth": ["", "static", "bool", "thumb2_index_mul_operand", "(", "rtx", "op", ")", "{", "HOST_WIDE_INT", "val", ";", "if", "(", "!", "CONST_INT_P", "(", "op", ")", ")", "return", "false", ";", "val", "=", "INTVAL", "(", "op", ")", ";", "return", "(", "val", "==", "1", "||", "val", "==", "2", "||", "val", "==", "4", "||", "val", "==", "8", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "OP", "is", "a", "valid", "index", "scaling", "factor", "for", "Thumb-2", "address", "index", "operand", ".", "i.e", ".", "1", ",", "2", ",", "4", "or", "8", "."], "TS_V_token": ["arm", "1", "2", "4", "8"], "File": "arm", "Func": "thumb2_index_mul_operand", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45258, "Length": 49}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_address_p", "(", "machine_mode", "mode", ",", "rtx", "x", ",", "int", "strict_p", ")", "{", "bool", "use_ldrd", ";", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "x", ")", ";", "if", "(", "TARGET_HAVE_MVE", "&&", "VALID_MVE_MODE", "(", "mode", ")", ")", "return", "mve_vector_mem_operand", "(", "mode", ",", "x", ",", "strict_p", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "x", ",", "strict_p", ")", ")", "return", "1", ";", "use_ldrd", "=", "(", "TARGET_LDRD", "&&", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", ")", ";", "if", "(", "code", "==", "POST_INC", "||", "code", "==", "PRE_DEC", "||", "(", "(", "code", "==", "PRE_INC", "||", "code", "==", "POST_DEC", ")", "&&", "(", "use_ldrd", "||", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", ")", "return", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", ";", "else", "if", "(", "(", "code", "==", "POST_MODIFY", "||", "code", "==", "PRE_MODIFY", ")", "&&", "arm_address_register_rtx_p", "(", "XEXP", "(", "x", ",", "0", ")", ",", "strict_p", ")", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "1", ")", ")", "==", "PLUS", "&&", "rtx_equal_p", "(", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "0", ")", ",", "XEXP", "(", "x", ",", "0", ")", ")", ")", "{", "rtx", "addend", "=", "XEXP", "(", "XEXP", "(", "x", ",", "1", ")", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", ";", "if", "(", "!", "CONST_INT_P", "(", "addend", ")", ")", "return", "0", ";", "offset", "=", "INTVAL", "(", "addend", ")", ";", "if", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", "return", "(", "offset", ">", "-", "256", "&&", "offset", "<", "256", ")", ";", "return", "(", "use_ldrd", "&&", "offset", ">", "-", "1024", "&&", "offset", "<", "1024", "&&", "(", "offset", "&", "3", ")", "==", "0", ")", ";", "}", "else", "if", "(", "reload_completed", "&&", "(", "code", "==", "LABEL_REF", "||", "(", "code", "==", "CONST", "&&", "GET_CODE", "(", "XEXP", "(", "x", ",", "0", ")", ")", "==", "PLUS", "&&", "GET_CODE", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "0", ")", ")", "==", "LABEL_REF", "&&", "CONST_INT_P", "(", "XEXP", "(", "XEXP", "(", "x", ",", "0", ")", ",", "1", ")", ")", ")", ")", ")", "return", "1", ";", "else", "if", "(", "mode", "==", "TImode", "||", "(", "TARGET_NEON", "&&", "VALID_NEON_STRUCT_MODE", "(", "mode", ")", ")", "||", "(", "TARGET_HAVE_MVE", "&&", "VALID_MVE_STRUCT_MODE", "(", "mode", ")", ")", ")", "return", "0", ";", "else", "if", "(", "code", "==", "PLUS", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xop0", ",", "strict_p", ")", "&&", "(", "thumb2_legitimate_index_p", "(", "mode", ",", "xop1", ",", "strict_p", ")", "||", "(", "!", "strict_p", "&&", "will_be_in_index_register", "(", "xop1", ")", ")", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xop1", ",", "strict_p", ")", "&&", "thumb2_legitimate_index_p", "(", "mode", ",", "xop0", ",", "strict_p", ")", ")", ")", ";", "}", "else", "if", "(", "can_avoid_literal_pool_for_label_p", "(", "x", ")", ")", "return", "0", ";", "else", "if", "(", "GET_MODE_CLASS", "(", "mode", ")", "!=", "MODE_FLOAT", "&&", "code", "==", "SYMBOL_REF", "&&", "CONSTANT_POOL_ADDRESS_P", "(", "x", ")", "&&", "!", "(", "flag_pic", "&&", "symbol_mentioned_p", "(", "get_pool_constant", "(", "x", ")", ")", "&&", "!", "pcrel_constant_p", "(", "get_pool_constant", "(", "x", ")", ")", ")", ")", "return", "1", ";", "return", "0", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "X", "is", "a", "valid", "Thumb-2", "address", "operand", "."], "TS_V_token": ["arm", "1", "4", "0", "0", "1", "1", "0", "0", "1", "1", "0", "4", "256", "256", "1024", "1024", "3", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "1", "0"], "File": "arm", "Func": "thumb2_legitimate_address_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45259, "Length": 490}
{"ground_truth": ["", "static", "int", "thumb2_legitimate_index_p", "(", "machine_mode", "mode", ",", "rtx", "index", ",", "int", "strict_p", ")", "{", "enum", "rtx_code", "code", "=", "GET_CODE", "(", "index", ")", ";", "if", "(", "TARGET_VFP_BASE", "&&", "(", "mode", "==", "SFmode", "||", "mode", "==", "DFmode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_REALLY_IWMMXT", "&&", "VALID_IWMMXT_REG_MODE", "(", "mode", ")", ")", "{", "if", "(", "!", "TARGET_LDRD", "||", "mode", "!=", "DImode", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "}", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_QREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1016", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "TARGET_NEON", "&&", "VALID_NEON_DREG_MODE", "(", "mode", ")", ")", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "1024", "&&", "INTVAL", "(", "index", ")", ">", "-", "1024", "&&", "(", "INTVAL", "(", "index", ")", "&", "3", ")", "==", "0", ")", ";", "if", "(", "arm_address_register_rtx_p", "(", "index", ",", "strict_p", ")", "&&", "(", "GET_MODE_SIZE", "(", "mode", ")", "<=", "4", ")", ")", "return", "1", ";", "if", "(", "mode", "==", "DImode", "||", "mode", "==", "DFmode", ")", "{", "if", "(", "code", "==", "CONST_INT", ")", "{", "HOST_WIDE_INT", "val", "=", "INTVAL", "(", "index", ")", ";", "if", "(", "TARGET_LDRD", ")", "return", "IN_RANGE", "(", "val", ",", "-", "1020", ",", "1020", ")", "&&", "(", "val", "&", "3", ")", "==", "0", ";", "else", "return", "IN_RANGE", "(", "val", ",", "-", "255", ",", "4095", "-", "4", ")", ";", "}", "else", "return", "0", ";", "}", "if", "(", "code", "==", "MULT", ")", "{", "rtx", "xiop0", "=", "XEXP", "(", "index", ",", "0", ")", ";", "rtx", "xiop1", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "(", "arm_address_register_rtx_p", "(", "xiop0", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop1", ")", ")", "||", "(", "arm_address_register_rtx_p", "(", "xiop1", ",", "strict_p", ")", "&&", "thumb2_index_mul_operand", "(", "xiop0", ")", ")", ")", ";", "}", "else", "if", "(", "code", "==", "ASHIFT", ")", "{", "rtx", "op", "=", "XEXP", "(", "index", ",", "1", ")", ";", "return", "(", "arm_address_register_rtx_p", "(", "XEXP", "(", "index", ",", "0", ")", ",", "strict_p", ")", "&&", "CONST_INT_P", "(", "op", ")", "&&", "INTVAL", "(", "op", ")", ">", "0", "&&", "INTVAL", "(", "op", ")", "<=", "3", ")", ";", "}", "return", "(", "code", "==", "CONST_INT", "&&", "INTVAL", "(", "index", ")", "<", "4096", "&&", "INTVAL", "(", "index", ")", ">", "-", "256", ")", ";", "}", ""], "natrual_language": ["Return", "nonzero", "if", "INDEX", "is", "a", "valid", "Thumb-2", "address", "index", "operand", "."], "TS_V_token": ["arm", "1024", "256", "3", "0", "1024", "1024", "3", "0", "1016", "1024", "3", "0", "1024", "1024", "3", "0", "4", "1", "1020", "1020", "3", "0", "255", "4095", "4", "0", "0", "1", "1", "0", "0", "3", "4096", "256"], "File": "arm", "Func": "thumb2_legitimate_index_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45260, "Length": 432}
{"ground_truth": ["", "const", "char", "*", "thumb2_output_casesi", "(", "rtx", "*", "operands", ")", "{", "rtx", "diff_vec", "=", "PATTERN", "(", "NEXT_INSN", "(", "as_a", "<", "rtx_insn", "*", ">", "(", "operands", "[", "2", "]", ")", ")", ")", ";", "gcc_assert", "(", "GET_CODE", "(", "diff_vec", ")", "==", "ADDR_DIFF_VEC", ")", ";", "output_asm_insn", "(", "\"cmp\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"bhi\\t%l3\"", ",", "operands", ")", ";", "switch", "(", "GET_MODE", "(", "diff_vec", ")", ")", "{", "case", "E_QImode", ":", "return", "\"tbb\\t[%|pc, %0]\"", ";", "case", "E_HImode", ":", "return", "\"tbh\\t[%|pc, %0, lsl #1]\"", ";", "case", "E_SImode", ":", "if", "(", "flag_pic", ")", "{", "output_asm_insn", "(", "\"adr\\t%4, %l2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%5, [%4, %0, lsl #2]\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"add\\t%4, %4, %5\"", ",", "operands", ")", ";", "return", "\"bx\\t%4\"", ";", "}", "else", "{", "output_asm_insn", "(", "\"adr\\t%4, %l2\"", ",", "operands", ")", ";", "return", "\"ldr\\t%|pc, [%4, %0, lsl #2]\"", ";", "}", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Output", "a", "Thumb-2", "casesi", "instruction", "."], "TS_V_token": ["arm", "2", "\"cmp\\t%0, %1\"", "\"bhi\\t%l3\"", "\"tbb\\t[%|pc, %0]\"", "\"tbh\\t[%|pc, %0, lsl #1]\"", "\"adr\\t%4, %l2\"", "\"ldr\\t%5, [%4, %0, lsl #2]\"", "\"add\\t%4, %4, %5\"", "\"bx\\t%4\"", "\"adr\\t%4, %l2\"", "\"ldr\\t%|pc, [%4, %0, lsl #2]\""], "File": "arm", "Func": "thumb2_output_casesi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45261, "Length": 129}
{"ground_truth": ["", "const", "char", "*", "thumb_call_via_reg", "(", "rtx", "reg", ")", "{", "int", "regno", "=", "REGNO", "(", "reg", ")", ";", "rtx", "*", "labelp", ";", "gcc_assert", "(", "regno", "<", "LR_REGNUM", ")", ";", "if", "(", "in_section", "==", "text_section", ")", "{", "thumb_call_reg_needed", "=", "1", ";", "if", "(", "thumb_call_via_label", "[", "regno", "]", "==", "NULL", ")", "thumb_call_via_label", "[", "regno", "]", "=", "gen_label_rtx", "(", ")", ";", "labelp", "=", "thumb_call_via_label", "+", "regno", ";", "}", "else", "{", "if", "(", "cfun", "->", "machine", "->", "call_via", "[", "regno", "]", "==", "NULL", ")", "cfun", "->", "machine", "->", "call_via", "[", "regno", "]", "=", "gen_label_rtx", "(", ")", ";", "labelp", "=", "cfun", "->", "machine", "->", "call_via", "+", "regno", ";", "}", "output_asm_insn", "(", "\"bl\\t%a0\"", ",", "labelp", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "a", "call-via", "instruction", "for", "thumb", "state", "."], "TS_V_token": ["arm", "1", "\"bl\\t%a0\"", "\"\""], "File": "arm", "Func": "thumb_call_via_reg", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45262, "Length": 114}
{"ground_truth": ["", "HOST_WIDE_INT", "thumb_compute_initial_elimination_offset", "(", "unsigned", "int", "from", ",", "unsigned", "int", "to", ")", "{", "arm_stack_offsets", "*", "offsets", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "switch", "(", "from", ")", "{", "case", "ARG_POINTER_REGNUM", ":", "switch", "(", "to", ")", "{", "case", "STACK_POINTER_REGNUM", ":", "return", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_args", ";", "case", "FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "soft_frame", "-", "offsets", "->", "saved_args", ";", "case", "ARM_HARD_FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "saved_regs", "-", "offsets", "->", "saved_args", ";", "case", "THUMB_HARD_FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "locals_base", "-", "offsets", "->", "saved_args", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "break", ";", "case", "FRAME_POINTER_REGNUM", ":", "switch", "(", "to", ")", "{", "case", "STACK_POINTER_REGNUM", ":", "return", "offsets", "->", "outgoing_args", "-", "offsets", "->", "soft_frame", ";", "case", "ARM_HARD_FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "saved_regs", "-", "offsets", "->", "soft_frame", ";", "case", "THUMB_HARD_FRAME_POINTER_REGNUM", ":", "return", "offsets", "->", "locals_base", "-", "offsets", "->", "soft_frame", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "}", ""], "natrual_language": ["Like", "arm_compute_initial_elimination", "offset", ".", "Simpler", "because", "there", "is", "n't", "an", "ABI", "specified", "frame", "pointer", "for", "Thumb", ".", "Instead", ",", "we", "set", "it", "to", "point", "at", "the", "base", "of", "the", "local", "variables", "after", "static", "stack", "space", "for", "a", "function", "has", "been", "allocated", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "thumb_compute_initial_elimination_offset", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45263, "Length": 153}
{"ground_truth": ["", "void", "thumb_expand_cpymemqi", "(", "rtx", "*", "operands", ")", "{", "rtx", "out", "=", "copy_to_mode_reg", "(", "SImode", ",", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ")", ";", "rtx", "in", "=", "copy_to_mode_reg", "(", "SImode", ",", "XEXP", "(", "operands", "[", "1", "]", ",", "0", ")", ")", ";", "HOST_WIDE_INT", "len", "=", "INTVAL", "(", "operands", "[", "2", "]", ")", ";", "HOST_WIDE_INT", "offset", "=", "0", ";", "while", "(", "len", ">=", "12", ")", "{", "emit_insn", "(", "gen_cpymem12b", "(", "out", ",", "in", ",", "out", ",", "in", ")", ")", ";", "len", "-=", "12", ";", "}", "if", "(", "len", ">=", "8", ")", "{", "emit_insn", "(", "gen_cpymem8b", "(", "out", ",", "in", ",", "out", ",", "in", ")", ")", ";", "len", "-=", "8", ";", "}", "if", "(", "len", ">=", "4", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "SImode", ")", ";", "emit_insn", "(", "gen_movsi", "(", "reg", ",", "gen_rtx_MEM", "(", "SImode", ",", "in", ")", ")", ")", ";", "emit_insn", "(", "gen_movsi", "(", "gen_rtx_MEM", "(", "SImode", ",", "out", ")", ",", "reg", ")", ")", ";", "len", "-=", "4", ";", "offset", "+=", "4", ";", "}", "if", "(", "len", ">=", "2", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "HImode", ")", ";", "emit_insn", "(", "gen_movhi", "(", "reg", ",", "gen_rtx_MEM", "(", "HImode", ",", "plus_constant", "(", "Pmode", ",", "in", ",", "offset", ")", ")", ")", ")", ";", "emit_insn", "(", "gen_movhi", "(", "gen_rtx_MEM", "(", "HImode", ",", "plus_constant", "(", "Pmode", ",", "out", ",", "offset", ")", ")", ",", "reg", ")", ")", ";", "len", "-=", "2", ";", "offset", "+=", "2", ";", "}", "if", "(", "len", ")", "{", "rtx", "reg", "=", "gen_reg_rtx", "(", "QImode", ")", ";", "emit_insn", "(", "gen_movqi", "(", "reg", ",", "gen_rtx_MEM", "(", "QImode", ",", "plus_constant", "(", "Pmode", ",", "in", ",", "offset", ")", ")", ")", ")", ";", "emit_insn", "(", "gen_movqi", "(", "gen_rtx_MEM", "(", "QImode", ",", "plus_constant", "(", "Pmode", ",", "out", ",", "offset", ")", ")", ",", "reg", ")", ")", ";", "}", "}", ""], "natrual_language": ["Routines", "for", "generating", "rtl", "."], "TS_V_token": ["arm", "0", "0", "1", "0", "2", "0", "12", "12", "8", "8", "4", "4", "4", "2", "2", "2"], "File": "arm", "Func": "thumb_expand_cpymemqi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45264, "Length": 293}
{"ground_truth": ["", "static", "int", "thumb_far_jump_used_p", "(", "void", ")", "{", "rtx_insn", "*", "insn", ";", "bool", "far_jump", "=", "false", ";", "unsigned", "int", "func_size", "=", "0", ";", "if", "(", "cfun", "->", "machine", "->", "far_jump_used", ")", "return", "1", ";", "if", "(", "!", "(", "ARM_DOUBLEWORD_ALIGN", "||", "reload_completed", ")", ")", "{", "if", "(", "df_regs_ever_live_p", "(", "ARG_POINTER_REGNUM", ")", ")", "cfun", "->", "machine", "->", "arg_pointer_live", "=", "1", ";", "else", "if", "(", "!", "cfun", "->", "machine", "->", "arg_pointer_live", ")", "return", "0", ";", "}", "if", "(", "reload_in_progress", "||", "reload_completed", ")", "return", "0", ";", "for", "(", "insn", "=", "get_insns", "(", ")", ";", "insn", ";", "insn", "=", "NEXT_INSN", "(", "insn", ")", ")", "{", "if", "(", "JUMP_P", "(", "insn", ")", "&&", "get_attr_far_jump", "(", "insn", ")", "==", "FAR_JUMP_YES", ")", "{", "far_jump", "=", "true", ";", "}", "func_size", "+=", "get_attr_length", "(", "insn", ")", ";", "}", "if", "(", "far_jump", ")", "{", "if", "(", "(", "func_size", "*", "3", ")", ">=", "2048", ")", "{", "cfun", "->", "machine", "->", "far_jump_used", "=", "1", ";", "return", "1", ";", "}", "}", "return", "0", ";", "}", ""], "natrual_language": ["Returns", "non-zero", "if", "the", "current", "function", "contains", ",", "or", "might", "contain", "a", "far", "jump", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "0", "3", "2048", "1", "1", "0"], "File": "arm", "Func": "thumb_far_jump_used_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45265, "Length": 160}
{"ground_truth": ["", "static", "int", "thumb_find_work_register", "(", "unsigned", "long", "pushed_regs_mask", ")", "{", "int", "reg", ";", "unsigned", "long", "unused_regs", "=", "thumb1_prologue_unused_call_clobbered_lo_regs", "(", ")", ";", "for", "(", "reg", "=", "LAST_LO_REGNUM", ";", "reg", ">=", "FIRST_LO_REGNUM", ";", "reg", "--", ")", "if", "(", "unused_regs", "&", "(", "1", "<<", "(", "reg", "-", "FIRST_LO_REGNUM", ")", ")", ")", "return", "reg", ";", "for", "(", "reg", "=", "LAST_LO_REGNUM", ";", "reg", ">", "LAST_ARG_REGNUM", ";", "reg", "--", ")", "if", "(", "pushed_regs_mask", "&", "(", "1", "<<", "reg", ")", ")", "return", "reg", ";", "if", "(", "TARGET_THUMB2", ")", "{", "for", "(", "reg", "=", "FIRST_HI_REGNUM", ";", "reg", "<", "15", ";", "reg", "++", ")", "if", "(", "pushed_regs_mask", "&", "(", "1", "<<", "reg", ")", ")", "return", "reg", ";", "}", "gcc_unreachable", "(", ")", ";", "}", ""], "natrual_language": ["Find", "a", "spare", "low", "register", "to", "use", "during", "the", "prolog", "of", "a", "function", "."], "TS_V_token": ["arm", "1", "1", "15", "1"], "File": "arm", "Func": "thumb_find_work_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45266, "Length": 113}
{"ground_truth": ["", "static", "bool", "thumb_force_lr_save", "(", "void", ")", "{", "return", "!", "cfun", "->", "machine", "->", "lr_save_eliminated", "&&", "(", "!", "crtl", "->", "is_leaf", "||", "thumb_far_jump_used_p", "(", ")", "||", "df_regs_ever_live_p", "(", "LR_REGNUM", ")", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "the", "current", "function", "needs", "to", "save/restore", "LR", "."], "TS_V_token": ["arm"], "File": "arm", "Func": "thumb_force_lr_save", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45267, "Length": 32}
{"ground_truth": ["", "int", "thumb_legitimate_offset_p", "(", "machine_mode", "mode", ",", "HOST_WIDE_INT", "val", ")", "{", "switch", "(", "GET_MODE_SIZE", "(", "mode", ")", ")", "{", "case", "1", ":", "return", "val", ">=", "0", "&&", "val", "<", "32", ";", "case", "2", ":", "return", "val", ">=", "0", "&&", "val", "<", "64", "&&", "(", "val", "&", "1", ")", "==", "0", ";", "default", ":", "return", "(", "val", ">=", "0", "&&", "(", "val", "+", "GET_MODE_SIZE", "(", "mode", ")", ")", "<=", "128", "&&", "(", "val", "&", "3", ")", "==", "0", ")", ";", "}", "}", ""], "natrual_language": ["Return", "nonzero", "if", "VAL", "can", "be", "used", "as", "an", "offset", "in", "a", "Thumb-state", "address", "instruction", "of", "mode", "MODE", "."], "TS_V_token": ["arm", "1", "0", "32", "2", "0", "64", "1", "0", "0", "128", "3", "0"], "File": "arm", "Func": "thumb_legitimate_offset_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45268, "Length": 80}
{"ground_truth": ["", "rtx", "thumb_legitimize_address", "(", "rtx", "x", ",", "rtx", "orig_x", ",", "machine_mode", "mode", ")", "{", "if", "(", "GET_CODE", "(", "x", ")", "==", "PLUS", "&&", "CONST_INT_P", "(", "XEXP", "(", "x", ",", "1", ")", ")", "&&", "(", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", ">=", "32", "*", "GET_MODE_SIZE", "(", "mode", ")", "||", "INTVAL", "(", "XEXP", "(", "x", ",", "1", ")", ")", "<", "0", ")", ")", "{", "rtx", "xop0", "=", "XEXP", "(", "x", ",", "0", ")", ";", "rtx", "xop1", "=", "XEXP", "(", "x", ",", "1", ")", ";", "HOST_WIDE_INT", "offset", "=", "INTVAL", "(", "xop1", ")", ";", "if", "(", "optimize_size", "&&", "offset", ">=", "0", "&&", "offset", "<", "256", "+", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ")", "{", "HOST_WIDE_INT", "delta", ";", "if", "(", "offset", ">=", "256", ")", "delta", "=", "offset", "-", "(", "256", "-", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "else", "if", "(", "offset", "<", "32", "*", "GET_MODE_SIZE", "(", "mode", ")", "+", "8", ")", "delta", "=", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ";", "else", "delta", "=", "offset", "&", "(", "~", "31", "*", "GET_MODE_SIZE", "(", "mode", ")", ")", ";", "xop0", "=", "force_operand", "(", "plus_constant", "(", "Pmode", ",", "xop0", ",", "offset", "-", "delta", ")", ",", "NULL_RTX", ")", ";", "x", "=", "plus_constant", "(", "Pmode", ",", "xop0", ",", "delta", ")", ";", "}", "else", "if", "(", "offset", "<", "0", "&&", "offset", ">", "-", "256", ")", "x", "=", "force_operand", "(", "x", ",", "NULL_RTX", ")", ";", "else", "{", "xop1", "=", "force_reg", "(", "SImode", ",", "xop1", ")", ";", "x", "=", "gen_rtx_PLUS", "(", "SImode", ",", "xop0", ",", "xop1", ")", ";", "}", "}", "else", "if", "(", "GET_CODE", "(", "x", ")", "==", "PLUS", "&&", "s_register_operand", "(", "XEXP", "(", "x", ",", "1", ")", ",", "SImode", ")", "&&", "!", "s_register_operand", "(", "XEXP", "(", "x", ",", "0", ")", ",", "SImode", ")", ")", "{", "rtx", "xop0", "=", "force_operand", "(", "XEXP", "(", "x", ",", "0", ")", ",", "NULL_RTX", ")", ";", "x", "=", "gen_rtx_PLUS", "(", "SImode", ",", "xop0", ",", "XEXP", "(", "x", ",", "1", ")", ")", ";", "}", "if", "(", "flag_pic", ")", "{", "rtx", "new_x", "=", "legitimize_pic_address", "(", "orig_x", ",", "mode", ",", "NULL_RTX", ",", "NULL_RTX", ",", "false", ")", ";", "if", "(", "new_x", "!=", "orig_x", ")", "x", "=", "new_x", ";", "}", "return", "x", ";", "}", ""], "natrual_language": ["Try", "machine-dependent", "ways", "of", "modifying", "an", "illegitimate", "Thumb", "address", "to", "be", "legitimate", ".", "If", "we", "find", "one", ",", "return", "the", "new", ",", "valid", "address", "."], "TS_V_token": ["arm", "1", "1", "32", "1", "0", "0", "1", "0", "256", "31", "256", "256", "32", "8", "31", "31", "0", "256", "1", "0", "0", "1"], "File": "arm", "Func": "thumb_legitimize_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45269, "Length": 351}
{"ground_truth": ["", "const", "char", "*", "thumb_load_double_from_address", "(", "rtx", "*", "operands", ")", "{", "rtx", "addr", ";", "rtx", "base", ";", "rtx", "offset", ";", "rtx", "arg1", ";", "rtx", "arg2", ";", "gcc_assert", "(", "REG_P", "(", "operands", "[", "0", "]", ")", ")", ";", "gcc_assert", "(", "MEM_P", "(", "operands", "[", "1", "]", ")", ")", ";", "addr", "=", "XEXP", "(", "operands", "[", "1", "]", ",", "0", ")", ";", "switch", "(", "GET_CODE", "(", "addr", ")", ")", "{", "case", "REG", ":", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "if", "(", "REGNO", "(", "operands", "[", "0", "]", ")", "==", "REGNO", "(", "addr", ")", ")", "{", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "}", "else", "{", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "}", "break", ";", "case", "CONST", ":", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "break", ";", "case", "PLUS", ":", "arg1", "=", "XEXP", "(", "addr", ",", "0", ")", ";", "arg2", "=", "XEXP", "(", "addr", ",", "1", ")", ";", "if", "(", "CONSTANT_P", "(", "arg1", ")", ")", "base", "=", "arg2", ",", "offset", "=", "arg1", ";", "else", "base", "=", "arg1", ",", "offset", "=", "arg2", ";", "gcc_assert", "(", "REG_P", "(", "base", ")", ")", ";", "if", "(", "REG_P", "(", "offset", ")", ")", "{", "int", "reg_offset", "=", "REGNO", "(", "offset", ")", ";", "int", "reg_base", "=", "REGNO", "(", "base", ")", ";", "int", "reg_dest", "=", "REGNO", "(", "operands", "[", "0", "]", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tadd\\t%r, %r, %r\"", ",", "reg_dest", "+", "1", ",", "reg_base", ",", "reg_offset", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tldr\\t%r, [%r, #0]\"", ",", "reg_dest", ",", "reg_dest", "+", "1", ")", ";", "asm_fprintf", "(", "asm_out_file", ",", "\"\\tldr\\t%r, [%r, #4]\"", ",", "reg_dest", "+", "1", ",", "reg_dest", "+", "1", ")", ";", "}", "else", "{", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "if", "(", "REGNO", "(", "operands", "[", "0", "]", ")", "==", "REGNO", "(", "base", ")", ")", "{", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "}", "else", "{", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "}", "}", "break", ";", "case", "LABEL_REF", ":", "operands", "[", "2", "]", "=", "adjust_address", "(", "operands", "[", "1", "]", ",", "SImode", ",", "4", ")", ";", "output_asm_insn", "(", "\"ldr\\t%H0, %2\"", ",", "operands", ")", ";", "output_asm_insn", "(", "\"ldr\\t%0, %1\"", ",", "operands", ")", ";", "break", ";", "default", ":", "gcc_unreachable", "(", ")", ";", "}", "return", "\"\"", ";", "}", ""], "natrual_language": ["Handle", "the", "case", "of", "a", "double", "word", "load", "into", "a", "low", "register", "from", "a", "computed", "memory", "address", ".", "The", "computed", "address", "may", "involve", "a", "register", "which", "is", "overwritten", "by", "the", "load", "."], "TS_V_token": ["arm", "0", "1", "1", "0", "2", "1", "4", "0", "\"ldr\\t%H0, %2\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%H0, %2\"", "2", "1", "4", "\"ldr\\t%0, %1\"", "\"ldr\\t%H0, %2\"", "0", "1", "0", "\"\\tadd\\t%r, %r, %r\"", "1", "\"\\tldr\\t%r, [%r, #0]\"", "1", "\"\\tldr\\t%r, [%r, #4]\"", "1", "1", "2", "1", "4", "0", "\"ldr\\t%H0, %2\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%0, %1\"", "\"ldr\\t%H0, %2\"", "2", "1", "4", "\"ldr\\t%H0, %2\"", "\"ldr\\t%0, %1\"", "\"\""], "File": "arm", "Func": "thumb_load_double_from_address", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45270, "Length": 422}
{"ground_truth": ["", "static", "void", "thumb_pop", "(", "FILE", "*", "f", ",", "unsigned", "long", "mask", ")", "{", "int", "regno", ";", "int", "lo_mask", "=", "mask", "&", "0xFF", ";", "gcc_assert", "(", "mask", ")", ";", "if", "(", "lo_mask", "==", "0", "&&", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", ")", "{", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "fprintf", "(", "f", ",", "\"\\tpop\\t{\"", ")", ";", "for", "(", "regno", "=", "0", ";", "regno", "<=", "LAST_LO_REGNUM", ";", "regno", "++", ",", "lo_mask", ">>=", "1", ")", "{", "if", "(", "lo_mask", "&", "1", ")", "{", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "regno", ")", ";", "if", "(", "(", "lo_mask", "&", "~", "1", ")", "!=", "0", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "}", "}", "if", "(", "mask", "&", "(", "1", "<<", "PC_REGNUM", ")", ")", "{", "if", "(", "TARGET_INTERWORK", "||", "TARGET_BACKTRACE", "||", "crtl", "->", "calls_eh_return", "||", "IS_CMSE_ENTRY", "(", "arm_current_func_type", "(", ")", ")", ")", "{", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "thumb_exit", "(", "f", ",", "-", "1", ")", ";", "return", ";", "}", "else", "{", "if", "(", "mask", "&", "0xFF", ")", "fprintf", "(", "f", ",", "\", \"", ")", ";", "asm_fprintf", "(", "f", ",", "\"%r\"", ",", "PC_REGNUM", ")", ";", "}", "}", "fprintf", "(", "f", ",", "\"}\\n\"", ")", ";", "}", ""], "natrual_language": ["Emit", "code", "to", "push", "or", "pop", "registers", "to", "or", "from", "the", "stack", ".", "F", "is", "the", "assembly", "file", ".", "MASK", "is", "the", "registers", "to", "pop", "."], "TS_V_token": ["arm", "0xFF", "0", "1", "1", "\"\\tpop\\t{\"", "0", "1", "1", "\"%r\"", "1", "0", "\", \"", "1", "\"}\\n\"", "1", "0xFF", "\", \"", "\"%r\"", "\"}\\n\""], "File": "arm", "Func": "thumb_pop", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45271, "Length": 198}
{"ground_truth": ["", "void", "thumb_reload_out_hi", "(", "rtx", "*", "operands", ")", "{", "emit_insn", "(", "gen_thumb_movhi_clobber", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "operands", "[", "2", "]", ")", ")", ";", "}", ""], "natrual_language": ["Handle", "storing", "a", "half-word", "to", "memory", "during", "reload", "."], "TS_V_token": ["arm", "0", "1", "2"], "File": "arm", "Func": "thumb_reload_out_hi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45272, "Length": 30}
{"ground_truth": ["", "static", "void", "thumb_set_frame_pointer", "(", "arm_stack_offsets", "*", "offsets", ")", "{", "HOST_WIDE_INT", "amount", ";", "rtx", "insn", ",", "dwarf", ";", "amount", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "locals_base", ";", "if", "(", "amount", "<", "1024", ")", "insn", "=", "emit_insn", "(", "gen_addsi3", "(", "hard_frame_pointer_rtx", ",", "stack_pointer_rtx", ",", "GEN_INT", "(", "amount", ")", ")", ")", ";", "else", "{", "emit_insn", "(", "gen_movsi", "(", "hard_frame_pointer_rtx", ",", "GEN_INT", "(", "amount", ")", ")", ")", ";", "if", "(", "TARGET_THUMB2", ")", "{", "insn", "=", "emit_insn", "(", "gen_addsi3", "(", "hard_frame_pointer_rtx", ",", "stack_pointer_rtx", ",", "hard_frame_pointer_rtx", ")", ")", ";", "}", "else", "{", "insn", "=", "emit_insn", "(", "gen_addsi3", "(", "hard_frame_pointer_rtx", ",", "hard_frame_pointer_rtx", ",", "stack_pointer_rtx", ")", ")", ";", "}", "dwarf", "=", "gen_rtx_SET", "(", "hard_frame_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "amount", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "dwarf", ")", "=", "1", ";", "add_reg_note", "(", "insn", ",", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ")", ";", "}", "RTX_FRAME_RELATED_P", "(", "insn", ")", "=", "1", ";", "}", ""], "natrual_language": ["Set", "the", "Thumb", "frame", "pointer", "from", "the", "stack", "pointer", "."], "TS_V_token": ["arm", "1024", "1", "1"], "File": "arm", "Func": "thumb_set_frame_pointer", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45273, "Length": 143}
{"ground_truth": ["", "int", "use_return_insn", "(", "int", "iscond", ",", "rtx", "sibling", ")", "{", "int", "regno", ";", "unsigned", "int", "func_type", ";", "unsigned", "long", "saved_int_regs", ";", "unsigned", "HOST_WIDE_INT", "stack_adjust", ";", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "return", "0", ";", "func_type", "=", "arm_current_func_type", "(", ")", ";", "if", "(", "func_type", "&", "(", "ARM_FT_VOLATILE", "|", "ARM_FT_NAKED", "|", "ARM_FT_STACKALIGN", ")", ")", "return", "0", ";", "if", "(", "IS_INTERRUPT", "(", "func_type", ")", "&&", "(", "frame_pointer_needed", "||", "TARGET_THUMB", ")", ")", "return", "0", ";", "if", "(", "TARGET_LDRD", "&&", "current_tune", "->", "prefer_ldrd_strd", "&&", "!", "optimize_function_for_size_p", "(", "cfun", ")", ")", "return", "0", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "stack_adjust", "=", "offsets", "->", "outgoing_args", "-", "offsets", "->", "saved_regs", ";", "if", "(", "crtl", "->", "args", ".", "pretend_args_size", "||", "cfun", "->", "machine", "->", "uses_anonymous_args", "||", "crtl", "->", "calls_eh_return", "||", "cfun", "->", "calls_alloca", "||", "!", "(", "stack_adjust", "==", "0", "||", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", "&&", "stack_adjust", "==", "4", ")", ")", "||", "(", "!", "(", "TARGET_APCS_FRAME", "&&", "frame_pointer_needed", ")", "&&", "arm_compute_static_chain_stack_bytes", "(", ")", "!=", "0", ")", ")", "return", "0", ";", "saved_int_regs", "=", "offsets", "->", "saved_regs_mask", ";", "if", "(", "stack_adjust", "==", "4", "&&", "!", "arm_arch5t", "&&", "TARGET_ARM", ")", "{", "if", "(", "!", "call_used_or_fixed_reg_p", "(", "3", ")", ")", "return", "0", ";", "if", "(", "arm_size_return_regs", "(", ")", ">=", "(", "4", "*", "UNITS_PER_WORD", ")", ")", "return", "0", ";", "if", "(", "sibling", ")", "{", "gcc_assert", "(", "CALL_P", "(", "sibling", ")", ")", ";", "if", "(", "find_regno_fusage", "(", "sibling", ",", "USE", ",", "3", ")", ")", "return", "0", ";", "}", "if", "(", "saved_int_regs", "&", "0x7", ")", "return", "0", ";", "}", "if", "(", "TARGET_INTERWORK", "&&", "saved_int_regs", "!=", "0", "&&", "!", "IS_INTERRUPT", "(", "func_type", ")", ")", "return", "0", ";", "if", "(", "iscond", "&&", "arm_tune_strongarm", ")", "{", "if", "(", "saved_int_regs", "!=", "0", "&&", "saved_int_regs", "!=", "(", "1", "<<", "LR_REGNUM", ")", ")", "return", "0", ";", "if", "(", "flag_pic", "&&", "arm_pic_register", "!=", "INVALID_REGNUM", "&&", "df_regs_ever_live_p", "(", "PIC_OFFSET_TABLE_REGNUM", ")", ")", "return", "0", ";", "}", "if", "(", "IS_CMSE_ENTRY", "(", "func_type", ")", "&&", "(", "saved_int_regs", "||", "TARGET_HAVE_FPCXT_CMSE", ")", ")", "return", "0", ";", "if", "(", "saved_int_regs", "&&", "!", "(", "saved_int_regs", "&", "(", "1", "<<", "LR_REGNUM", ")", ")", ")", "return", "0", ";", "if", "(", "TARGET_VFP_BASE", ")", "for", "(", "regno", "=", "FIRST_VFP_REGNUM", ";", "regno", "<=", "LAST_VFP_REGNUM", ";", "regno", "++", ")", "if", "(", "reg_needs_saving_p", "(", "regno", ")", ")", "return", "0", ";", "if", "(", "TARGET_REALLY_IWMMXT", ")", "for", "(", "regno", "=", "FIRST_IWMMXT_REGNUM", ";", "regno", "<=", "LAST_IWMMXT_REGNUM", ";", "regno", "++", ")", "if", "(", "reg_needs_saving_p", "(", "regno", ")", ")", "return", "0", ";", "return", "1", ";", "}", ""], "natrual_language": ["Return", "true", "if", "this", "function", "'s", "epilogue", "can", "be", "output", "as", "RTL", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "4", "0", "0", "4", "3", "0", "4", "0", "3", "0", "0x7", "0", "0", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "1"], "File": "arm", "Func": "use_return_insn", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45274, "Length": 396}
{"ground_truth": ["", "bool", "use_simple_return_p", "(", "void", ")", "{", "arm_stack_offsets", "*", "offsets", ";", "if", "(", "!", "reload_completed", ")", "arm_compute_frame_layout", "(", ")", ";", "offsets", "=", "arm_get_frame_offsets", "(", ")", ";", "return", "offsets", "->", "outgoing_args", "!=", "0", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "we", "should", "try", "to", "use", "a", "simple_return", "insn", ",", "i.e", ".", "perform", "shrink-wrapping", "if", "possible", ".", "This", "is", "the", "case", "if", "we", "need", "to", "emit", "a", "prologue", ",", "which", "we", "can", "test", "by", "looking", "at", "the", "offsets", "."], "TS_V_token": ["arm", "0"], "File": "arm", "Func": "use_simple_return_p", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45275, "Length": 33}
{"ground_truth": ["", "static", "bool", "use_vfp_abi", "(", "enum", "arm_pcs", "pcs_variant", ",", "bool", "is_double", ")", "{", "if", "(", "pcs_variant", "==", "ARM_PCS_AAPCS_VFP", ")", "{", "static", "bool", "seen_thumb1_vfp", "=", "false", ";", "if", "(", "TARGET_THUMB1", "&&", "!", "seen_thumb1_vfp", ")", "{", "sorry", "(", "\"Thumb-1 % VFP ABI\"", ")", ";", "seen_thumb1_vfp", "=", "true", ";", "}", "return", "true", ";", "}", "if", "(", "pcs_variant", "!=", "ARM_PCS_AAPCS_LOCAL", ")", "return", "false", ";", "return", "(", "TARGET_32BIT", "&&", "TARGET_HARD_FLOAT", "&&", "(", "TARGET_VFP_DOUBLE", "||", "!", "is_double", ")", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "PCS_VARIANT", "should", "use", "VFP", "registers", "."], "TS_V_token": ["arm", "\"Thumb-1 % VFP ABI\""], "File": "arm", "Func": "use_vfp_abi", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45276, "Length": 71}
{"ground_truth": ["", "bool", "valid_operands_ldrd_strd", "(", "rtx", "*", "operands", ",", "bool", "load", ")", "{", "int", "nops", "=", "2", ";", "HOST_WIDE_INT", "offsets", "[", "2", "]", ",", "offset", ",", "align", "[", "2", "]", ";", "rtx", "base", "=", "NULL_RTX", ";", "rtx", "cur_base", ",", "cur_offset", ";", "int", "i", ",", "gap", ";", "for", "(", "i", "=", "0", ";", "i", "<", "nops", ";", "i", "++", ")", "{", "if", "(", "!", "mem_ok_for_ldrd_strd", "(", "operands", "[", "nops", "+", "i", "]", ",", "&", "cur_base", ",", "&", "cur_offset", ",", "&", "align", "[", "i", "]", ")", ")", "return", "false", ";", "if", "(", "i", "==", "0", ")", "base", "=", "cur_base", ";", "else", "if", "(", "REGNO", "(", "base", ")", "!=", "REGNO", "(", "cur_base", ")", ")", "return", "false", ";", "offsets", "[", "i", "]", "=", "INTVAL", "(", "cur_offset", ")", ";", "if", "(", "GET_CODE", "(", "operands", "[", "i", "]", ")", "==", "SUBREG", ")", "return", "false", ";", "}", "if", "(", "offsets", "[", "0", "]", ">", "offsets", "[", "1", "]", ")", "return", "false", ";", "gap", "=", "offsets", "[", "1", "]", "-", "offsets", "[", "0", "]", ";", "offset", "=", "offsets", "[", "0", "]", ";", "if", "(", "gap", "!=", "GET_MODE_SIZE", "(", "SImode", ")", ")", "return", "false", ";", "if", "(", "!", "align_ok_ldrd_strd", "(", "align", "[", "0", "]", ",", "offset", ")", ")", "return", "false", ";", "return", "operands_ok_ldrd_strd", "(", "operands", "[", "0", "]", ",", "operands", "[", "1", "]", ",", "base", ",", "offset", ",", "false", ",", "load", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "parallel", "execution", "of", "the", "two", "word-size", "accesses", "provided", "could", "be", "satisfied", "with", "a", "single", "LDRD/STRD", "instruction", ".", "Two", "word-size", "accesses", "are", "represented", "by", "the", "OPERANDS", "array", ",", "where", "OPERANDS", "[", "0,1", "]", "are", "register", "operands", "and", "OPERANDS", "[", "2,3", "]", "are", "the", "corresponding", "memory", "operands", "."], "TS_V_token": ["arm", "2", "2", "2", "0", "0", "0", "1", "1", "0", "0", "0", "0", "1"], "File": "arm", "Func": "valid_operands_ldrd_strd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45277, "Length": 223}
{"ground_truth": ["", "int", "vfp3_const_double_for_bits", "(", "rtx", "x", ")", "{", "const", "REAL_VALUE_TYPE", "*", "r", ";", "if", "(", "!", "CONST_DOUBLE_P", "(", "x", ")", ")", "return", "-", "1", ";", "r", "=", "CONST_DOUBLE_REAL_VALUE", "(", "x", ")", ";", "if", "(", "REAL_VALUE_NEGATIVE", "(", "*", "r", ")", "||", "REAL_VALUE_ISNAN", "(", "*", "r", ")", "||", "REAL_VALUE_ISINF", "(", "*", "r", ")", "||", "!", "real_isinteger", "(", "r", ",", "SFmode", ")", ")", "return", "-", "1", ";", "HOST_WIDE_INT", "hwint", "=", "exact_log2", "(", "real_to_integer", "(", "r", ")", ")", ";", "if", "(", "!", "IN_RANGE", "(", "hwint", ",", "1", ",", "32", ")", ")", "return", "-", "1", ";", "return", "hwint", ";", "}", ""], "natrual_language": ["If", "X", "is", "a", "CONST_DOUBLE", "with", "a", "value", "that", "is", "a", "power", "of", "2", "whose", "log2", "is", "in", "[", "1", ",", "32", "]", ",", "return", "that", "log2", ".", "Otherwise", "return", "-1", ".", "This", "is", "used", "in", "the", "patterns", "for", "vcvt.s32.f32", "floating-point", "to", "fixed-point", "conversions", "."], "TS_V_token": ["arm", "1", "1", "1", "32", "1"], "File": "arm", "Func": "vfp3_const_double_for_bits", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45278, "Length": 94}
{"ground_truth": ["", "static", "int", "vfp3_const_double_index", "(", "rtx", "x", ")", "{", "REAL_VALUE_TYPE", "r", ",", "m", ";", "int", "sign", ",", "exponent", ";", "unsigned", "HOST_WIDE_INT", "mantissa", ",", "mant_hi", ";", "unsigned", "HOST_WIDE_INT", "mask", ";", "int", "point_pos", "=", "2", "*", "HOST_BITS_PER_WIDE_INT", "-", "1", ";", "bool", "fail", ";", "if", "(", "!", "TARGET_VFP3", "||", "!", "CONST_DOUBLE_P", "(", "x", ")", ")", "return", "-", "1", ";", "r", "=", "*", "CONST_DOUBLE_REAL_VALUE", "(", "x", ")", ";", "if", "(", "REAL_VALUE_ISINF", "(", "r", ")", "||", "REAL_VALUE_ISNAN", "(", "r", ")", "||", "REAL_VALUE_MINUS_ZERO", "(", "r", ")", ")", "return", "-", "1", ";", "sign", "=", "REAL_VALUE_NEGATIVE", "(", "r", ")", "?", "1", ":", "0", ";", "r", "=", "real_value_abs", "(", "&", "r", ")", ";", "exponent", "=", "REAL_EXP", "(", "&", "r", ")", ";", "real_ldexp", "(", "&", "m", ",", "&", "r", ",", "point_pos", "-", "exponent", ")", ";", "wide_int", "w", "=", "real_to_integer", "(", "&", "m", ",", "&", "fail", ",", "HOST_BITS_PER_WIDE_INT", "*", "2", ")", ";", "mantissa", "=", "w", ".", "elt", "(", "0", ")", ";", "mant_hi", "=", "w", ".", "elt", "(", "1", ")", ";", "if", "(", "mantissa", "!=", "0", ")", "return", "-", "1", ";", "point_pos", "-=", "HOST_BITS_PER_WIDE_INT", ";", "mantissa", "=", "mant_hi", ";", "mask", "=", "(", "HOST_WIDE_INT_1U", "<<", "(", "point_pos", "-", "5", ")", ")", "-", "1", ";", "if", "(", "(", "mantissa", "&", "mask", ")", "!=", "0", ")", "return", "-", "1", ";", "mantissa", ">>=", "point_pos", "-", "5", ";", "if", "(", "mantissa", "==", "0", ")", "return", "-", "1", ";", "gcc_assert", "(", "mantissa", ">=", "16", "&&", "mantissa", "<=", "31", ")", ";", "exponent", "=", "5", "-", "exponent", ";", "if", "(", "exponent", "<", "0", "||", "exponent", ">", "7", ")", "return", "-", "1", ";", "return", "(", "sign", "<<", "7", ")", "|", "(", "(", "exponent", "^", "3", ")", "<<", "4", ")", "|", "(", "mantissa", "-", "16", ")", ";", "}", ""], "natrual_language": ["Return", "an", "integer", "index", "for", "a", "VFPv3", "immediate", "operand", "X", "suitable", "for", "the", "fconst", "[", "sd", "]", "instruction", ",", "or", "-1", "if", "X", "is", "n't", "suitable", "."], "TS_V_token": ["arm", "2", "1", "1", "1", "1", "0", "2", "0", "1", "0", "1", "5", "1", "0", "1", "5", "0", "1", "16", "31", "5", "0", "7", "1", "7", "3", "4", "16"], "File": "arm", "Func": "vfp3_const_double_index", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45279, "Length": 275}
{"ground_truth": ["", "int", "vfp3_const_double_rtx", "(", "rtx", "x", ")", "{", "if", "(", "!", "TARGET_VFP3", ")", "return", "0", ";", "return", "vfp3_const_double_index", "(", "x", ")", "!=", "-", "1", ";", "}", ""], "natrual_language": ["Return", "TRUE", "if", "rtx", "X", "is", "a", "valid", "immediate", "VFPv3", "constant", "."], "TS_V_token": ["arm", "0", "1"], "File": "arm", "Func": "vfp3_const_double_rtx", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45280, "Length": 25}
{"ground_truth": ["", "static", "int", "vfp_emit_fstmd", "(", "int", "base_reg", ",", "int", "count", ")", "{", "rtx", "par", ";", "rtx", "dwarf", ";", "rtx", "tmp", ",", "reg", ";", "int", "i", ";", "if", "(", "count", "==", "2", "&&", "!", "arm_arch6", ")", "{", "if", "(", "base_reg", "==", "LAST_VFP_REGNUM", "-", "3", ")", "base_reg", "-=", "2", ";", "count", "++", ";", "}", "if", "(", "count", ">", "16", ")", "{", "int", "saved", ";", "saved", "=", "vfp_emit_fstmd", "(", "base_reg", "+", "32", ",", "count", "-", "16", ")", ";", "saved", "+=", "vfp_emit_fstmd", "(", "base_reg", ",", "16", ")", ";", "return", "saved", ";", "}", "par", "=", "gen_rtx_PARALLEL", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", ")", ")", ";", "dwarf", "=", "gen_rtx_SEQUENCE", "(", "VOIDmode", ",", "rtvec_alloc", "(", "count", "+", "1", ")", ")", ";", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "base_reg", ")", ";", "base_reg", "+=", "2", ";", "XVECEXP", "(", "par", ",", "0", ",", "0", ")", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "BLKmode", ",", "gen_rtx_PRE_MODIFY", "(", "Pmode", ",", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "(", "count", "*", "8", ")", ")", ")", ")", ",", "gen_rtx_UNSPEC", "(", "BLKmode", ",", "gen_rtvec", "(", "1", ",", "reg", ")", ",", "UNSPEC_PUSH_MULT", ")", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "stack_pointer_rtx", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "-", "(", "count", "*", "8", ")", ")", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "0", ")", "=", "tmp", ";", "tmp", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "DFmode", ",", "stack_pointer_rtx", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "1", ")", "=", "tmp", ";", "for", "(", "i", "=", "1", ";", "i", "<", "count", ";", "i", "++", ")", "{", "reg", "=", "gen_rtx_REG", "(", "DFmode", ",", "base_reg", ")", ";", "base_reg", "+=", "2", ";", "XVECEXP", "(", "par", ",", "0", ",", "i", ")", "=", "gen_rtx_USE", "(", "VOIDmode", ",", "reg", ")", ";", "tmp", "=", "gen_rtx_SET", "(", "gen_frame_mem", "(", "DFmode", ",", "plus_constant", "(", "Pmode", ",", "stack_pointer_rtx", ",", "i", "*", "8", ")", ")", ",", "reg", ")", ";", "RTX_FRAME_RELATED_P", "(", "tmp", ")", "=", "1", ";", "XVECEXP", "(", "dwarf", ",", "0", ",", "i", "+", "1", ")", "=", "tmp", ";", "}", "par", "=", "emit_insn", "(", "par", ")", ";", "add_reg_note", "(", "par", ",", "REG_FRAME_RELATED_EXPR", ",", "dwarf", ")", ";", "RTX_FRAME_RELATED_P", "(", "par", ")", "=", "1", ";", "return", "count", "*", "8", ";", "}", ""], "natrual_language": ["Emit", "RTL", "to", "save", "block", "of", "VFP", "register", "pairs", "to", "the", "stack", ".", "Returns", "the", "number", "of", "bytes", "pushed", "."], "TS_V_token": ["arm", "2", "3", "2", "16", "32", "16", "16", "1", "2", "0", "0", "8", "1", "8", "1", "0", "0", "1", "0", "1", "1", "2", "0", "8", "1", "0", "1", "1", "8"], "File": "arm", "Func": "vfp_emit_fstmd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45281, "Length": 365}
{"ground_truth": ["", "const", "char", "*", "vfp_output_vstmd", "(", "rtx", "*", "operands", ")", "{", "char", "pattern", "[", "100", "]", ";", "int", "p", ";", "int", "base", ";", "int", "i", ";", "rtx", "addr_reg", "=", "REG_P", "(", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ")", "?", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ":", "XEXP", "(", "XEXP", "(", "operands", "[", "0", "]", ",", "0", ")", ",", "0", ")", ";", "bool", "push_p", "=", "REGNO", "(", "addr_reg", ")", "==", "SP_REGNUM", ";", "if", "(", "push_p", ")", "strcpy", "(", "pattern", ",", "\"vpush%?.64\\t{%P1\"", ")", ";", "else", "strcpy", "(", "pattern", ",", "\"vstmdb%?.64\\t%m0!, {%P1\"", ")", ";", "p", "=", "strlen", "(", "pattern", ")", ";", "gcc_assert", "(", "REG_P", "(", "operands", "[", "1", "]", ")", ")", ";", "base", "=", "(", "REGNO", "(", "operands", "[", "1", "]", ")", "-", "FIRST_VFP_REGNUM", ")", "/", "2", ";", "for", "(", "i", "=", "1", ";", "i", "<", "XVECLEN", "(", "operands", "[", "2", "]", ",", "0", ")", ";", "i", "++", ")", "{", "p", "+=", "sprintf", "(", "&", "pattern", "[", "p", "]", ",", "\", d%d\"", ",", "base", "+", "i", ")", ";", "}", "strcpy", "(", "&", "pattern", "[", "p", "]", ",", "\"}\"", ")", ";", "output_asm_insn", "(", "pattern", ",", "operands", ")", ";", "return", "\"\"", ";", "}", ""], "natrual_language": ["Output", "the", "assembly", "for", "a", "store", "multiple", "."], "TS_V_token": ["arm", "100", "0", "0", "0", "0", "0", "0", "0", "\"vpush%?.64\\t{%P1\"", "\"vstmdb%?.64\\t%m0!, {%P1\"", "1", "1", "2", "1", "2", "0", "\", d%d\"", "\"}\"", "\"\""], "File": "arm", "Func": "vfp_output_vstmd", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45282, "Length": 191}
{"ground_truth": ["", "static", "bool", "will_be_in_index_register", "(", "const_rtx", "x", ")", "{", "return", "GET_CODE", "(", "x", ")", "==", "UNSPEC", "&&", "(", "XINT", "(", "x", ",", "1", ")", "==", "UNSPEC_PIC_SYM", ")", ";", "}", ""], "natrual_language": ["Return", "true", "if", "X", "will", "surely", "end", "up", "in", "an", "index", "register", "after", "next", "splitting", "pass", "."], "TS_V_token": ["arm", "1"], "File": "arm", "Func": "will_be_in_index_register", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45283, "Length": 28}
{"ground_truth": ["", "static", "bool", "xscale_sched_adjust_cost", "(", "rtx_insn", "*", "insn", ",", "int", "dep_type", ",", "rtx_insn", "*", "dep", ",", "int", "*", "cost", ")", "{", "if", "(", "dep_type", "==", "0", "&&", "recog_memoized", "(", "insn", ")", ">=", "0", "&&", "recog_memoized", "(", "dep", ")", ">=", "0", ")", "{", "int", "shift_opnum", "=", "get_attr_shift", "(", "insn", ")", ";", "enum", "attr_type", "attr_type", "=", "get_attr_type", "(", "dep", ")", ";", "if", "(", "shift_opnum", "!=", "0", "&&", "(", "attr_type", "==", "TYPE_ALU_SHIFT_IMM_LSL_1TO4", "||", "attr_type", "==", "TYPE_ALU_SHIFT_IMM_OTHER", "||", "attr_type", "==", "TYPE_ALUS_SHIFT_IMM", "||", "attr_type", "==", "TYPE_LOGIC_SHIFT_IMM", "||", "attr_type", "==", "TYPE_LOGICS_SHIFT_IMM", "||", "attr_type", "==", "TYPE_ALU_SHIFT_REG", "||", "attr_type", "==", "TYPE_ALUS_SHIFT_REG", "||", "attr_type", "==", "TYPE_LOGIC_SHIFT_REG", "||", "attr_type", "==", "TYPE_LOGICS_SHIFT_REG", "||", "attr_type", "==", "TYPE_MOV_SHIFT", "||", "attr_type", "==", "TYPE_MVN_SHIFT", "||", "attr_type", "==", "TYPE_MOV_SHIFT_REG", "||", "attr_type", "==", "TYPE_MVN_SHIFT_REG", ")", ")", "{", "rtx", "shifted_operand", ";", "int", "opno", ";", "extract_insn", "(", "insn", ")", ";", "shifted_operand", "=", "recog_data", ".", "operand", "[", "shift_opnum", "]", ";", "extract_insn", "(", "dep", ")", ";", "preprocess_constraints", "(", "dep", ")", ";", "for", "(", "opno", "=", "0", ";", "opno", "<", "recog_data", ".", "n_operands", ";", "opno", "++", ")", "{", "if", "(", "recog_data", ".", "operand_type", "[", "opno", "]", "==", "OP_IN", ")", "continue", ";", "if", "(", "reg_overlap_mentioned_p", "(", "recog_data", ".", "operand", "[", "opno", "]", ",", "shifted_operand", ")", ")", "{", "*", "cost", "=", "2", ";", "return", "false", ";", "}", "}", "}", "}", "return", "true", ";", "}", ""], "natrual_language": ["Adjust", "cost", "hook", "for", "XScale", "."], "TS_V_token": ["arm", "0", "0", "0", "0", "0", "2"], "File": "arm", "Func": "xscale_sched_adjust_cost", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45284, "Length": 209}
{"ground_truth": ["", "const", "char", "*", "host_detect_local_cpu", "(", "int", "argc", ",", "const", "char", "*", "*", "argv", ")", "{", "const", "char", "*", "val", "=", "NULL", ";", "char", "buf", "[", "128", "]", ";", "FILE", "*", "f", "=", "NULL", ";", "bool", "arch", ";", "const", "struct", "vendor_cpu", "*", "cpu_table", "=", "NULL", ";", "char", "*", "fcpu_info", "=", "NULL", ";", "if", "(", "argc", "<", "1", ")", "goto", "not_found", ";", "arch", "=", "strcmp", "(", "argv", "[", "0", "]", ",", "\"arch\"", ")", "==", "0", ";", "if", "(", "!", "arch", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"cpu\"", ")", "!=", "0", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"tune\"", ")", ")", "goto", "not_found", ";", "fcpu_info", "=", "getenv", "(", "\"GCC_CPUINFO\"", ")", ";", "if", "(", "fcpu_info", ")", "f", "=", "fopen", "(", "fcpu_info", ",", "\"r\"", ")", ";", "else", "f", "=", "fopen", "(", "\"/proc/cpuinfo\"", ",", "\"r\"", ")", ";", "if", "(", "f", "==", "NULL", ")", "goto", "not_found", ";", "while", "(", "fgets", "(", "buf", ",", "sizeof", "(", "buf", ")", ",", "f", ")", "!=", "NULL", ")", "{", "if", "(", "strncmp", "(", "buf", ",", "\"CPU implementer\"", ",", "sizeof", "(", "\"CPU implementer\"", ")", "-", "1", ")", "==", "0", ")", "{", "int", "i", ";", "for", "(", "i", "=", "0", ";", "vendors_table", "[", "i", "]", ".", "vendor_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "vendors_table", "[", "i", "]", ".", "vendor_no", ")", "!=", "NULL", ")", "{", "cpu_table", "=", "vendors_table", "[", "i", "]", ".", "vendor_parts", ";", "break", ";", "}", "}", "if", "(", "strncmp", "(", "buf", ",", "\"CPU part\"", ",", "sizeof", "(", "\"CPU part\"", ")", "-", "1", ")", "==", "0", ")", "{", "int", "i", ";", "if", "(", "cpu_table", "==", "NULL", ")", "goto", "not_found", ";", "for", "(", "i", "=", "0", ";", "cpu_table", "[", "i", "]", ".", "part_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "cpu_table", "[", "i", "]", ".", "part_no", ")", "!=", "NULL", ")", "{", "val", "=", "arch", "?", "cpu_table", "[", "i", "]", ".", "arch_name", ":", "cpu_table", "[", "i", "]", ".", "cpu_name", ";", "break", ";", "}", "break", ";", "}", "}", "if", "(", "val", ")", "{", "fclose", "(", "f", ")", ";", "return", "concat", "(", "\"-m\"", ",", "argv", "[", "0", "]", ",", "\"=\"", ",", "val", ",", "NULL", ")", ";", "}", "not_found", ":", "{", "unsigned", "int", "i", ";", "unsigned", "int", "opt", ";", "const", "char", "*", "search", "[", "]", "=", "{", "NULL", ",", "\"arch\"", "}", ";", "if", "(", "f", ")", "fclose", "(", "f", ")", ";", "search", "[", "0", "]", "=", "argv", "[", "0", "]", ";", "for", "(", "opt", "=", "0", ";", "opt", "<", "ARRAY_SIZE", "(", "search", ")", ";", "opt", "++", ")", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "configure_default_options", ")", ";", "i", "++", ")", "if", "(", "strcmp", "(", "configure_default_options", "[", "i", "]", ".", "name", ",", "search", "[", "opt", "]", ")", "==", "0", ")", "return", "concat", "(", "\"-m\"", ",", "search", "[", "opt", "]", ",", "\"=\"", ",", "configure_default_options", "[", "i", "]", ".", "value", ",", "NULL", ")", ";", "return", "NULL", ";", "}", "}", ""], "natrual_language": ["This", "will", "be", "called", "by", "the", "spec", "parser", "in", "gcc.cc", "when", "it", "sees", "a", "%", ":", "local_cpu_detect", "(", "args", ")", "construct", ".", "Currently", "it", "will", "be", "called", "with", "either", "``", "cpu", "''", "or", "``", "tune", "''", "as", "argument", "depending", "on", "if", "-mcpu=native", "or", "-mtune=native", "is", "to", "be", "substituted", ".", "It", "returns", "a", "string", "containing", "new", "command", "line", "parameters", "to", "be", "put", "at", "the", "place", "of", "the", "above", "two", "options", ",", "depending", "on", "what", "CPU", "this", "is", "executed", ".", "E.g", ".", "``", "-mcpu=ultrasparc3", "''", "on", "an", "UltraSPARC", "III", "for", "-mcpu=native", ".", "If", "the", "routine", "ca", "n't", "detect", "a", "known", "processor", ",", "the", "-mcpu", "or", "-mtune", "option", "is", "discarded", ".", "ARGC", "and", "ARGV", "are", "set", "depending", "on", "the", "actual", "arguments", "given", "in", "the", "spec", "."], "TS_V_token": ["arm", "128", "1", "0", "\"arch\"", "0", "0", "\"cpu\"", "0", "0", "\"tune\"", "\"GCC_CPUINFO\"", "\"r\"", "\"/proc/cpuinfo\"", "\"r\"", "\"CPU implementer\"", "\"CPU implementer\"", "1", "0", "0", "\"CPU part\"", "\"CPU part\"", "1", "0", "0", "\"-m\"", "0", "\"=\"", "\"arch\"", "0", "0", "0", "0", "0", "\"-m\"", "\"=\""], "File": "driver-arm1", "Func": "host_detect_local_cpu", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45285, "Length": 470}
{"ground_truth": ["", "const", "char", "*", "host_detect_local_cpu", "(", "int", "argc", ",", "const", "char", "*", "*", "argv", ")", "{", "const", "char", "*", "val", "=", "NULL", ";", "char", "buf", "[", "128", "]", ";", "FILE", "*", "f", "=", "NULL", ";", "bool", "arch", ";", "const", "struct", "vendor_cpu", "*", "cpu_table", "=", "NULL", ";", "if", "(", "argc", "<", "1", ")", "goto", "not_found", ";", "arch", "=", "strcmp", "(", "argv", "[", "0", "]", ",", "\"arch\"", ")", "==", "0", ";", "if", "(", "!", "arch", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"cpu\"", ")", "!=", "0", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"tune\"", ")", ")", "goto", "not_found", ";", "f", "=", "fopen", "(", "\"/proc/cpuinfo\"", ",", "\"r\"", ")", ";", "if", "(", "f", "==", "NULL", ")", "goto", "not_found", ";", "while", "(", "fgets", "(", "buf", ",", "sizeof", "(", "buf", ")", ",", "f", ")", "!=", "NULL", ")", "{", "if", "(", "strncmp", "(", "buf", ",", "\"CPU implementer\"", ",", "sizeof", "(", "\"CPU implementer\"", ")", "-", "1", ")", "==", "0", ")", "{", "int", "i", ";", "for", "(", "i", "=", "0", ";", "vendors", "[", "i", "]", ".", "vendor_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "vendors", "[", "i", "]", ".", "vendor_no", ")", "!=", "NULL", ")", "{", "cpu_table", "=", "vendors", "[", "i", "]", ".", "vendor_parts", ";", "break", ";", "}", "}", "if", "(", "strncmp", "(", "buf", ",", "\"CPU part\"", ",", "sizeof", "(", "\"CPU part\"", ")", "-", "1", ")", "==", "0", ")", "{", "int", "i", ";", "if", "(", "cpu_table", "==", "NULL", ")", "goto", "not_found", ";", "for", "(", "i", "=", "0", ";", "cpu_table", "[", "i", "]", ".", "part_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "cpu_table", "[", "i", "]", ".", "part_no", ")", "!=", "NULL", ")", "{", "val", "=", "arch", "?", "cpu_table", "[", "i", "]", ".", "arch_name", ":", "cpu_table", "[", "i", "]", ".", "cpu_name", ";", "break", ";", "}", "break", ";", "}", "}", "fclose", "(", "f", ")", ";", "if", "(", "val", "==", "NULL", ")", "goto", "not_found", ";", "return", "concat", "(", "\"-m\"", ",", "argv", "[", "0", "]", ",", "\"=\"", ",", "val", ",", "NULL", ")", ";", "not_found", ":", "{", "unsigned", "int", "i", ";", "unsigned", "int", "opt", ";", "const", "char", "*", "search", "[", "]", "=", "{", "NULL", ",", "\"arch\"", "}", ";", "if", "(", "f", ")", "fclose", "(", "f", ")", ";", "search", "[", "0", "]", "=", "argv", "[", "0", "]", ";", "for", "(", "opt", "=", "0", ";", "opt", "<", "ARRAY_SIZE", "(", "search", ")", ";", "opt", "++", ")", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "configure_default_options", ")", ";", "i", "++", ")", "if", "(", "strcmp", "(", "configure_default_options", "[", "i", "]", ".", "name", ",", "search", "[", "opt", "]", ")", "==", "0", ")", "return", "concat", "(", "\"-m\"", ",", "search", "[", "opt", "]", ",", "\"=\"", ",", "configure_default_options", "[", "i", "]", ".", "value", ",", "NULL", ")", ";", "return", "NULL", ";", "}", "}", ""], "natrual_language": ["This", "will", "be", "called", "by", "the", "spec", "parser", "in", "gcc.cc", "when", "it", "sees", "a", "%", ":", "local_cpu_detect", "(", "args", ")", "construct", ".", "Currently", "it", "will", "be", "called", "with", "either", "``", "cpu", "''", "or", "``", "tune", "''", "as", "argument", "depending", "on", "if", "-mcpu=native", "or", "-mtune=native", "is", "to", "be", "substituted", ".", "It", "returns", "a", "string", "containing", "new", "command", "line", "parameters", "to", "be", "put", "at", "the", "place", "of", "the", "above", "two", "options", ",", "depending", "on", "what", "CPU", "this", "is", "executed", ".", "E.g", ".", "``", "-mcpu=ultrasparc3", "''", "on", "an", "UltraSPARC", "III", "for", "-mcpu=native", ".", "If", "the", "routine", "ca", "n't", "detect", "a", "known", "processor", ",", "the", "-mcpu", "or", "-mtune", "option", "is", "discarded", ".", "ARGC", "and", "ARGV", "are", "set", "depending", "on", "the", "actual", "arguments", "given", "in", "the", "spec", "."], "TS_V_token": ["arm", "128", "1", "0", "\"arch\"", "0", "0", "\"cpu\"", "0", "0", "\"tune\"", "\"/proc/cpuinfo\"", "\"r\"", "\"CPU implementer\"", "\"CPU implementer\"", "1", "0", "0", "\"CPU part\"", "\"CPU part\"", "1", "0", "0", "\"-m\"", "0", "\"=\"", "\"arch\"", "0", "0", "0", "0", "0", "\"-m\"", "\"=\""], "File": "driver-arm2", "Func": "host_detect_local_cpu", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45286, "Length": 446}
{"ground_truth": ["", "const", "char", "*", "host_detect_local_cpu", "(", "int", "argc", ",", "const", "char", "*", "*", "argv", ")", "{", "const", "char", "*", "val", "=", "NULL", ";", "char", "buf", "[", "128", "]", ";", "FILE", "*", "f", "=", "NULL", ";", "bool", "arch", ";", "const", "struct", "vendor_cpu", "*", "cpu_table", "=", "NULL", ";", "if", "(", "argc", "<", "1", ")", "goto", "not_found", ";", "arch", "=", "strcmp", "(", "argv", "[", "0", "]", ",", "\"arch\"", ")", "==", "0", ";", "if", "(", "!", "arch", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"cpu\"", ")", "!=", "0", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"tune\"", ")", ")", "goto", "not_found", ";", "f", "=", "fopen", "(", "\"/proc/cpuinfo\"", ",", "\"r\"", ")", ";", "if", "(", "f", "==", "NULL", ")", "goto", "not_found", ";", "while", "(", "fgets", "(", "buf", ",", "sizeof", "(", "buf", ")", ",", "f", ")", "!=", "NULL", ")", "{", "if", "(", "strncmp", "(", "buf", ",", "\"CPU implementer\"", ",", "sizeof", "(", "\"CPU implementer\"", ")", "-", "1", ")", "==", "0", ")", "{", "int", "i", ";", "for", "(", "i", "=", "0", ";", "vendors", "[", "i", "]", ".", "vendor_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "vendors", "[", "i", "]", ".", "vendor_no", ")", "!=", "NULL", ")", "{", "cpu_table", "=", "vendors", "[", "i", "]", ".", "vendor_parts", ";", "break", ";", "}", "}", "if", "(", "strncmp", "(", "buf", ",", "\"CPU part\"", ",", "sizeof", "(", "\"CPU part\"", ")", "-", "1", ")", "==", "0", ")", "{", "int", "i", ";", "if", "(", "cpu_table", "==", "NULL", ")", "goto", "not_found", ";", "for", "(", "i", "=", "0", ";", "cpu_table", "[", "i", "]", ".", "part_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "cpu_table", "[", "i", "]", ".", "part_no", ")", "!=", "NULL", ")", "{", "val", "=", "arch", "?", "cpu_table", "[", "i", "]", ".", "arch_name", ":", "cpu_table", "[", "i", "]", ".", "cpu_name", ";", "break", ";", "}", "break", ";", "}", "}", "if", "(", "val", ")", "{", "fclose", "(", "f", ")", ";", "return", "concat", "(", "\"-m\"", ",", "argv", "[", "0", "]", ",", "\"=\"", ",", "val", ",", "NULL", ")", ";", "}", "not_found", ":", "{", "unsigned", "int", "i", ";", "unsigned", "int", "opt", ";", "const", "char", "*", "search", "[", "]", "=", "{", "NULL", ",", "\"arch\"", "}", ";", "if", "(", "f", ")", "fclose", "(", "f", ")", ";", "search", "[", "0", "]", "=", "argv", "[", "0", "]", ";", "for", "(", "opt", "=", "0", ";", "opt", "<", "ARRAY_SIZE", "(", "search", ")", ";", "opt", "++", ")", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "configure_default_options", ")", ";", "i", "++", ")", "if", "(", "strcmp", "(", "configure_default_options", "[", "i", "]", ".", "name", ",", "search", "[", "opt", "]", ")", "==", "0", ")", "return", "concat", "(", "\"-m\"", ",", "search", "[", "opt", "]", ",", "\"=\"", ",", "configure_default_options", "[", "i", "]", ".", "value", ",", "NULL", ")", ";", "return", "NULL", ";", "}", "}", ""], "natrual_language": ["This", "will", "be", "called", "by", "the", "spec", "parser", "in", "gcc.cc", "when", "it", "sees", "a", "%", ":", "local_cpu_detect", "(", "args", ")", "construct", ".", "Currently", "it", "will", "be", "called", "with", "either", "``", "cpu", "''", "or", "``", "tune", "''", "as", "argument", "depending", "on", "if", "-mcpu=native", "or", "-mtune=native", "is", "to", "be", "substituted", ".", "It", "returns", "a", "string", "containing", "new", "command", "line", "parameters", "to", "be", "put", "at", "the", "place", "of", "the", "above", "two", "options", ",", "depending", "on", "what", "CPU", "this", "is", "executed", ".", "E.g", ".", "``", "-mcpu=ultrasparc3", "''", "on", "an", "UltraSPARC", "III", "for", "-mcpu=native", ".", "If", "the", "routine", "ca", "n't", "detect", "a", "known", "processor", ",", "the", "-mcpu", "or", "-mtune", "option", "is", "discarded", ".", "ARGC", "and", "ARGV", "are", "set", "depending", "on", "the", "actual", "arguments", "given", "in", "the", "spec", "."], "TS_V_token": ["arm", "128", "1", "0", "\"arch\"", "0", "0", "\"cpu\"", "0", "0", "\"tune\"", "\"/proc/cpuinfo\"", "\"r\"", "\"CPU implementer\"", "\"CPU implementer\"", "1", "0", "0", "\"CPU part\"", "\"CPU part\"", "1", "0", "0", "\"-m\"", "0", "\"=\"", "\"arch\"", "0", "0", "0", "0", "0", "\"-m\"", "\"=\""], "File": "driver-arm3", "Func": "host_detect_local_cpu", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45287, "Length": 443}
{"ground_truth": ["", "const", "char", "*", "host_detect_local_cpu", "(", "int", "argc", ",", "const", "char", "*", "*", "argv", ")", "{", "const", "char", "*", "val", "=", "NULL", ";", "char", "buf", "[", "128", "]", ";", "FILE", "*", "f", "=", "NULL", ";", "bool", "arch", ";", "const", "struct", "vendor_cpu", "*", "cpu_table", "=", "NULL", ";", "char", "*", "fcpu_info", "=", "NULL", ";", "if", "(", "argc", "<", "1", ")", "goto", "not_found", ";", "arch", "=", "strcmp", "(", "argv", "[", "0", "]", ",", "\"arch\"", ")", "==", "0", ";", "if", "(", "!", "arch", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"cpu\"", ")", "!=", "0", "&&", "strcmp", "(", "argv", "[", "0", "]", ",", "\"tune\"", ")", ")", "goto", "not_found", ";", "fcpu_info", "=", "getenv", "(", "\"GCC_CPUINFO\"", ")", ";", "if", "(", "fcpu_info", ")", "f", "=", "fopen", "(", "fcpu_info", ",", "\"r\"", ")", ";", "else", "f", "=", "fopen", "(", "\"/proc/cpuinfo\"", ",", "\"r\"", ")", ";", "if", "(", "f", "==", "NULL", ")", "goto", "not_found", ";", "while", "(", "fgets", "(", "buf", ",", "sizeof", "(", "buf", ")", ",", "f", ")", "!=", "NULL", ")", "{", "if", "(", "startswith", "(", "buf", ",", "\"CPU implementer\"", ")", ")", "{", "int", "i", ";", "for", "(", "i", "=", "0", ";", "vendors_table", "[", "i", "]", ".", "vendor_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "vendors_table", "[", "i", "]", ".", "vendor_no", ")", "!=", "NULL", ")", "{", "cpu_table", "=", "vendors_table", "[", "i", "]", ".", "vendor_parts", ";", "break", ";", "}", "}", "if", "(", "startswith", "(", "buf", ",", "\"CPU part\"", ")", ")", "{", "int", "i", ";", "if", "(", "cpu_table", "==", "NULL", ")", "goto", "not_found", ";", "for", "(", "i", "=", "0", ";", "cpu_table", "[", "i", "]", ".", "part_no", "!=", "NULL", ";", "i", "++", ")", "if", "(", "strstr", "(", "buf", ",", "cpu_table", "[", "i", "]", ".", "part_no", ")", "!=", "NULL", ")", "{", "val", "=", "arch", "?", "cpu_table", "[", "i", "]", ".", "arch_name", ":", "cpu_table", "[", "i", "]", ".", "cpu_name", ";", "break", ";", "}", "break", ";", "}", "}", "if", "(", "val", ")", "{", "fclose", "(", "f", ")", ";", "return", "concat", "(", "\"-m\"", ",", "argv", "[", "0", "]", ",", "\"=\"", ",", "val", ",", "NULL", ")", ";", "}", "not_found", ":", "{", "unsigned", "int", "i", ";", "unsigned", "int", "opt", ";", "const", "char", "*", "search", "[", "]", "=", "{", "NULL", ",", "\"arch\"", "}", ";", "if", "(", "f", ")", "fclose", "(", "f", ")", ";", "search", "[", "0", "]", "=", "argv", "[", "0", "]", ";", "for", "(", "opt", "=", "0", ";", "opt", "<", "ARRAY_SIZE", "(", "search", ")", ";", "opt", "++", ")", "for", "(", "i", "=", "0", ";", "i", "<", "ARRAY_SIZE", "(", "configure_default_options", ")", ";", "i", "++", ")", "if", "(", "strcmp", "(", "configure_default_options", "[", "i", "]", ".", "name", ",", "search", "[", "opt", "]", ")", "==", "0", ")", "return", "concat", "(", "\"-m\"", ",", "search", "[", "opt", "]", ",", "\"=\"", ",", "configure_default_options", "[", "i", "]", ".", "value", ",", "NULL", ")", ";", "return", "NULL", ";", "}", "}", ""], "natrual_language": ["This", "will", "be", "called", "by", "the", "spec", "parser", "in", "gcc.cc", "when", "it", "sees", "a", "%", ":", "local_cpu_detect", "(", "args", ")", "construct", ".", "Currently", "it", "will", "be", "called", "with", "either", "``", "cpu", "''", "or", "``", "tune", "''", "as", "argument", "depending", "on", "if", "-mcpu=native", "or", "-mtune=native", "is", "to", "be", "substituted", ".", "It", "returns", "a", "string", "containing", "new", "command", "line", "parameters", "to", "be", "put", "at", "the", "place", "of", "the", "above", "two", "options", ",", "depending", "on", "what", "CPU", "this", "is", "executed", ".", "E.g", ".", "``", "-mcpu=ultrasparc3", "''", "on", "an", "UltraSPARC", "III", "for", "-mcpu=native", ".", "If", "the", "routine", "ca", "n't", "detect", "a", "known", "processor", ",", "the", "-mcpu", "or", "-mtune", "option", "is", "discarded", ".", "ARGC", "and", "ARGV", "are", "set", "depending", "on", "the", "actual", "arguments", "given", "in", "the", "spec", "."], "TS_V_token": ["arm", "128", "1", "0", "\"arch\"", "0", "0", "\"cpu\"", "0", "0", "\"tune\"", "\"GCC_CPUINFO\"", "\"r\"", "\"/proc/cpuinfo\"", "\"r\"", "\"CPU implementer\"", "0", "\"CPU part\"", "0", "\"-m\"", "0", "\"=\"", "\"arch\"", "0", "0", "0", "0", "0", "\"-m\"", "\"=\""], "File": "driver-arm", "Func": "host_detect_local_cpu", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45288, "Length": 452}
{"ground_truth": ["", "static", "inline", "_uw8", "next_unwind_byte", "(", "__gnu_unwind_state", "*", "uws", ")", "{", "_uw8", "b", ";", "if", "(", "uws", "->", "bytes_left", "==", "0", ")", "{", "if", "(", "uws", "->", "words_left", "==", "0", ")", "return", "CODE_FINISH", ";", "uws", "->", "words_left", "--", ";", "uws", "->", "data", "=", "*", "(", "uws", "->", "next", "++", ")", ";", "uws", "->", "bytes_left", "=", "3", ";", "}", "else", "uws", "->", "bytes_left", "--", ";", "b", "=", "(", "uws", "->", "data", ">>", "24", ")", "&", "0xff", ";", "uws", "->", "data", "<<=", "8", ";", "return", "b", ";", "}", ""], "natrual_language": ["Return", "the", "next", "byte", "of", "unwinding", "information", ",", "or", "CODE_FINISH", "if", "there", "is", "no", "data", "remaining", "."], "TS_V_token": ["arm", "0", "0", "3", "24", "0xff", "8"], "File": "pr-support", "Func": "next_unwind_byte", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45289, "Length": 85}
{"ground_truth": ["", "static", "inline", "_uw", "selfrel_offset31", "(", "const", "_uw", "*", "p", ")", "{", "_uw", "offset", ";", "offset", "=", "*", "p", ";", "if", "(", "offset", "&", "(", "1", "<<", "30", ")", ")", "offset", "|=", "1u", "<<", "31", ";", "return", "offset", "+", "(", "_uw", ")", "p", ";", "}", ""], "natrual_language": ["Calculate", "the", "address", "encoded", "by", "a", "31-bit", "self-relative", "offset", "at", "address", "P", "."], "TS_V_token": ["arm", "1", "30", "1u", "31"], "File": "pr-support", "Func": "selfrel_offset31", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45290, "Length": 44}
{"ground_truth": ["", "static", "inline", "_Unwind_Control_Block", "*", "unwind_UCB_from_context", "(", "_Unwind_Context", "*", "context", ")", "{", "return", "(", "_Unwind_Control_Block", "*", ")", "_Unwind_GetGR", "(", "context", ",", "R_IP", ")", ";", "}", ""], "natrual_language": ["Get", "the", "_Unwind_Control_Block", "from", "an", "_Unwind_Context", "."], "TS_V_token": ["arm"], "File": "pr-support", "Func": "unwind_UCB_from_context", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45291, "Length": 24}
{"ground_truth": ["", "static", "_Unwind_Reason_Code", "get_eit_entry", "(", "_Unwind_Control_Block", "*", "ucbp", ",", "_uw", "return_address", ")", "{", "const", "__EIT_entry", "*", "eitp", ";", "int", "nrec", ";", "return_address", "-=", "2", ";", "if", "(", "__gnu_Unwind_Find_exidx", ")", "{", "eitp", "=", "(", "const", "__EIT_entry", "*", ")", "__gnu_Unwind_Find_exidx", "(", "return_address", ",", "&", "nrec", ")", ";", "if", "(", "!", "eitp", ")", "{", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "0", ";", "return", "_URC_FAILURE", ";", "}", "}", "else", "{", "eitp", "=", "&", "__exidx_start", ";", "nrec", "=", "&", "__exidx_end", "-", "&", "__exidx_start", ";", "}", "eitp", "=", "search_EIT_table", "(", "eitp", ",", "nrec", ",", "return_address", ")", ";", "if", "(", "!", "eitp", ")", "{", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "0", ";", "return", "_URC_FAILURE", ";", "}", "ucbp", "->", "pr_cache", ".", "fnstart", "=", "selfrel_offset31", "(", "&", "eitp", "->", "fnoffset", ")", ";", "if", "(", "eitp", "->", "content", "==", "EXIDX_CANTUNWIND", ")", "{", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "0", ";", "return", "_URC_END_OF_STACK", ";", "}", "if", "(", "eitp", "->", "content", "&", "uint32_highbit", ")", "{", "ucbp", "->", "pr_cache", ".", "ehtp", "=", "(", "_Unwind_EHT_Header", "*", ")", "&", "eitp", "->", "content", ";", "ucbp", "->", "pr_cache", ".", "additional", "=", "1", ";", "}", "else", "{", "ucbp", "->", "pr_cache", ".", "ehtp", "=", "(", "_Unwind_EHT_Header", "*", ")", "selfrel_offset31", "(", "&", "eitp", "->", "content", ")", ";", "ucbp", "->", "pr_cache", ".", "additional", "=", "0", ";", "}", "if", "(", "*", "ucbp", "->", "pr_cache", ".", "ehtp", "&", "(", "1u", "<<", "31", ")", ")", "{", "_uw", "idx", "=", "(", "*", "(", "_uw", "*", ")", "ucbp", "->", "pr_cache", ".", "ehtp", ">>", "24", ")", "&", "0xf", ";", "if", "(", "idx", "==", "0", ")", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "(", "_uw", ")", "&", "__aeabi_unwind_cpp_pr0", ";", "else", "if", "(", "idx", "==", "1", ")", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "(", "_uw", ")", "&", "__aeabi_unwind_cpp_pr1", ";", "else", "if", "(", "idx", "==", "2", ")", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "(", "_uw", ")", "&", "__aeabi_unwind_cpp_pr2", ";", "else", "{", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "0", ";", "return", "_URC_FAILURE", ";", "}", "}", "else", "{", "UCB_PR_ADDR", "(", "ucbp", ")", "=", "selfrel_offset31", "(", "ucbp", "->", "pr_cache", ".", "ehtp", ")", ";", "}", "return", "_URC_OK", ";", "}", ""], "natrual_language": ["Find", "the", "exception", "index", "table", "eintry", "for", "the", "given", "address", ".", "Fill", "in", "the", "relevant", "fields", "of", "the", "UCB", ".", "Returns", "_URC_FAILURE", "if", "an", "error", "occurred", ",", "_URC_OK", "on", "success", "."], "TS_V_token": ["arm", "2", "0", "0", "0", "1", "0", "1u", "31", "24", "0xf", "0", "1", "2", "0"], "File": "unwind-arm", "Func": "get_eit_entry", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45292, "Length": 326}
{"ground_truth": ["", "static", "void", "restore_non_core_regs", "(", "phase1_vrs", "*", "vrs", ")", "{", "if", "(", "(", "vrs", "->", "demand_save_flags", "&", "DEMAND_SAVE_VFP", ")", "==", "0", ")", "__gnu_Unwind_Restore_VFP", "(", "&", "vrs", "->", "vfp", ")", ";", "}", ""], "natrual_language": ["Restore", "coprocessor", "state", "after", "phase1", "unwinding", "."], "TS_V_token": ["arm", "0"], "File": "unwind-arm", "Func": "restore_non_core_regs", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45293, "Length": 30}
{"ground_truth": ["", "static", "const", "__EIT_entry", "*", "search_EIT_table", "(", "const", "__EIT_entry", "*", "table", ",", "int", "nrec", ",", "_uw", "return_address", ")", "{", "_uw", "next_fn", ";", "_uw", "this_fn", ";", "int", "n", ",", "left", ",", "right", ";", "if", "(", "nrec", "==", "0", ")", "return", "(", "__EIT_entry", "*", ")", "0", ";", "left", "=", "0", ";", "right", "=", "nrec", "-", "1", ";", "while", "(", "1", ")", "{", "n", "=", "(", "left", "+", "right", ")", "/", "2", ";", "this_fn", "=", "selfrel_offset31", "(", "&", "table", "[", "n", "]", ".", "fnoffset", ")", ";", "if", "(", "n", "!=", "nrec", "-", "1", ")", "next_fn", "=", "selfrel_offset31", "(", "&", "table", "[", "n", "+", "1", "]", ".", "fnoffset", ")", "-", "1", ";", "else", "next_fn", "=", "(", "_uw", ")", "0", "-", "1", ";", "if", "(", "return_address", "<", "this_fn", ")", "{", "if", "(", "n", "==", "left", ")", "return", "(", "__EIT_entry", "*", ")", "0", ";", "right", "=", "n", "-", "1", ";", "}", "else", "if", "(", "return_address", "<=", "next_fn", ")", "return", "&", "table", "[", "n", "]", ";", "else", "left", "=", "n", "+", "1", ";", "}", "}", ""], "natrual_language": ["Perform", "a", "binary", "search", "for", "RETURN_ADDRESS", "in", "TABLE", ".", "The", "table", "contains", "NREC", "entries", "."], "TS_V_token": ["arm", "0", "0", "0", "1", "1", "2", "1", "1", "1", "0", "1", "0", "1", "1"], "File": "unwind-arm", "Func": "search_EIT_table", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45294, "Length": 167}
{"ground_truth": ["", "static", "_Unwind_Reason_Code", "unwind_phase2_forced", "(", "_Unwind_Control_Block", "*", "ucbp", ",", "phase2_vrs", "*", "entry_vrs", ",", "int", "resuming", ")", "{", "_Unwind_Stop_Fn", "stop_fn", "=", "(", "_Unwind_Stop_Fn", ")", "UCB_FORCED_STOP_FN", "(", "ucbp", ")", ";", "void", "*", "stop_arg", "=", "(", "void", "*", ")", "UCB_FORCED_STOP_ARG", "(", "ucbp", ")", ";", "_Unwind_Reason_Code", "pr_result", "=", "0", ";", "phase1_vrs", "saved_vrs", ",", "next_vrs", ";", "saved_vrs", ".", "core", "=", "entry_vrs", "->", "core", ";", "saved_vrs", ".", "demand_save_flags", "=", "0", ";", "do", "{", "_Unwind_State", "action", ";", "_Unwind_Reason_Code", "entry_code", ";", "_Unwind_Reason_Code", "stop_code", ";", "entry_code", "=", "get_eit_entry", "(", "ucbp", ",", "saved_vrs", ".", "core", ".", "r", "[", "R_PC", "]", ")", ";", "if", "(", "resuming", ")", "{", "action", "=", "_US_UNWIND_FRAME_RESUME", "|", "_US_FORCE_UNWIND", ";", "resuming", "=", "0", ";", "}", "else", "action", "=", "_US_UNWIND_FRAME_STARTING", "|", "_US_FORCE_UNWIND", ";", "if", "(", "entry_code", "==", "_URC_OK", ")", "{", "UCB_SAVED_CALLSITE_ADDR", "(", "ucbp", ")", "=", "saved_vrs", ".", "core", ".", "r", "[", "R_PC", "]", ";", "next_vrs", "=", "saved_vrs", ";", "pr_result", "=", "(", "(", "personality_routine", ")", "UCB_PR_ADDR", "(", "ucbp", ")", ")", "(", "action", ",", "ucbp", ",", "(", "void", "*", ")", "&", "next_vrs", ")", ";", "saved_vrs", ".", "prev_sp", "=", "next_vrs", ".", "core", ".", "r", "[", "R_SP", "]", ";", "}", "else", "{", "action", "|=", "_US_END_OF_STACK", ";", "saved_vrs", ".", "prev_sp", "=", "saved_vrs", ".", "core", ".", "r", "[", "R_SP", "]", ";", "}", "stop_code", "=", "stop_fn", "(", "1", ",", "action", ",", "ucbp", "->", "exception_class", ",", "ucbp", ",", "(", "void", "*", ")", "&", "saved_vrs", ",", "stop_arg", ")", ";", "if", "(", "stop_code", "!=", "_URC_NO_REASON", ")", "return", "_URC_FAILURE", ";", "if", "(", "entry_code", "!=", "_URC_OK", ")", "return", "entry_code", ";", "saved_vrs", "=", "next_vrs", ";", "}", "while", "(", "pr_result", "==", "_URC_CONTINUE_UNWIND", ")", ";", "if", "(", "pr_result", "!=", "_URC_INSTALL_CONTEXT", ")", "{", "return", "_URC_FAILURE", ";", "}", "restore_core_regs", "(", "&", "saved_vrs", ".", "core", ")", ";", "}", ""], "natrual_language": ["Perform", "phase2", "forced", "unwinding", "."], "TS_V_token": ["arm", "0", "0", "0", "1"], "File": "unwind-arm", "Func": "unwind_phase2_forced", "Target": "arm", "Target_Clf": "CPU", "Compiler_Type": "GCC", "Idx": 45295, "Length": 271}