diff --git a/src/system/boot/platform/amiga_m68k/console.cpp b/src/system/boot/platform/amiga_m68k/console.cpp index b5bc41f54e..916327212b 100644 --- a/src/system/boot/platform/amiga_m68k/console.cpp +++ b/src/system/boot/platform/amiga_m68k/console.cpp @@ -70,9 +70,10 @@ ConsoleHandle::WriteAt(void */*cookie*/, off_t /*pos*/, const void *buffer, break; if (string[i] == '\n') { //Text(&sScreen->RastPort, &string[i - len], len); - fY = 0; - fX++; + fX = 0; + fY++; len = 0; + console_set_cursor(fX, fY); continue; } Text(&sScreen->RastPort, &string[i], 1); @@ -130,28 +131,10 @@ console_init(void) sFontHeight = sScreen->Font->ta_YSize; sFontWidth = font->tf_XSize; - ClearScreen(&sScreen->RastPort); - - //CloseScreen(sScreen); - //TODO - dbgerr = stdout = stderr = (FILE *)&sOutput; -//XXX: testing - Move(&sScreen->RastPort, 30, 30); - Text(&sScreen->RastPort, "kikou", 5); - -// those crash for the moment. Stack alignment issue ? -// sOutput.WriteAt(NULL, 0LL, "abcdefgh", 10); -// dprintf("kk\nbb\n"); - -//XXX - while (true) {} - - //panic("console_init done\n"); - return B_OK; } diff --git a/src/system/boot/platform/amiga_m68k/rom_calls.h b/src/system/boot/platform/amiga_m68k/rom_calls.h index 5e7938074e..dc8f51a182 100644 --- a/src/system/boot/platform/amiga_m68k/rom_calls.h +++ b/src/system/boot/platform/amiga_m68k/rom_calls.h @@ -43,10 +43,10 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + void *const _##name##_bn = (bn); \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn) \ + : [libbase] "a" (_##name##_bn) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -59,10 +59,10 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + void *const _##name##_bn = (bn); \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn) \ + : [libbase] "a" (_##name##_bn) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -75,11 +75,11 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -93,11 +93,11 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -111,11 +111,11 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ - __asm volatile ("exg d7,a5\n\tjsr %%a6@(-"#offs":W)\n\texg d7,a5" \ + __asm volatile ("exg d7,a5\n\tmove.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6\n\texg d7,a5" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -130,11 +130,11 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ - __asm volatile ("exg d7,a5\n\tjsr %%a6@(-"#offs":W)\n\texg d7,a5" \ + __asm volatile ("exg d7,a5\n\tmove.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6\n\texg d7,a5" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -149,11 +149,11 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ - __asm volatile ("exg d7,a5\n\tjsr %%a6@(-"#offs":W)\n\texg d7,a5" \ + __asm volatile ("exg d7,a5\n\tmove.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6\n\texg d7,a5" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -168,12 +168,12 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -188,12 +188,12 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -210,7 +210,7 @@ extern "C" { register rt _##name##_re __asm("d0"); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ : "r"(_n1), "rf"(_n2) \ : "fp0", "fp1", "cc", "memory"); \ @@ -229,12 +229,12 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -250,13 +250,13 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -272,13 +272,13 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -297,7 +297,7 @@ extern "C" { register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ : "r"(_n1), "rf"(_n2), "rf"(_n3) \ : "fp0", "fp1", "cc", "memory"); \ @@ -319,7 +319,7 @@ extern "C" { register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ : "r"(_n1), "rf"(_n2), "rf"(_n3) \ : "fp0", "fp1", "cc", "memory"); \ @@ -338,13 +338,13 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -362,13 +362,13 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -384,14 +384,14 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -408,14 +408,14 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -433,14 +433,14 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -458,15 +458,15 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ register t5 _n5 __asm(#r5) = _##name##_v5; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -484,15 +484,15 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ register t5 _n5 __asm(#r5) = _##name##_v5; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -511,15 +511,15 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ register t5 _n5 __asm(#r5) = _##name##_v5; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -538,15 +538,15 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ register t5 _n5 __asm(#r5) = _##name##_v5; \ - __asm volatile ("exg d7,a4\n\tjsr %%a6@(-"#offs":W)\n\texg d7,a4" \ + __asm volatile ("exg d7,a4\n\tmove.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6\n\texg d7,a4" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -565,16 +565,16 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ register t5 _n5 __asm(#r5) = _##name##_v5; \ register t6 _n6 __asm(#r6) = _##name##_v6; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -593,16 +593,16 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ register t4 _n4 __asm(#r4) = _##name##_v4; \ register t5 _n5 __asm(#r5) = _##name##_v5; \ register t6 _n6 __asm(#r6) = _##name##_v6; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -621,7 +621,7 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -629,9 +629,9 @@ extern "C" { register t5 _n5 __asm(#r5) = _##name##_v5; \ register t6 _n6 __asm(#r6) = _##name##_v6; \ register t7 _n7 __asm(#r7) = _##name##_v7; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -651,7 +651,7 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -659,9 +659,9 @@ extern "C" { register t5 _n5 __asm(#r5) = _##name##_v5; \ register t6 _n6 __asm(#r6) = _##name##_v6; \ register t7 _n7 __asm(#r7) = _##name##_v7; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -681,7 +681,7 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -689,9 +689,9 @@ extern "C" { register t5 _n5 __asm(#r5) = _##name##_v5; \ register t6 _n6 __asm(#r6) = _##name##_v6; \ register t7 _n7 __asm(#r7) = _##name##_v7; \ - __asm volatile ("exg d7,a4\n\tjsr %%a6@(-"#offs":W)\n\texg d7,a4" \ + __asm volatile ("exg d7,a4\n\tmove.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6\n\texg d7,a4" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -716,7 +716,7 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -725,9 +725,9 @@ extern "C" { register t6 _n6 __asm(#r6) = _##name##_v6; \ register t7 _n7 __asm(#r7) = _##name##_v7; \ register t8 _n8 __asm(#r8) = _##name##_v8; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -749,7 +749,7 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -758,9 +758,9 @@ extern "C" { register t6 _n6 __asm(#r6) = _##name##_v6; \ register t7 _n7 __asm(#r7) = _##name##_v7; \ register t8 _n8 __asm(#r8) = _##name##_v8; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -782,7 +782,7 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -792,9 +792,9 @@ extern "C" { register t7 _n7 __asm(#r7) = _##name##_v7; \ register t8 _n8 __asm(#r8) = _##name##_v8; \ register t9 _n9 __asm(#r9) = _##name##_v9; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -817,7 +817,7 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -827,9 +827,9 @@ extern "C" { register t7 _n7 __asm(#r7) = _##name##_v7; \ register t8 _n8 __asm(#r8) = _##name##_v8; \ register t9 _n9 __asm(#r9) = _##name##_v9; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -852,7 +852,7 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -863,9 +863,9 @@ extern "C" { register t8 _n8 __asm(#r8) = _##name##_v8; \ register t9 _n9 __asm(#r9) = _##name##_v9; \ register t10 _n10 __asm(#r10) = _##name##_v10; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9), "rf"(_n10) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9), "rf"(_n10) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ @@ -889,7 +889,7 @@ extern "C" { register int _d1 __asm("d1"); \ register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -900,9 +900,9 @@ extern "C" { register t8 _n8 __asm(#r8) = _##name##_v8; \ register t9 _n9 __asm(#r9) = _##name##_v9; \ register t10 _n10 __asm(#r10) = _##name##_v10; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_d0), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9), "rf"(_n10) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9), "rf"(_n10) \ : "fp0", "fp1", "cc", "memory"); \ } \ }) @@ -926,7 +926,7 @@ extern "C" { register int _a0 __asm("a0"); \ register int _a1 __asm("a1"); \ register rt _##name##_re __asm("d0"); \ - register void *const _##name##_bn __asm("a6") = (bn); \ + void *const _##name##_bn = (bn); \ register t1 _n1 __asm(#r1) = _##name##_v1; \ register t2 _n2 __asm(#r2) = _##name##_v2; \ register t3 _n3 __asm(#r3) = _##name##_v3; \ @@ -938,9 +938,9 @@ extern "C" { register t9 _n9 __asm(#r9) = _##name##_v9; \ register t10 _n10 __asm(#r10) = _##name##_v10; \ register t11 _n11 __asm(#r11) = _##name##_v11; \ - __asm volatile ("jsr %%a6@(-"#offs":W)" \ + __asm volatile ("move.l %%a6,%%sp@-\n\tmove.l %[libbase],%%a6\n\tjsr %%a6@(-"#offs":W)\n\tmove.l %%sp@+,%%a6" \ : "=r" (_##name##_re), "=r" (_d1), "=r" (_a0), "=r" (_a1) \ - : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9), "rf"(_n10), "rf"(_n11) \ + : [libbase] "a" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5), "rf"(_n6), "rf"(_n7), "rf"(_n8), "rf"(_n9), "rf"(_n10), "rf"(_n11) \ : "fp0", "fp1", "cc", "memory"); \ _##name##_re; \ }); \ diff --git a/src/system/boot/platform/amiga_m68k/start.cpp b/src/system/boot/platform/amiga_m68k/start.cpp index 25b30c16ba..4158ab94ea 100644 --- a/src/system/boot/platform/amiga_m68k/start.cpp +++ b/src/system/boot/platform/amiga_m68k/start.cpp @@ -136,7 +136,6 @@ _start(void) console_init(); dprintf("ramtop = %p\n", NULL); cpu_init(); - panic("plop %d", 1234); mmu_init(); // wait a bit to give the user the opportunity to press a key