diff --git a/patches/mui/libmui.c b/patches/mui/libmui.c new file mode 100644 index 0000000..a51dc8f --- /dev/null +++ b/patches/mui/libmui.c @@ -0,0 +1,245 @@ +--- libmui.c 2023-04-27 12:59:33.348672817 +0200 ++++ libmui.c 2023-04-27 12:51:04.728764400 +0200 +@@ -35,7 +35,7 @@ + __asm volatile ("jsr a6@(-30:W)" + : "=r" (_res) + : "r" (_base), "r" (cl), "r" (tags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -55,7 +55,7 @@ + __asm volatile ("jsr a6@(-36:W)" + : /* No output */ + : "r" (_base), "r" (obj) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d0", "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + LONG +@@ -74,7 +74,7 @@ + __asm volatile ("jsr a6@(-42:W)" + : "=r" (_res) + : "r" (_base), "r" (app), "r" (win), "r" (flags), "r" (title), "r" (gadgets), "r" (format), "r" (params) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -96,7 +96,7 @@ + __asm volatile ("jsr a6@(-48:W)" + : "=r" (_res) + : "r" (_base), "r" (type), "r" (tags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -119,7 +119,7 @@ + __asm volatile ("jsr a6@(-54:W)" + : "=r" (_res) + : "r" (_base), "r" (req), "r" (tags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -139,7 +139,7 @@ + __asm volatile ("jsr a6@(-60:W)" + : /* No output */ + : "r" (_base), "r" (req) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d0", "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + LONG +@@ -179,7 +179,7 @@ + __asm volatile ("jsr a6@(-78:W)" + : "=r" (_res) + : "r" (_base), "r" (name) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -193,7 +193,7 @@ + __asm volatile ("jsr a6@(-84:W)" + : /* No output */ + : "r" (_base), "r" (cl) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d0", "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + VOID +@@ -206,7 +206,7 @@ + __asm volatile ("jsr a6@(-90:W)" + : /* No output */ + : "r" (_base), "r" (obj), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + VOID +@@ -219,7 +219,7 @@ + __asm volatile ("jsr a6@(-96:W)" + : /* No output */ + : "r" (_base), "r" (obj), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + VOID +@@ -232,7 +232,7 @@ + __asm volatile ("jsr a6@(-102:W)" + : /* No output */ + : "r" (_base), "r" (obj), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + struct Library; +@@ -251,7 +251,7 @@ + __asm volatile ("jsr a6@(-108:W)" + : "=r" (_res) + : "r" (_base), "r" (base), "r" (supername), "r" (supermcc), "r" (datasize), "r" (dispatcher) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -266,7 +266,7 @@ + __asm volatile ("jsr a6@(-114:W)" + : "=r" (_res) + : "r" (_base), "r" (mcc) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -281,7 +281,7 @@ + __asm volatile ("jsr a6@(-120:W)" + : "=r" (_res) + : "r" (_base), "r" (type), "r" (params) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -306,7 +306,7 @@ + __asm volatile ("jsr a6@(-126:W)" + : "=r" (_res) + : "r" (_base), "r" (obj), "r" (l), "r" (t), "r" (w), "r" (h), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -324,7 +324,7 @@ + __asm volatile ("jsr a6@(-156:W)" + : "=r" (_res) + : "r" (_base), "r" (mri), "r" (spec), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -339,7 +339,7 @@ + __asm volatile ("jsr a6@(-162:W)" + : /* No output */ + : "r" (_base), "r" (mri), "r" (pen) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + struct MUI_RenderInfo; +@@ -357,7 +357,7 @@ + __asm volatile ("jsr a6@(-168:W)" + : "=r" (_res) + : "r" (_base), "r" (mri), "r" (l), "r" (t), "r" (w), "r" (h) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -372,7 +372,7 @@ + __asm volatile ("jsr a6@(-174:W)" + : /* No output */ + : "r" (_base), "r" (mri), "r" (h) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d0", "d1", "fp0", "fp1", "cc", "memory"); + } + + struct MUI_RenderInfo; +@@ -388,7 +388,7 @@ + __asm volatile ("jsr a6@(-180:W)" + : "=r" (_res) + : "r" (_base), "r" (mri), "r" (region) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -403,7 +403,7 @@ + __asm volatile ("jsr a6@(-186:W)" + : /* No output */ + : "r" (_base), "r" (mri), "r" (region) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d0", "d1", "fp0", "fp1", "cc", "memory"); + } + + struct MUI_RenderInfo; +@@ -418,7 +418,7 @@ + __asm volatile ("jsr a6@(-192:W)" + : "=r" (_res) + : "r" (_base), "r" (mri), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -433,7 +433,7 @@ + __asm volatile ("jsr a6@(-198:W)" + : /* No output */ + : "r" (_base), "r" (mri), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + } + + ULONG +@@ -446,7 +446,7 @@ + __asm volatile ("jsr a6@(-216:W)" + : "=r" (_res) + : "r" (_base), "r" (obj) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -460,7 +460,7 @@ + __asm volatile ("jsr a6@(-222:W)" + : "=r" (_res) + : "r" (_base), "r" (obj) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -479,7 +479,7 @@ + __asm volatile ("jsr a6@(-228:W)" + : "=r" (_res) + : "r" (_base), "r" (obj), "r" (l), "r" (t), "r" (w), "r" (h), "r" (flags) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "a1", "fp0", "fp1", "cc", "memory"); + return _res; + } + +@@ -494,7 +494,7 @@ + __asm volatile ("jsr a6@(-234:W)" + : /* No output */ + : "r" (_base), "r" (obj), "r" (x), "r" (y) +- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); ++ : "a1", "fp0", "fp1", "cc", "memory"); + } + + diff --git a/sdk/install b/sdk/install index c614c3c..a4b6204 100755 --- a/sdk/install +++ b/sdk/install @@ -96,6 +96,21 @@ case $1 in echo $3/bin/m68k-amigaos-ar r $3/m68k-amigaos/lib/lib$2.a build/$2/lib$2.o $3/bin/m68k-amigaos-ar r $3/m68k-amigaos/lib/lib$2.a build/$2/lib$2.o || exit 1 ;; + liba) + sfd=${a[1]} + file=$(basename $sfd) + name=${file%????} + $3/bin/sfdc --mode=stubs --target=m68k-amigaos --output=build/$2/lib$2.c $3/m68k-amigaos/lib/sfd/$name.sfd || exit 1 + sed -i.bak -e 's/__inline//g' -e 's/: \"d0\",/:/g' build/$2/lib$2.c || exit 1 + rm build/$2/lib$2.c.bak + ;; + libc) + echo $3/bin/m68k-amigaos-gcc -Os -noixemul -fomit-frame-pointer build/$2/lib$2.c -c + $3/bin/m68k-amigaos-gcc -Os -noixemul -fomit-frame-pointer build/$2/lib$2.c -c -o build/$2/lib$2.o || exit 1 + echo $3/bin/m68k-amigaos-ar r $3/m68k-amigaos/lib/lib$2.a build/$2/lib$2.o + $3/bin/m68k-amigaos-ar r $3/m68k-amigaos/lib/lib$2.a build/$2/lib$2.o || exit 1 + ;; + redirinc) echo creating redirecting header $3/m68k-amigaos/include/${a[1]} echo "#include \"${a[2]}\"" >$3/m68k-amigaos/include/${a[1]} diff --git a/sdk/mui.sdk b/sdk/mui.sdk index 799b3a0..8e33182 100644 --- a/sdk/mui.sdk +++ b/sdk/mui.sdk @@ -111,7 +111,9 @@ SDK/MUI/sfd/muimaster_lib.sfd fd2sfd : muimaster_lib.fd clib/muimaster_protos.h sfdc : muimaster_lib.sfd muimaster.h muimaster_lib.h stubs : muimaster_lib.sfd -lib : muimaster_lib.sfd +liba : muimaster_lib.sfd patch : SDK/MUI/C/include/libraries/mui.h +patch : libmui.c +libc : muimaster_lib.sfd sed : m68k-amigaos/include/proto/muimaster_lib.h "s/(#\s+include )/#define NO_INLINE_STDARG\n#define NO_INLINE_VARARGS\n\1\n#undef NO_INLINE_STDARG\n#undef NO_INLINE_VARARGS\n/g" symlink: include/proto/muimaster_lib.h include/proto/muimaster.h \ No newline at end of file