/* TODO */
#define REGLEN 5
-static char *regsppc[] = {"r10", "r11", "r12", "r13", "r14"};
+static char *regsppc[] = {"x10", "x11", "x12", "x13", "x14"};
/* ja, dirty.. */
static char *akt_func_name = (char*) NULL;
void func_header(char *s, int vars, int parms, int call)
{
- printf("\t.globl %1$s\n\t.type %1$s, %%function\n%1$s:\n", s);
- printf("\t@ vars: %i, parms: %i, call(bool): %i\n", vars, parms, call);
+ printf("\t.global %1$s\n\t.type %1$s, %%function\n%1$s:\n", s);
+ printf("\t// vars: %i, parms: %i, call(bool): %i\n", vars, parms, call);
akt_func_name = s;
need_stack = (vars || parms) && call;
/* restore link register */
printf("\tlwz 0,-8(1); mtlr 0\n");
}
- printf("\tbx lr\n\n\n");
+ printf("\tret\n\n\n");
}
void move(char *src, char *dst)
char *param_reg(int num)
{ /* TODO */
- char *regs[] = {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9"};
+ char *regs[] = {"x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9"};
return regs[num];
}