From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeffrey A Law To: Mark Klein Cc: gcc@gcc.gnu.org Subject: Re: MPE Port Date: Wed, 08 Sep 1999 01:49:00 -0000 Message-id: <28316.936780362@upchuck.cygnus.com> References: <4.1.19990906102604.00c75df0@garfield.dis.com> X-SW-Source: 1999-09/msg00273.html In message < 4.1.19990906102604.00c75df0@garfield.dis.com >you write: > Explanation: > > Handle certain MPE nuances such as bcopy() not being able to do > overlapped moves. Invoke millicode instead of bcopy(). > > Sat Sep 4 18:00:00 PDT 1999 Mark Klein (mklein@dis.com) > > * pa/xm-pampeix.h: New file for the MPE port. > > *** egcs/gcc/config/pa/xm-pampeix.h Wed Dec 31 16:00:00 1969 > --- egcs-ss/gcc/config/pa/xm-pampeix.h Mon Aug 30 21:52:06 1999 > *************** > *** 0 **** > --- 1,109 ---- > + /* Configuration for GNU C-compiler for PA-RISC. > + Copyright (C) 1998 Free Software Foundation, Inc. > + Contributed by Mark Klein (mklein@dis.com) Copyright date. > + You should have received a copy of the GNU General Public License > + along with GNU CC; see the file COPYING. If not, write to > + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ Address update. > + /* Use System V memory functions. */ > + #ifndef _BCMP_DEFINED > + #define _BCMP_DEFINED > + #ifndef BSTRING > + #define BSTRING > + #endif > + #if !defined(bcopy) && !defined(HAS_BCOPY) > + inline static void > + bcopy(const void *src,void *dst,int len) { > + asm volatile ( > + ".import $$lr_unk_unk,MILLICODE; > + copy %0, %%r26; > + copy %1, %%r25; > + bl $$lr_unk_unk,%%r31; > + copy %2, %%r24" > + : > + : "r" (src), > + "r" (dst), > + "r" (len) > + : "%r24", > + "%r25", > + "%r26", > + "%r31"); > + } > + #endif Ouch. I presume you do not have a function memcpy, memmove or similar routine? I'd like to hold off on that fragment for now -- we may be able to make the entire point moot by having libiberty available for host and build machines. > + #define STARTFILE_SPEC "" ?!? This does not belong in an xm.h file. jeff From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeffrey A Law To: Mark Klein Cc: gcc@gcc.gnu.org Subject: Re: MPE Port Date: Thu, 30 Sep 1999 18:02:00 -0000 Message-ID: <28316.936780362@upchuck.cygnus.com> References: <4.1.19990906102604.00c75df0@garfield.dis.com> X-SW-Source: 1999-09n/msg00273.html Message-ID: <19990930180200.gOcnPEBeLvFtdBcZZhFLV7MptOgMEW_HDEVXskBfuOo@z> In message < 4.1.19990906102604.00c75df0@garfield.dis.com >you write: > Explanation: > > Handle certain MPE nuances such as bcopy() not being able to do > overlapped moves. Invoke millicode instead of bcopy(). > > Sat Sep 4 18:00:00 PDT 1999 Mark Klein (mklein@dis.com) > > * pa/xm-pampeix.h: New file for the MPE port. > > *** egcs/gcc/config/pa/xm-pampeix.h Wed Dec 31 16:00:00 1969 > --- egcs-ss/gcc/config/pa/xm-pampeix.h Mon Aug 30 21:52:06 1999 > *************** > *** 0 **** > --- 1,109 ---- > + /* Configuration for GNU C-compiler for PA-RISC. > + Copyright (C) 1998 Free Software Foundation, Inc. > + Contributed by Mark Klein (mklein@dis.com) Copyright date. > + You should have received a copy of the GNU General Public License > + along with GNU CC; see the file COPYING. If not, write to > + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ Address update. > + /* Use System V memory functions. */ > + #ifndef _BCMP_DEFINED > + #define _BCMP_DEFINED > + #ifndef BSTRING > + #define BSTRING > + #endif > + #if !defined(bcopy) && !defined(HAS_BCOPY) > + inline static void > + bcopy(const void *src,void *dst,int len) { > + asm volatile ( > + ".import $$lr_unk_unk,MILLICODE; > + copy %0, %%r26; > + copy %1, %%r25; > + bl $$lr_unk_unk,%%r31; > + copy %2, %%r24" > + : > + : "r" (src), > + "r" (dst), > + "r" (len) > + : "%r24", > + "%r25", > + "%r26", > + "%r31"); > + } > + #endif Ouch. I presume you do not have a function memcpy, memmove or similar routine? I'd like to hold off on that fragment for now -- we may be able to make the entire point moot by having libiberty available for host and build machines. > + #define STARTFILE_SPEC "" ?!? This does not belong in an xm.h file. jeff