X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=uebersetzerbau-ss10.git;a=blobdiff_plain;f=gesamt_arm64%2Fchelper.c;h=a8c6820e3b0aab30b5da90a284e9082be20aa052;hp=20e81bffd435e389df1e2487f43d2c33b5d75bf5;hb=683cc125e0892ef966e4902c535f971c98589c4c;hpb=b133cf25e9c4bf3266dcd0a5024fb815d29f3cfe diff --git a/gesamt_arm64/chelper.c b/gesamt_arm64/chelper.c index 20e81bf..a8c6820 100644 --- a/gesamt_arm64/chelper.c +++ b/gesamt_arm64/chelper.c @@ -10,7 +10,7 @@ /* 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; @@ -18,8 +18,8 @@ static char need_stack = 0; 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; @@ -44,7 +44,7 @@ void func_footer(void) /* 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) @@ -91,7 +91,7 @@ char *reg_64to8l(char *s) 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]; }