char *next_reg(char *s, short skip)
{
- /* TODO: warum enthaelt das register die parameter enthalten koennten? */
+ /* TODO: bessere registerwahl. das is gerade a wengal suboptimal... */
+#if 1
+ char *regs[] = {"rax", "r10", "r11", "rax"};
+#else
char *regs[] = {"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"};
+#endif
int i=0;
if (s != (char*) NULL) {
while(i < 9) {
@reg {
/* TODO */
fprintf(stderr, "at_expr: Minusterm.imm \"%i\", Term.imm \"%i\"\n", @Minusterm.imm@, @Term.imm@);
- #if 0
- if(@Minusterm.imm@) {
- @Minusterm.node@->reg = @Expr.node@->reg;
- @Term.node@->reg = next_reg(@Minusterm.node@->reg, @Expr.node@->skip);
- @Minusterm.node@->skip = 1;
- } else {
- #endif
- @Term.node@->reg = @Expr.node@->reg;
- @Minusterm.node@->reg = next_reg(@Term.node@->reg, @Expr.node@->skip);
+ @Term.node@->reg = @Expr.node@->reg;
+ @Term.node@->skip = 1;
+ @Minusterm.node@->reg = next_reg(@Term.node@->reg, @Expr.node@->skip);
}
@}