Index: m3-libs/m3core/src/atomic/m3makefile =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/atomic/m3makefile,v retrieving revision 1.12 diff -u -r1.12 m3makefile --- m3-libs/m3core/src/atomic/m3makefile 19 Jun 2010 09:44:56 -0000 1.12 +++ m3-libs/m3core/src/atomic/m3makefile 26 Jul 2010 13:39:48 -0000 @@ -4,14 +4,17 @@ template("atomic") Atomic("Address") -Atomic("Boolean") -Atomic("Char") Atomic("Integer") -if not (equal(TARGET, "PPC_LINUX") or equal(TARGET, "PPC_DARWIN") - or equal(TARGET, "PPC32_OPENBSD")) +Atomic("Refany") + +if not ({"PPC_LINUX", "PPC_DARWIN", "PPC32_OPENBSD"} contains TARGET) Atomic("Longint") end -Atomic("Refany") -Atomic("WideChar") + +if not ({"MIPS64_OPENBSD", "MIPS64EL_OPENBSD"} contains TARGET) + Atomic("Boolean") + Atomic("Char") + Atomic("WideChar") +end end Index: m3-libs/m3core/src/runtime/common/Compiler.tmpl =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/common/Compiler.tmpl,v retrieving revision 1.30 diff -u -r1.30 Compiler.tmpl --- m3-libs/m3core/src/runtime/common/Compiler.tmpl 19 Jun 2010 10:04:03 -0000 1.30 +++ m3-libs/m3core/src/runtime/common/Compiler.tmpl 26 Jul 2010 13:39:48 -0000 @@ -24,7 +24,8 @@ " AMD64_NETBSD, AMD64_OPENBSD, PPC64_DARWIN,", " I386_NT, I386_LINUX, I386_NETBSD, I386_FREEBSD,", " I386_MINGW, I386_CYGWIN, ALPHA32_VMS, ALPHA64_VMS,", - " I386_SOLARIS, AMD64_SOLARIS, SPARC32_SOLARIS, ARMEL_LINUX};", + " I386_SOLARIS, AMD64_SOLARIS, SPARC32_SOLARIS, ARMEL_LINUX,", + " MIPS64EL_OPENBSD};", "", "CONST", " ThisOS = OS." & OS_TYPE & ";", Index: m3-libs/m3core/src/unix/Common/context/setjmp/m3makefile =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/unix/Common/context/setjmp/m3makefile,v retrieving revision 1.8 diff -u -r1.8 m3makefile --- m3-libs/m3core/src/unix/Common/context/setjmp/m3makefile 24 Jul 2010 14:16:25 -0000 1.8 +++ m3-libs/m3core/src/unix/Common/context/setjmp/m3makefile 26 Jul 2010 13:39:48 -0000 @@ -1,4 +1,7 @@ -if equal (TARGET, "I386_OPENBSD") +if equal (TARGET_OS, "OPENBSD") h_source("context") c_source("context") + if equal(TARGET_ARCH, "MIPS64") + s_source("context_mips64") + end end Index: m3-sys/m3cc/src/platforms.quake =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3cc/src/platforms.quake,v retrieving revision 1.23 diff -u -r1.23 platforms.quake --- m3-sys/m3cc/src/platforms.quake 26 Jul 2010 13:03:55 -0000 1.23 +++ m3-sys/m3cc/src/platforms.quake 26 Jul 2010 13:39:49 -0000 @@ -45,6 +45,7 @@ "MIPS64_IRIX" : "mips64-irix", "MIPS64_LINUX" : "mips64-linux", "MIPS64_OPENBSD" : "mips64-openbsd", + "MIPS64EL_OPENBSD" : "mips64el-openbsd", "NT386" : "i586-pc-mingw32", "NT386GNU" : "i586-pc-cygwin", "NT386MINGNU" : "i586-pc-mingw32", Index: m3-sys/m3middle/src/Target.i3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3middle/src/Target.i3,v retrieving revision 1.59 diff -u -r1.59 Target.i3 --- m3-sys/m3middle/src/Target.i3 19 Jun 2010 04:56:32 -0000 1.59 +++ m3-sys/m3middle/src/Target.i3 26 Jul 2010 13:39:50 -0000 @@ -46,7 +46,8 @@ I386_OPENBSD, I386_SOLARIS, LINUXLIBC6, - MIPS64_OPENBSD, + MIPS64_OPENBSD, (* e.g. SGI *) + MIPS64EL_OPENBSD, (* e.g. Loongson *) NT386, NT386GNU, NetBSD2_i386, @@ -92,6 +93,7 @@ "I386_SOLARIS", "LINUXLIBC6", "MIPS64_OPENBSD", + "MIPS64EL_OPENBSD", "NT386", "NT386GNU", "NetBSD2_i386", Index: m3-sys/m3middle/src/Target.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3middle/src/Target.m3,v retrieving revision 1.105 diff -u -r1.105 Target.m3 --- m3-sys/m3middle/src/Target.m3 19 Jun 2010 04:56:32 -0000 1.105 +++ m3-sys/m3middle/src/Target.m3 26 Jul 2010 13:39:50 -0000 @@ -229,7 +229,8 @@ (* 64bit *) IF TextUtils.StartsWith(system, "ALPHA_") - OR TextUtils.Contains(system, "64_") THEN + OR TextUtils.Contains(system, "64_") + OR TextUtils.Contains(system, "64EL_") THEN Init64(); END; @@ -238,14 +239,17 @@ IF TextUtils.StartsWith(system, "SPARC64_") OR TextUtils.StartsWith(system, "ARMEL") OR TextUtils.StartsWith(system, "PA") - OR TextUtils.StartsWith(system, "MIPS64_") THEN + OR TextUtils.StartsWith(system, "MIPS64") THEN Aligned_procedures := FALSE; END; (* big endian *) IF TextUtils.StartsWith(system, "PA") - OR TextUtils.StartsWith(system, "MIPS") (* ambiguous *) + OR (TextUtils.StartsWith(system, "MIPS") + AND NOT TextUtils.StartsWith(system, "MIPSEL") + AND NOT TextUtils.StartsWith(system, "MIPS32EL") + AND NOT TextUtils.StartsWith(system, "MIPS64EL")) OR TextUtils.StartsWith(system, "PPC") (* ambiguous *) OR TextUtils.StartsWith(system, "SPARC") OR TextUtils.StartsWith(system, "SOL") THEN @@ -295,7 +299,8 @@ Jumpbuf_size := 80 * Address.size; Jumpbuf_align := 128; - | Systems.MIPS64_OPENBSD => + | Systems.MIPS64_OPENBSD, + Systems.MIPS64EL_OPENBSD => Jumpbuf_size := 16_53 * Address.size; | Systems.I386_INTERIX => Index: scripts/sysinfo.sh =================================================================== RCS file: /usr/cvs/cm3/scripts/sysinfo.sh,v retrieving revision 1.96 diff -u -r1.96 sysinfo.sh --- scripts/sysinfo.sh 20 Jul 2010 11:24:04 -0000 1.96 +++ scripts/sysinfo.sh 26 Jul 2010 13:39:51 -0000 @@ -261,10 +261,11 @@ esac;; OpenBSD) - case "`uname -m`" in - macppc) CM3_TARGET=PPC32_OPENBSD;; + case "`arch -s`" in + powerpc) CM3_TARGET=PPC32_OPENBSD;; sparc64) CM3_TARGET=SPARC64_OPENBSD;; mips64) CM3_TARGET=MIPS64_OPENBSD;; + mips64el) CM3_TARGET=MIPS64EL_OPENBSD;; i386) CM3_TARGET=I386_OPENBSD;; esac;; esac Index: scripts/python/pylib.py =================================================================== RCS file: /usr/cvs/cm3/scripts/python/pylib.py,v retrieving revision 1.347 diff -u -r1.347 pylib.py --- scripts/python/pylib.py 21 Jul 2010 15:58:09 -0000 1.347 +++ scripts/python/pylib.py 26 Jul 2010 13:39:51 -0000 @@ -344,8 +344,8 @@ # systematic naming for proc in ["ALPHA", "ALPHA32", "ALPHA64", "AMD64", "ARM", "ARMEL", "IA64", "I386", "PPC", "PPC32", - "PPC64", "SPARC", "SPARC32", "SPARC64", "MIPS32", "MIPS64", "PA32", "PA64", "SH"]: - for os in ["AIX", "CE", "CYGWIN", "DARWIN", "FREEBSD", "HPUX" "INTERIX", "IRIX", + "PPC64", "SPARC", "SPARC32", "SPARC64", "MIPS32", "MIPS64EL", "MIPS64", "PA32", "PA64", "SH"]: + for os in ["AIX", "CE", "CYGWIN", "DARWIN", "FREEBSD", "HPUX", "INTERIX", "IRIX", "LINUX", "MINGW", "NETBSD", "NT", "OPENBSD", "OSF", "SOLARIS", "VMS"]: # "BEOS", "MSDOS" (DJGPP), "OS2" (EMX), "PLAN9" Targets += [proc + "_" + os] @@ -606,6 +606,10 @@ Host = "PPC32_OPENBSD" elif arch == "i386\n": Host = "I386_OPENBSD" + elif arch == "mips64\n": + Host = "MIPS64_OPENBSD" + elif arch == "mips64el\n": + Host = "MIPS64EL_OPENBSD" else: FatalError("unknown OpenBSD platform")