5 void function_header(char *name) {
6 printf("\t.globl %s\n\t.type %s, @function\n%s:\n", name, name, name);
9 char *get_next_reg(char *name, int skip_reg) {
10 char *reg_names[]={"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"};
12 if(name==(char *)NULL) {
17 if(!strcmp(name,reg_names[a])) {
26 return reg_names[index];
29 char *get_param_reg(long number) {
30 char *reg_names[]={"rdi", "rsi", "rdx", "rcx", "r8", "r9"};
31 return reg_names[number-1];
38 void move(char *src, char *dst) {
40 printf("\tmovq %%%s, %%%s\n",src,dst);