From mint-bounce@lists.fishpool.fi Mon May 18 13:13:34 2009 Message-ID: <4A119540.40302@freesbee.fr> Date: Mon, 18 May 2009 19:05:04 +0200 From: =?ISO-8859-1?Q?Vincent_Rivi=E8re?= User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: mint Subject: Re: [MiNT] MiNTLib for ColdFire References: <49F743B1.8030803@freesbee.fr> <4A108B1A.1040708@freesbee.fr> <4A10979A.5020909@freesbee.fr> In-Reply-To: <4A10979A.5020909@freesbee.fr> Content-Type: multipart/mixed; boundary="------------020208000205000800050302" X-Antivirus: avast! (VPS 090517-0, 17/05/2009), Outbound message X-Antivirus-Status: Clean X-ecartis-version: Ecartis v1.0.0 Sender: mint-bounce@lists.fishpool.fi Errors-to: mint-bounce@lists.fishpool.fi X-original-sender: vincent.riviere@freesbee.fr Precedence: bulk List-help: List-unsubscribe: List-Id: X-List-ID: List-subscribe: List-owner: List-post: This is a multi-part message in MIME format. --------------020208000205000800050302 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Andreas Schwab wrote: > Just use addql everywhere, it's absolutely the same. So here is a patch for replacing all addq.w to address register by addq.l= . There is no performance or size loss for current targets, and it is ColdF= ire=20 compatible. Alan, please commit. I will send an updated ColdFire patch after this one. --=20 Vincent Rivi=E8re --------------020208000205000800050302 Content-Type: text/plain; name="addq.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="addq.patch" diff -aurN -x CVS mintlib.orig/ChangeLog mintlib/ChangeLog --- mintlib.orig/ChangeLog 2009-05-17 18:13:05.750000000 +0200 +++ mintlib/ChangeLog 2009-05-18 18:44:52.328125000 +0200 @@ -1,3 +1,10 @@ +2009-05-18 Monday 18:44 Vincent Riviere + * mint/mintbind.h, mint/osbind.h, mintlib/setjmp.S, syscall/traps.c + + Replaced "addqw" to address register by "addql". + This instruction has the same behaviour, size and speed, + and is ColdFire compatible. + 2009-05-14 Thursday 23:37 Vincent Riviere * include/macros.h, include/bits/byteswap.h, include/bits/math-68881.h, diff -aurN -x CVS mintlib.orig/include/mint/mintbind.h mintlib/include/mint/mintbind.h --- mintlib.orig/include/mint/mintbind.h 2009-05-17 18:13:06.265625000 +0200 +++ mintlib/include/mint/mintbind.h 2009-05-18 18:33:07.562500000 +0200 @@ -77,7 +77,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #1\n\t" \ - "addqw #8,sp" \ + "addql #8,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b), "r"(_c) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -123,7 +123,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #1\n\t" \ - "addqw #8,sp" \ + "addql #8,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ diff -aurN -x CVS mintlib.orig/include/mint/osbind.h mintlib/include/mint/osbind.h --- mintlib.orig/include/mint/osbind.h 2009-05-17 18:13:06.265625000 +0200 +++ mintlib/include/mint/osbind.h 2009-05-18 18:33:43.468750000 +0200 @@ -140,7 +140,7 @@ ( \ "movw %1,sp@-\n\t" \ "trap #1\n\t" \ - "addqw #2,sp\n\t" \ + "addql #2,sp\n\t" \ : "=r"(retvalue) /* outputs */ \ : "g"(n) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -160,7 +160,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #1\n\t" \ - "addqw #4,sp" \ + "addql #4,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -180,7 +180,7 @@ "movl %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #1\n\t" \ - "addqw #6,sp" \ + "addql #6,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -202,7 +202,7 @@ "movl %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #1\n\t" \ - "addqw #8,sp" \ + "addql #8,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -297,7 +297,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #1\n\t" \ - "addqw #6,sp" \ + "addql #6,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -389,7 +389,7 @@ "movl %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #13\n\t" \ - "addqw #6,sp" \ + "addql #6,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -407,7 +407,7 @@ ( \ "movw %1,sp@-\n\t" \ "trap #13\n\t" \ - "addqw #2,sp" \ + "addql #2,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -427,7 +427,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #13\n\t" \ - "addqw #4,sp" \ + "addql #4,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -449,7 +449,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #13\n\t" \ - "addqw #6,sp" \ + "addql #6,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -499,7 +499,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #13\n\t" \ - "addqw #8,sp" \ + "addql #8,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -521,7 +521,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #14\n\t" \ - "addqw #8,sp" \ + "addql #8,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -565,7 +565,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #14\n\t" \ - "addqw #4,sp" \ + "addql #4,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -583,7 +583,7 @@ ( \ "movw %1,sp@-\n\t" \ "trap #14\n\t" \ - "addqw #2,sp" \ + "addql #2,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -627,7 +627,7 @@ "movl %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #14\n\t" \ - "addqw #6,sp" \ + "addql #6,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ @@ -649,7 +649,7 @@ "movw %2,sp@-\n\t" \ "movw %1,sp@-\n\t" \ "trap #14\n\t" \ - "addqw #6,sp" \ + "addql #6,sp" \ : "=r"(retvalue) /* outputs */ \ : "g"(n), "r"(_a), "r"(_b) /* inputs */ \ : __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ diff -aurN -x CVS mintlib.orig/mintlib/setjmp.S mintlib/mintlib/setjmp.S --- mintlib.orig/mintlib/setjmp.S 2000-10-12 12:56:41.000000000 +0200 +++ mintlib/mintlib/setjmp.S 2009-05-18 18:36:54.812500000 +0200 @@ -37,7 +37,7 @@ clrl sp@- | add no signals to sigmask movew #0x116, sp@- | Psigblock() system call trap #1 | - addqw #6, sp + addql #6, sp movel sp@+, a0 | restore register a0 @@ -68,7 +68,7 @@ jeq NOMINT | no -- do not call sigreturn movew #0x11a, sp@- | Psigreturn() system call trap #1 | (ignored if not in a sig handler) - addqw #2, sp + addql #2, sp NOMINT: movel sp@(4),a0 | address of jmp_buf[] movel a0@(52),d0 | want to restore sigmask? @@ -87,7 +87,7 @@ movel d0, sp@- | restore signal mask movew #0x117, sp@- | Psigsetmask() system call trap #1 | - addqw #6, sp + addql #6, sp movel sp@+, a0 | restore register a0 diff -aurN -x CVS mintlib.orig/syscall/traps.c mintlib/syscall/traps.c --- mintlib.orig/syscall/traps.c 2009-05-17 18:13:06.875000000 +0200 +++ mintlib/syscall/traps.c 2009-05-18 18:37:42.703125000 +0200 @@ -146,7 +146,7 @@ fprintf(out, "\t\t\"movw\t%%1,sp@-\\n\\t\"\n"); fprintf(out, "\t\t\"trap\t#1\\n\\t\"\n"); if (size <= 8) - fprintf(out, "\t\t\"addqw\t#%i,sp\"\n", size); + fprintf(out, "\t\t\"addql\t#%i,sp\"\n", size); else fprintf(out, "\t\t\"lea\tsp@(%i),sp\"\n", size); --------------020208000205000800050302--