brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 5337bfb Raw
49 lines · c
1// SPDX-License-Identifier: GPL-2.02// Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.3 4#include <linux/compiler.h>5 6static struct ins_ops *csky__associate_ins_ops(struct arch *arch,7					       const char *name)8{9	struct ins_ops *ops = NULL;10 11	/* catch all kind of jumps */12	if (!strcmp(name, "bt") ||13	    !strcmp(name, "bf") ||14	    !strcmp(name, "bez") ||15	    !strcmp(name, "bnez") ||16	    !strcmp(name, "bnezad") ||17	    !strcmp(name, "bhsz") ||18	    !strcmp(name, "bhz") ||19	    !strcmp(name, "blsz") ||20	    !strcmp(name, "blz") ||21	    !strcmp(name, "br") ||22	    !strcmp(name, "jmpi") ||23	    !strcmp(name, "jmp"))24		ops = &jump_ops;25 26	/* catch function call */27	if (!strcmp(name, "bsr") ||28	    !strcmp(name, "jsri") ||29	    !strcmp(name, "jsr"))30		ops = &call_ops;31 32	/* catch function return */33	if (!strcmp(name, "rts"))34		ops = &ret_ops;35 36	if (ops)37		arch__associate_ins_ops(arch, name, ops);38	return ops;39}40 41static int csky__annotate_init(struct arch *arch, char *cpuid __maybe_unused)42{43	arch->initialized = true;44	arch->objdump.comment_char = '/';45	arch->associate_instruction_ops = csky__associate_ins_ops;46 47	return 0;48}49