[Vm-dev] [commit][3425] Add EnforceAccessControl= false versions of the Newspeak 32-bit Cog & Stack Spur

commits at squeakvm.org commits at squeakvm.org
Wed Aug 19 23:57:44 UTC 2015


Revision: 3425
Author:   eliot
Date:     2015-08-19 16:57:42 -0700 (Wed, 19 Aug 2015)
Log Message:
-----------
Add EnforceAccessControl=false versions of the Newspeak 32-bit Cog & Stack Spur
VMs for Cadence use.  Add builds to macos32x86 and linux32x86.

Modified Paths:
--------------
    branches/Cog/build.macos32x86/glue.cog.spur/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/build.macos32x86/glue.cog.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj
    branches/Cog/build.macos32x86/glue.cog.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj
    branches/Cog/build.macos32x86/glue.stack.spur/CoreVM.xcodeproj/project.pbxproj
    branches/Cog/build.macos32x86/glue.stack.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj
    branches/Cog/build.macos32x86/glue.stack.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj

Added Paths:
-----------
    branches/Cog/build.linux32x86/glue.cog.spur/
    branches/Cog/build.linux32x86/glue.cog.spur/build/
    branches/Cog/build.linux32x86/glue.cog.spur/build/mvm
    branches/Cog/build.linux32x86/glue.cog.spur/build.assert/
    branches/Cog/build.linux32x86/glue.cog.spur/build.assert/mvm
    branches/Cog/build.linux32x86/glue.cog.spur/build.assert.itimerheartbeat/
    branches/Cog/build.linux32x86/glue.cog.spur/build.assert.itimerheartbeat/mvm
    branches/Cog/build.linux32x86/glue.cog.spur/build.debug/
    branches/Cog/build.linux32x86/glue.cog.spur/build.debug/mvm
    branches/Cog/build.linux32x86/glue.cog.spur/build.debug.itimerheartbeat/
    branches/Cog/build.linux32x86/glue.cog.spur/build.debug.itimerheartbeat/mvm
    branches/Cog/build.linux32x86/glue.cog.spur/build.itimerheartbeat/
    branches/Cog/build.linux32x86/glue.cog.spur/build.itimerheartbeat/mvm
    branches/Cog/build.linux32x86/glue.cog.spur/makeallclean
    branches/Cog/build.linux32x86/glue.cog.spur/makealldirty
    branches/Cog/build.linux32x86/glue.cog.spur/plugins.ext
    branches/Cog/build.linux32x86/glue.cog.spur/plugins.int
    branches/Cog/build.macos32x86/glue.cog.spur/
    branches/Cog/build.macos32x86/glue.stack.spur/
    branches/Cog/nsnacspursrc/
    branches/Cog/nsnacspursrc/examplePlugins.ext
    branches/Cog/nsnacspursrc/examplePlugins.int
    branches/Cog/nsnacspursrc/vm/
    branches/Cog/nsnacspursrc/vm/cogit.c
    branches/Cog/nsnacspursrc/vm/cogit.h
    branches/Cog/nsnacspursrc/vm/cogitARMv5.c
    branches/Cog/nsnacspursrc/vm/cogitIA32.c
    branches/Cog/nsnacspursrc/vm/cogmethod.h
    branches/Cog/nsnacspursrc/vm/cointerp.c
    branches/Cog/nsnacspursrc/vm/cointerp.h
    branches/Cog/nsnacspursrc/vm/exampleSqNamedPrims.h
    branches/Cog/nsnacspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsnacspursrc/vm/interp.h
    branches/Cog/nsnacspursrc/vm/nssendcache.h
    branches/Cog/nsnacspursrc/vm/vmCallback.h
    branches/Cog/nsnacspurstacksrc/
    branches/Cog/nsnacspurstacksrc/examplePlugins.ext
    branches/Cog/nsnacspurstacksrc/examplePlugins.int
    branches/Cog/nsnacspurstacksrc/vm/
    branches/Cog/nsnacspurstacksrc/vm/exampleSqNamedPrims.h
    branches/Cog/nsnacspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsnacspurstacksrc/vm/interp.c
    branches/Cog/nsnacspurstacksrc/vm/interp.h
    branches/Cog/nsnacspurstacksrc/vm/vmCallback.h

Removed Paths:
-------------
    branches/Cog/build.linux32x86/newspeak.cog.v3/

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Added: branches/Cog/build.linux32x86/glue.cog.spur/build/mvm
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/build/mvm	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/build/mvm	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,39 @@
+#!/bin/bash
+# VM with VM profiler and threaded heartbeat
+INSTALLDIR=nsnaccogspurlinuxht
+# Some gcc versions create a broken VM using -O2
+case `gcc -v 2>&1 | grep version | sed 's/gcc version *//'` in
+3.4.*)	OPT="-g -O1 -fwrapv -DNDEBUG -DDEBUGVM=0";;
+*)		OPT="-g -O2 -DNDEBUG -DDEBUGVM=0";;
+esac
+
+if [ $# -ge 1 ]; then
+	case "$1" in
+	-*)	;;
+	*)	INSTALLDIR="$1"; shift
+	esac
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
+test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
+test -f config.h || ../../../platforms/unix/config/configure \
+		--with-vmversion=5.0 \
+		--with-src=nsnacspursrc --with-plugins=nsspursrc/plugins \
+		--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+# prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`
+# but older linux readlinks lack the -f flag
+make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
+../../editnewspeakinstall.sh ../../../products/$INSTALLDIR "$@"


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/build/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/build.assert/mvm
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/build.assert/mvm	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/build.assert/mvm	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,35 @@
+#!/bin/bash
+# assert Spur VM with VM profiler and threaded heartbeat
+INSTALLDIR=assert/nsnaccogspurlinuxht
+OPT="-g3 -O1 -fwrapv -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DDEBUGVM=0"
+
+if [ $# -ge 1 ]; then
+	case "$1" in
+	-*)	;;
+	*)	INSTALLDIR="$1"; shift
+	esac
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
+test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
+test -f config.h || ../../../platforms/unix/config/configure \
+		--with-vmversion=5.0 \
+		--with-src=nsnacspursrc --with-plugins=nsspursrc/plugins \
+		--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+# prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`
+# but older linux readlinks lack the -f flag
+make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
+../../editnewspeakinstall.sh ../../../products/$INSTALLDIR "$@"


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/build.assert/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/build.assert.itimerheartbeat/mvm
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/build.assert.itimerheartbeat/mvm	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/build.assert.itimerheartbeat/mvm	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,33 @@
+#!/bin/bash
+# assert Spur VM with VM profiler and itimer heartbeat
+INSTALLDIR=assert/nsnaccogspurlinux
+OPT="-g3 -O1 -fwrapv -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DDEBUGVM=0"
+
+if [ $# -ge 1 ]; then
+	case "$1" in
+	-*)	;;
+	*)	INSTALLDIR="$1"; shift
+	esac
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
+test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
+test -f config.h || ../../../platforms/unix/config/configure \
+		--with-vmversion=5.0 \
+		--with-src=nsnacspursrc --with-plugins=nsspursrc/plugins \
+		--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
+../../editnewspeakinstall.sh ../../../products/$INSTALLDIR "$@"


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/build.assert.itimerheartbeat/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/build.debug/mvm
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/build.debug/mvm	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/build.debug/mvm	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,35 @@
+#!/bin/bash
+# debug Spur VM with VM profiler and threaded heartbeat
+INSTALLDIR=debug/nsnaccogspurlinuxht
+OPT="-g3 -O0 -fwrapv -DDEBUGVM=1"
+
+if [ $# -ge 1 ]; then
+	case "$1" in
+	-*)	;;
+	*)	INSTALLDIR="$1"; shift
+	esac
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
+test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
+test -f config.h || ../../../platforms/unix/config/configure \
+		--with-vmversion=5.0 \
+		--with-src=nsnacspursrc --with-plugins=nsspursrc/plugins \
+		--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+# prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`
+# but older linux readlinks lack the -f flag
+make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
+../../editnewspeakinstall.sh ../../../products/$INSTALLDIR "$@"


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/build.debug/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/build.debug.itimerheartbeat/mvm
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/build.debug.itimerheartbeat/mvm	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/build.debug.itimerheartbeat/mvm	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,33 @@
+#!/bin/bash
+# debug Spur VM with VM profiler and itimer heartbeat
+INSTALLDIR=debug/nsnaccogspurlinux
+OPT="-g3 -O0 -fwrapv -DDEBUGVM=1"
+
+if [ $# -ge 1 ]; then
+	case "$1" in
+	-*)	;;
+	*)	INSTALLDIR="$1"; shift
+	esac
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
+test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
+test -f config.h || ../../../platforms/unix/config/configure \
+		--with-vmversion=5.0 \
+		--with-src=nsnacspursrc --with-plugins=nsspursrc/plugins \
+		--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
+../../editnewspeakinstall.sh ../../../products/$INSTALLDIR "$@"


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/build.debug.itimerheartbeat/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/build.itimerheartbeat/mvm
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/build.itimerheartbeat/mvm	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/build.itimerheartbeat/mvm	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Spur VM with VM profiler and itimer heartbeat
+INSTALLDIR=nsnaccogspurlinux
+# Some gcc versions create a broken VM using -O2
+case `gcc -v 2>&1 | grep version | sed 's/gcc version *//'` in
+3.4.*)	OPT="-g -O1 -fwrapv -DNDEBUG -DDEBUGVM=0";;
+*)		OPT="-g -O2 -DNDEBUG -DDEBUGVM=0";;
+esac
+
+if [ $# -ge 1 ]; then
+	case "$1" in
+	-*)	;;
+	*)	INSTALLDIR="$1"; shift
+	esac
+fi
+
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO)	echo "ok but this isn't safe!!";;
+*)			rm config.h; test -f Makefile && make reallyclean
+esac
+test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
+test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
+test -f config.h || ../../../platforms/unix/config/configure \
+		--with-vmversion=5.0 \
+		--with-src=nsnacspursrc --with-plugins=nsspursrc/plugins \
+		--without-vm-display-fbdev --without-npsqueak \
+	CC="gcc -m32" \
+	CXX="g++ -m32" \
+	CFLAGS="$OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1" \
+	LIBS="-lpthread -luuid" \
+	LDFLAGS=-Wl,-z,now
+rm -f vm/sqUnixMain.o # nuke version info
+rm -rf ../../../products/$INSTALLDIR
+make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
+../../editnewspeakinstall.sh ../../../products/$INSTALLDIR "$@"


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/build.itimerheartbeat/mvm
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/makeallclean	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/makeallclean	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,6 @@
+#!/bin/sh
+trap 'exit 2' HUP INT PIPE TERM
+for d in `dirname $0`/build*; do
+	(cd $d
+	 echo y | ./mvm "$@")
+done


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/makeallclean
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/makealldirty	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/makealldirty	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,6 @@
+#!/bin/sh
+trap 'exit 2' HUP INT PIPE TERM
+for d in `dirname $0`/build*; do
+	(cd $d
+	 echo n | ./mvm "$@")
+done


Property changes on: branches/Cog/build.linux32x86/glue.cog.spur/makealldirty
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/build.linux32x86/glue.cog.spur/plugins.ext
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/plugins.ext	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/plugins.ext	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,3 @@
+# Copied, perhaps edited, from ../../../nscogsrc/examplePlugins.ext
+EXTERNAL_PLUGINS = \
+SqueakSSL

Added: branches/Cog/build.linux32x86/glue.cog.spur/plugins.int
===================================================================
--- branches/Cog/build.linux32x86/glue.cog.spur/plugins.int	                        (rev 0)
+++ branches/Cog/build.linux32x86/glue.cog.spur/plugins.int	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,27 @@
+# Copied, perhaps edited, from ../../../nscogsrc/examplePlugins.int
+INTERNAL_PLUGINS = \
+AioPlugin \
+AsynchFilePlugin \
+BMPReadWriterPlugin \
+B2DPlugin \
+BitBltPlugin \
+DSAPrims \
+DropPlugin \
+FileCopyPlugin \
+FilePlugin \
+FloatArrayPlugin \
+FloatMathPlugin \
+ZipPlugin \
+JPEGReadWriter2Plugin \
+JPEGReaderPlugin \
+LargeIntegers \
+Matrix2x3Plugin \
+MiscPrimitivePlugin \
+IA32ABI \
+RePlugin \
+SecurityPlugin \
+SocketPlugin \
+SurfacePlugin \
+UUIDPlugin \
+UnixOSProcessPlugin \
+VMProfileLinuxSupportPlugin

Modified: branches/Cog/build.macos32x86/glue.cog.spur/CoreVM.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/build.macos32x86/newspeak.cog.spur/CoreVM.xcodeproj/project.pbxproj	2015-08-11 19:42:12 UTC (rev 3420)
+++ branches/Cog/build.macos32x86/glue.cog.spur/CoreVM.xcodeproj/project.pbxproj	2015-08-19 23:57:42 UTC (rev 3425)
@@ -759,7 +759,7 @@
 				737D7E2513BAB68900347756 /* cogmethod.h */,
 			);
 			name = vm;
-			path = ../../nsspursrc/vm;
+			path = ../../nsnacspursrc/vm;
 			sourceTree = "<group>";
 		};
 		F5F8AE0802EB4E090100013C /* Mac OS */ = {

Modified: branches/Cog/build.macos32x86/glue.cog.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/build.macos32x86/newspeak.cog.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj	2015-08-11 19:42:12 UTC (rev 3420)
+++ branches/Cog/build.macos32x86/glue.cog.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj	2015-08-19 23:57:42 UTC (rev 3425)
@@ -27,7 +27,7 @@
 		73D8A6411701272700C66275 /* sqMacSSL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sqMacSSL.c; path = "../../../platforms/Mac OS/plugins/SqueakSSL/sqMacSSL.c"; sourceTree = SOURCE_ROOT; };
 		8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
 		8D01CCD20486CAD60068D4B7 /* SqueakSSL.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SqueakSSL.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
-		DA3A20F50AA63CBF0050B983 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsspursrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
+		DA3A20F50AA63CBF0050B983 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsnacspursrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
 		DA3A20F60AA63CDC0050B983 /* sqMemoryAccess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqMemoryAccess.h; path = ../../../platforms/Cross/vm/sqMemoryAccess.h; sourceTree = SOURCE_ROOT; };
 		DA3A20F70AA63CDC0050B983 /* sqVirtualMachine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqVirtualMachine.h; path = ../../../platforms/Cross/vm/sqVirtualMachine.h; sourceTree = SOURCE_ROOT; };
 		DA3A20F80AA63D000050B983 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = "../../../platforms/Mac OS/vm/config.h"; sourceTree = SOURCE_ROOT; };

Modified: branches/Cog/build.macos32x86/glue.cog.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/build.macos32x86/newspeak.cog.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj	2015-08-11 19:42:12 UTC (rev 3420)
+++ branches/Cog/build.macos32x86/glue.cog.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj	2015-08-19 23:57:42 UTC (rev 3425)
@@ -16,7 +16,7 @@
 		08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
 		7308DE360B9614A4003B7CCD /* UnixOSProcessPlugin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = UnixOSProcessPlugin.c; path = ../../../nsspursrc/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c; sourceTree = "<group>"; };
 		73662FE60F53864E00C64E7F /* sqMemoryAccess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqMemoryAccess.h; path = Cross/vm/sqMemoryAccess.h; sourceTree = "<group>"; };
-		73662FE70F53864E00C64E7F /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsspursrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
+		73662FE70F53864E00C64E7F /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsnacspursrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
 		73662FE80F53864E00C64E7F /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = "Mac OS/vm/config.h"; sourceTree = "<group>"; };
 		73662FE90F53864E00C64E7F /* sqConfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqConfig.h; path = "Mac OS/vm/sqConfig.h"; sourceTree = "<group>"; };
 		73662FEA0F53864E00C64E7F /* sqPlatformSpecific.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqPlatformSpecific.h; path = "Mac OS/vm/sqPlatformSpecific.h"; sourceTree = "<group>"; };

Modified: branches/Cog/build.macos32x86/glue.stack.spur/CoreVM.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/build.macos32x86/newspeak.stack.spur/CoreVM.xcodeproj/project.pbxproj	2015-08-11 19:42:12 UTC (rev 3420)
+++ branches/Cog/build.macos32x86/glue.stack.spur/CoreVM.xcodeproj/project.pbxproj	2015-08-19 23:57:42 UTC (rev 3425)
@@ -745,7 +745,7 @@
 				737D7E2413BAB68900347756 /* vmCallback.h */,
 			);
 			name = vm;
-			path = ../../nsspurstacksrc/vm;
+			path = ../../nsnacspurstacksrc/vm;
 			sourceTree = "<group>";
 		};
 		F5F8AE0802EB4E090100013C /* Mac OS */ = {

Modified: branches/Cog/build.macos32x86/glue.stack.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/build.macos32x86/newspeak.stack.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj	2015-08-11 19:42:12 UTC (rev 3420)
+++ branches/Cog/build.macos32x86/glue.stack.spur/SqueakSSL/SqueakSSL.xcodeproj/project.pbxproj	2015-08-19 23:57:42 UTC (rev 3425)
@@ -27,7 +27,7 @@
 		73D8A6411701272700C66275 /* sqMacSSL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sqMacSSL.c; path = "../../../platforms/Mac OS/plugins/SqueakSSL/sqMacSSL.c"; sourceTree = SOURCE_ROOT; };
 		8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
 		8D01CCD20486CAD60068D4B7 /* SqueakSSL.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SqueakSSL.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
-		DA3A20F50AA63CBF0050B983 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsspurstacksrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
+		DA3A20F50AA63CBF0050B983 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsnacspurstacksrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
 		DA3A20F60AA63CDC0050B983 /* sqMemoryAccess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqMemoryAccess.h; path = ../../../platforms/Cross/vm/sqMemoryAccess.h; sourceTree = SOURCE_ROOT; };
 		DA3A20F70AA63CDC0050B983 /* sqVirtualMachine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqVirtualMachine.h; path = ../../../platforms/Cross/vm/sqVirtualMachine.h; sourceTree = SOURCE_ROOT; };
 		DA3A20F80AA63D000050B983 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = "../../../platforms/Mac OS/vm/config.h"; sourceTree = SOURCE_ROOT; };

Modified: branches/Cog/build.macos32x86/glue.stack.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj
===================================================================
--- branches/Cog/build.macos32x86/newspeak.stack.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj	2015-08-11 19:42:12 UTC (rev 3420)
+++ branches/Cog/build.macos32x86/glue.stack.spur/UnixOSProcessPlugin/UnixOSProcessPlugin.xcodeproj/project.pbxproj	2015-08-19 23:57:42 UTC (rev 3425)
@@ -16,7 +16,7 @@
 		08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
 		7308DE360B9614A4003B7CCD /* UnixOSProcessPlugin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = UnixOSProcessPlugin.c; path = ../../../nsspursrc/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c; sourceTree = "<group>"; };
 		73662FE60F53864E00C64E7F /* sqMemoryAccess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqMemoryAccess.h; path = Cross/vm/sqMemoryAccess.h; sourceTree = "<group>"; };
-		73662FE70F53864E00C64E7F /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsspurstacksrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
+		73662FE70F53864E00C64E7F /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../nsnacspurstacksrc/vm/interp.h; sourceTree = SOURCE_ROOT; };
 		73662FE80F53864E00C64E7F /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = "Mac OS/vm/config.h"; sourceTree = "<group>"; };
 		73662FE90F53864E00C64E7F /* sqConfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqConfig.h; path = "Mac OS/vm/sqConfig.h"; sourceTree = "<group>"; };
 		73662FEA0F53864E00C64E7F /* sqPlatformSpecific.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sqPlatformSpecific.h; path = "Mac OS/vm/sqPlatformSpecific.h"; sourceTree = "<group>"; };

Added: branches/Cog/nsnacspursrc/examplePlugins.ext
===================================================================
--- branches/Cog/nsnacspursrc/examplePlugins.ext	                        (rev 0)
+++ branches/Cog/nsnacspursrc/examplePlugins.ext	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,4 @@
+# This is an example external plugin list.
+# Edit plugins.ext in vm build dir to specify the external plugins to be built.
+EXTERNAL_PLUGINS = \
+SqueakSSL

Added: branches/Cog/nsnacspursrc/examplePlugins.int
===================================================================
--- branches/Cog/nsnacspursrc/examplePlugins.int	                        (rev 0)
+++ branches/Cog/nsnacspursrc/examplePlugins.int	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,28 @@
+# This is an example internal plugin list.
+# Edit plugins.int in vm build dir to specify internal plugins to be built and
+# linked into the vm.
+INTERNAL_PLUGINS = \
+AsynchFilePlugin \
+BMPReadWriterPlugin \
+B2DPlugin \
+BitBltPlugin \
+DSAPrims \
+DropPlugin \
+FileCopyPlugin \
+FilePlugin \
+FloatArrayPlugin \
+FloatMathPlugin \
+ZipPlugin \
+JPEGReadWriter2Plugin \
+JPEGReaderPlugin \
+LargeIntegers \
+Matrix2x3Plugin \
+MiscPrimitivePlugin \
+IA32ABI \
+RePlugin \
+SecurityPlugin \
+SocketPlugin \
+SurfacePlugin \
+UUIDPlugin \
+UnixOSProcessPlugin \
+VMProfileMacSupportPlugin

Added: branches/Cog/nsnacspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsnacspursrc/vm/cogit.c	                        (rev 0)
+++ branches/Cog/nsnacspursrc/vm/cogit.c	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,16 @@
+/* Automatically generated by
+	Cogit VMMaker.oscog-eem.1439 uuid: ce1fb6f7-90ee-48c4-9f60-6ff1731ec464
+ */
+
+#if defined(__ARM_ARCH__) || defined(__arm__) || defined(__arm32__) || defined(ARM32)
+
+#	include "cogitARMv5.c"
+
+#elif defined(_M_I386) || defined(_X86_) || defined(i386) || defined(i486) || defined(i586) || defined(i686) || defined(__i386__) || defined(__386__) || defined(X86) || defined(I386)
+
+#	include "cogitIA32.c"
+
+#else
+#	error As yet no Cogit implementation appears to exist for your platform.
+#	error Consider implementing it, starting by adding a subclass of CogAbstractInstruction.
+#endif

Added: branches/Cog/nsnacspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsnacspursrc/vm/cogit.h	                        (rev 0)
+++ branches/Cog/nsnacspursrc/vm/cogit.h	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,153 @@
+/* Automatically generated by
+	CCodeGenerator VMMaker.oscog-eem.1439 uuid: ce1fb6f7-90ee-48c4-9f60-6ff1731ec464
+ */
+
+
+/*** Function Prototypes ***/
+
+
+#if !PRODUCTION && defined(PlatformNoDbgRegParms)
+# define NoDbgRegParms PlatformNoDbgRegParms
+#endif
+
+#if !defined(NoDbgRegParms)
+# define NoDbgRegParms /*empty*/
+#endif
+
+
+
+#if !defined(NeverInline)
+# define NeverInline /*empty*/
+#endif
+
+extern sqInt abortOffset(void);
+extern void addCogMethodsToHeapMap(void);
+extern sqInt bytecodePCForstartBcpcin(sqInt mcpc, sqInt startbcpc, CogBlockMethod *cogMethod);
+extern void callCogCodePopReceiver(void);
+extern void callCogCodePopReceiverAndClassRegs(void);
+extern sqInt ceCPICMissreceiver(CogMethod *cPIC, sqInt receiver);
+extern sqInt ceSICMiss(sqInt receiver);
+extern void checkAssertsEnabledInCogit(void);
+extern sqInt checkIntegrityOfObjectReferencesInCode(sqInt gcModes);
+extern char * codeEntryFor(char *address);
+extern char * codeEntryNameFor(char *address);
+extern sqInt cogCodeBase(void);
+extern sqInt cogCodeConstituents(void);
+extern void cogitPostGCAction(sqInt gcMode);
+extern sqInt cogMethodDoesntLookKosher(CogMethod *cogMethod);
+extern CogMethod * cogMNUPICSelectorreceivermethodOperandnumArgs(sqInt selector, sqInt rcvr, sqInt methodOperand, sqInt numArgs);
+extern CogMethod * cogselector(sqInt aMethodObj, sqInt aSelectorOop);
+extern void compactCogCompiledCode(void);
+extern sqInt defaultCogCodeSize(void);
+extern void enterCogCodePopReceiver(void);
+extern CogBlockMethod * findMethodForStartBcpcinHomeMethod(sqInt startbcpc, CogMethod *cogMethod);
+extern void followForwardedLiteralsIn(CogMethod *cogMethod);
+extern void followForwardedMethods(void);
+extern void freeUnmarkedMachineCode(void);
+extern void initializeCodeZoneFromupTo(sqInt startAddress, sqInt endAddress);
+extern sqInt isPCWithinMethodZone(void *address);
+extern sqInt isSendReturnPC(sqInt retpc);
+extern void linkNSSendCacheclassTagenclosingObjecttargetcaller(NSSendCache *nsSendCache, sqInt classTag, sqInt enclosingObject, CogMethod *targetMethod, CogMethod *callingMethod);
+extern void linkSendAtintooffsetreceiver(sqInt callSiteReturnAddress, CogMethod *sendingMethod, CogMethod *targetMethod, sqInt theEntryOffset, sqInt receiver);
+extern void mapObjectReferencesInMachineCode(sqInt gcMode);
+extern void markAndTraceMachineCodeOfMarkedMethods(void);
+extern void markMethodAndReferents(CogBlockMethod *aCogMethod);
+extern usqInt maxCogMethodAddress(void);
+extern usqInt mcPCForBackwardBranchstartBcpcin(sqInt bcpc, sqInt startbcpc, CogBlockMethod *cogMethod);
+extern sqInt minCogMethodAddress(void);
+extern sqInt mnuOffset(void);
+extern sqInt patchToOpenPICFornumArgsreceiver(sqInt selector, sqInt numArgs, sqInt receiver);
+extern void printCogMethodFor(void *address);
+extern void printTrampolineTable(void);
+extern sqInt recordPrimTraceFunc(void);
+extern void setBreakMethod(sqInt anObj);
+extern void setPostCompileHook(void (*aFunction)(CogMethod *));
+extern void setSelectorOfto(CogMethod *cogMethod, sqInt aSelectorOop);
+extern sqInt traceLinkedSendOffset(void);
+extern void unlinkAllSends(void);
+extern void unlinkSendsLinkedForInvalidClasses(void);
+extern void unlinkSendsOfisMNUSelector(sqInt selector, sqInt isMNUSelector);
+extern void unlinkSendsToFree(void);
+extern void unlinkSendsToandFreeIf(sqInt targetMethodObject, sqInt freeIfTrue);
+extern void addAllToYoungReferrers(void);
+extern void freeMethod(CogMethod *cogMethod);
+extern CogMethod * methodFor(void *address);
+extern sqInt numMethodsOfType(sqInt cogMethodType);
+extern void printCogMethods(void);
+extern void printCogMethodsOfType(sqInt cmType);
+extern void printCogMethodsWithMethod(sqInt methodOop);
+extern void printCogMethodsWithPrimitive(sqInt primIdx);
+extern void printCogMethodsWithSelector(sqInt selectorOop);
+extern void printCogYoungReferrers(void);
+extern void printOpenPICList(void);
+extern char * whereIsMaybeCodeThing(sqInt anOop);
+extern sqInt numRegArgs(void);
+extern sqInt genQuickReturnConst(void);
+extern sqInt genQuickReturnInstVar(void);
+extern sqInt genQuickReturnSelf(void);
+extern void recordCallOffsetIn(CogMethod *cogMethod);
+extern void rewritePrimInvocationInto(CogMethod *cogMethod, void (*primFunctionPointer)(void));
+extern void voidCogCompiledCode(void);
+extern void callCogCodePopReceiverArg0Regs(void);
+extern void callCogCodePopReceiverArg1Arg0Regs(void);
+
+
+/*** Global Variables ***/
+VM_EXPORT sqInt blockNoContextSwitchOffset;
+VM_EXPORT sqInt breakPC;
+VM_EXPORT void * CFramePointer;
+VM_EXPORT void * CStackPointer;
+VM_EXPORT sqInt ceBaseFrameReturnTrampoline;
+VM_EXPORT void (*ceCall0ArgsPIC)(void);
+VM_EXPORT void (*ceCall1ArgsPIC)(void);
+VM_EXPORT void (*ceCall2ArgsPIC)(void);
+VM_EXPORT void (*ceCallCogCodePopReceiverAndClassRegs)(void);
+VM_EXPORT void (*ceCallCogCodePopReceiverArg0Regs)(void);
+VM_EXPORT void (*ceCallCogCodePopReceiverArg1Arg0Regs)(void);
+VM_EXPORT void (*ceCallCogCodePopReceiverReg)(void);
+VM_EXPORT sqInt ceCannotResumeTrampoline;
+VM_EXPORT void (*ceCaptureCStackPointers)(void);
+VM_EXPORT sqInt ceCheckForInterruptTrampoline;
+VM_EXPORT void (*ceEnterCogCodePopReceiverReg)(void);
+VM_EXPORT unsigned long (*ceGetSP)(void);
+VM_EXPORT sqInt ceReturnToInterpreterTrampoline;
+VM_EXPORT unsigned long (*ceTryLockVMOwner)(void);
+VM_EXPORT void (*ceUnlockVMOwner)(void);
+VM_EXPORT sqInt cFramePointerInUse;
+VM_EXPORT sqInt cmEntryOffset;
+VM_EXPORT sqInt cmNoCheckEntryOffset;
+VM_EXPORT unsigned long debugPrimCallStackOffset;
+VM_EXPORT sqInt missOffset;
+VM_EXPORT void (*realCECallCogCodePopReceiverAndClassRegs)(void);
+VM_EXPORT void (*realCECallCogCodePopReceiverArg0Regs)(void);
+VM_EXPORT void (*realCECallCogCodePopReceiverArg1Arg0Regs)(void);
+VM_EXPORT void (*realCECallCogCodePopReceiverReg)(void);
+VM_EXPORT void (*realCEEnterCogCodePopReceiverReg)(void);
+VM_EXPORT int traceFlags ;
+VM_EXPORT sqInt traceStores;
+
+
+/*** Macros ***/
+#define blockAlignment(self) 8
+#define breakOnImplicitReceiver() (traceFlags & 64)
+#define ceBaseFrameReturnPC() ceBaseFrameReturnTrampoline
+#define ceCannotResumePC() ((usqInt)ceCannotResumeTrampoline)
+#define ceReturnToInterpreterPC() ((usqInt)ceReturnToInterpreterTrampoline)
+#define compileSendTrace() (traceFlags & 2)
+#define entryOffset() cmEntryOffset
+#define getCFramePointer() CFramePointer
+#define getCStackPointer() CStackPointer
+#define interpretOffset() missOffset
+#define noCheckEntryOffset() cmNoCheckEntryOffset
+#define noContextSwitchBlockEntryOffset() blockNoContextSwitchOffset
+#define printOnTrace() (traceFlags & 1)
+#define recordBlockTrace() (traceFlags & 4)
+#define recordEventTrace() (traceFlags & 16)
+#define recordOverflowTrace() (traceFlags & 32)
+#define recordPrimTrace() (traceFlags & 8)
+#define recordSendTrace() (traceFlags & 2)
+#define setCFramePointer(theFP) (CFramePointer = (void *)(theFP))
+#define setCStackPointer(theSP) (CStackPointer = (void *)(theSP))
+#define tryLockVMOwner() (ceTryLockVMOwner() != 0)
+#define unlockVMOwner() ceUnlockVMOwner()
+

Added: branches/Cog/nsnacspursrc/vm/cogitARMv5.c
===================================================================
--- branches/Cog/nsnacspursrc/vm/cogitARMv5.c	                        (rev 0)
+++ branches/Cog/nsnacspursrc/vm/cogitARMv5.c	2015-08-19 23:57:42 UTC (rev 3425)
@@ -0,0 +1,28688 @@
+/* Automatically generated by
+	CCodeGenerator VMMaker.oscog-eem.1439 uuid: ce1fb6f7-90ee-48c4-9f60-6ff1731ec464
+   from
+	StackToRegisterMappingCogit VMMaker.oscog-eem.1439 uuid: ce1fb6f7-90ee-48c4-9f60-6ff1731ec464
+ */
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1439 uuid: ce1fb6f7-90ee-48c4-9f60-6ff1731ec464 " __DATE__ ;
+char *__cogitBuildInfo = __buildInfo;
+
+
+
+#include <stddef.h>
+#include "sq.h"
+#include "sqCogStackAlignment.h"
+#include "dispdbg.h"
+#include "cogmethod.h"
+#include "nssendcache.h"
+#if COGMTVM
+#include "cointerpmt.h"
+#else
+#include "cointerp.h"
+#endif
+#include "cogit.h"
+
+typedef struct _AbstractInstruction {
+	unsigned char	opcode;
+	unsigned char	machineCodeSize;
+	unsigned char	maxSize;
+	unsigned char	annotation;
+	unsigned char	conditionOrNil;
+	unsigned long		operands [3];
+	unsigned long	address;
+	struct _AbstractInstruction *dependent;
+	unsigned long		machineCode [5];
+ } AbstractInstruction;
+
+#define CogOutOfLineLiteralsARMCompiler AbstractInstruction
+#define CogARMCompiler AbstractInstruction
+#define CogAbstractInstruction AbstractInstruction
+
+
+typedef struct {
+	AbstractInstruction *fakeHeader;
+	AbstractInstruction *fillInstruction;
+	sqInt	numArgs;
+	sqInt	numCopied;
+	sqInt	numInitialNils;
+	sqInt	startpc;
+	AbstractInstruction *entryLabel;
+	AbstractInstruction *stackCheckLabel;
+	sqInt	span;
+	sqInt	hasInstVarRef;
+ } BlockStart;
+
+#define CogBlockStart BlockStart
+
+
+typedef struct _BytecodeDescriptor {
+	sqInt (*generator )(void);
+	sqInt (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
+	sqInt (*needsFrameFunction )(sqInt);
+	signed char	stackDelta;
+	unsigned char	opcode;
+	unsigned char	numBytes;
+	unsigned		isBranchTrue : 1;
+	unsigned		isBranchFalse : 1;
+	unsigned		isReturn : 1;
+	unsigned		isBlockCreation : 1;
+	unsigned		isMapped : 1;
+	unsigned		isMappedInBlock : 1;
+	unsigned		isExtension : 1;
+	unsigned		isInstVarRef : 1;
+	unsigned		hasIRC : 1;
+ } BytecodeDescriptor;
+
+#define CogBytecodeDescriptor BytecodeDescriptor
+
+
+typedef struct {
+	sqInt (*primitiveGenerator )(void);
+	sqInt	primNumArgs;
+	sqInt (*enabled )(sqInt);
+ } PrimitiveDescriptor;
+
+#define CogPrimitiveDescriptor PrimitiveDescriptor
+
+
+typedef struct {
+	AbstractInstruction *targetInstruction;
+	sqInt	instructionIndex;
+	sqInt	simStackPtr;
+ } BytecodeFixup;
+
+#define CogSSBytecodeFixup BytecodeFixup
+#define CogBytecodeFixup BytecodeFixup
+
+
+typedef struct {
+	char	type;
+	char	spilled;
+	char	annotateUse;
+	sqInt	registerr;
+	sqInt	offset;
+	sqInt	constant;
+	sqInt	bcptr;
+ } CogSimStackEntry;
+
+
+typedef struct {
+	sqInt	isReceiverResultRegLive;
+	CogSimStackEntry *ssEntry;
+ } CogSSOptStatus;
+
+
+
+/*** Constants ***/
+#define AddCqR 96
+#define AddCwR 104
+#define AddOpcode 4
+#define AddRdRd 112
+#define AddRR 89
+#define AL 14
+#define AlignmentNops 3
+#define AltBlockCreationBytecodeSize 3
+#define AltFirstSpecialSelector 80
+#define AndCqR 98
+#define AndCqRR 110
+#define AndCwR 106
+#define AndOpcode 0
+#define AndRR 91
+#define AnnotationShift 5
+#define Arg0Reg -7
+#define Arg1Reg -8
+#define ArithmeticShiftRightCqR 82
+#define ArithmeticShiftRightRR 83
+#define BadRegisterSet 1
+#define BicOpcode 14
+#define BlockCreationBytecodeSize 4
+#define BytecodeSetHasDirectedSuperSend 0
+#define CArg0Reg 0
+#define CArg1Reg 1
+#define CArg2Reg 2
+#define CArg3Reg 3
+#define Call 10
+#define CallFull 11
+#define CC 3
+#define ClassArrayCompactIndex 51
+#define ClassBlockClosureCompactIndex 37
+#define ClassFloatCompactIndex 34
+#define ClassMethodContextCompactIndex 36
+#define ClassReg -5
+#define ClosureFirstCopiedValueIndex 3
+#define ClosureIndex 4
+#define ClosureNumArgsIndex 2
+#define ClosureOuterContextIndex 0
+#define ClosureStartPCIndex 1
+#define CMBlock 3
+#define CMClosedPIC 4
+#define CMFree 1
+#define CMMaxUsageCount 7
+#define CMMethod 2
+#define CMOpenPIC 5
+#define CMPSMULL 123
+#define CmpCqR 95
+#define CmpCwR 103
+#define CmpNotOpcode 11
+#define CmpOpcode 10
+#define CmpRdRd 111
+#define CmpRR 88
+#define ConcreteIPReg 12
+#define ConcreteVarBaseReg 10
+#define ConstZero 1
+#define ConvertRRd 117
+#define CS 2
+#define D0 0
+#define D1 1
+#define D2 2
+#define D3 3
+#define D4 4
+#define D5 5
+#define D6 6
+#define D7 7
+#define Debug DEBUGVM
+#define DisplacementMask 0x1F
+#define DisplacementX2N 0
+#define DivRdRd 115
+#define DPFPReg0 -9
+#define DPFPReg1 -10
+#define DPFPReg2 -11
+#define DPFPReg3 -12
+#define DPFPReg4 -13
+#define DPFPReg5 -14
+#define DPFPReg6 -15
+#define DPFPReg7 -16
+#define EncounteredUnknownBytecode -6
+#define EQ 0
+#define Fill16 6
+#define Fill32 7
+#define FillFromWord 8
+#define FirstAnnotation 64
+#define FirstJump 15
+#define FirstShortJump 19
+#define FirstSpecialSelector 176
+#define FoxCallerSavedIP 4
+#define FoxMethod -4
+#define FoxMFReceiver -12
+#define FoxSavedFP 0
+#define FoxThisContext -8
+#define FPReg -1
+#define GCModeBecome 8
+#define GCModeFull 1
+#define GCModeNewSpace 2
+#define GE 10
+#define GPRegMax -3
+#define GPRegMin -8
+#define GT 12
+#define HasBytecodePC 4
+#define HeaderIndex 0
+#define HI 8
+#define InstanceSpecificationIndex 2
+#define InstructionPointerIndex 1
+#define InsufficientCodeSpace -2
+#define IsAbsPCReference 3
+#define IsAnnotationExtension 1
+#define IsDirectedSuperSend 9
+#define IsDisplacementX2N 0
+#define IsNSDynamicSuperSend 11
+#define IsNSSelfSend 10
+#define IsNSSendCall 6
+#define IsObjectReference 2
+#define IsRelativeCall 5
+#define IsSendCall 7
+#define IsSuperSend 8
+#define Jump 19
+#define JumpAbove 34
+#define JumpAboveOrEqual 33
+#define JumpBelow 32
+#define JumpBelowOrEqual 35
+#define JumpCarry 26
+#define JumpFPEqual 36
+#define JumpFPGreater 40
+#define JumpFPGreaterOrEqual 41
+#define JumpFPLess 38
+#define JumpFPLessOrEqual 39
+#define JumpFPNotEqual 37
+#define JumpFPOrdered 42
+#define JumpFPUnordered 43
+#define JumpFull 15
+#define JumpGreater 30
+#define JumpGreaterOrEqual 29
+#define JumpLess 28
+#define JumpLessOrEqual 31
+#define JumpLong 16
+#define JumpLongNonZero 18
+#define JumpLongZero 17
+#define JumpNegative 22
+#define JumpNoCarry 27
+#define JumpNonNegative 23
+#define JumpNonZero 21
+#define JumpNoOverflow 25
+#define JumpOverflow 24
+#define JumpR 13
+#define JumpZero 20
+#define Label 1
+#define LargeContextSlots 62
+#define LastJump 43
+#define LE 13
+#define LinkReg -17
+#define Literal 2
+#define LoadEffectiveAddressMwrR 79
+#define LogicalShiftLeftCqR 86
+#define LogicalShiftLeftRR 87
+#define LogicalShiftRightCqR 84
+#define LogicalShiftRightRR 85
+#define LookupRuleDynamicSuper 0x101
+#define LookupRuleImplicit 0x100
+#define LookupRuleSelf 0
+#define LR 14
+#define LS 9
+#define LT 11
+#define MapEnd 0
+#define MaxCompiledPrimitiveIndex 222
+#define MaxMethodSize 65535
+#define MaxNegativeErrorCode -8
+#define MaxNumArgs 15
+#define MaxStackAllocSize 1572864
+#define MaxStackCheckOffset 0xFFF
+#define MaxX2NDisplacement 992
+#define MethodCacheClass 2
+#define MethodCacheMask 0x7FC
+#define MethodCacheMethod 3
+#define MethodCacheSelector 1
+#define MethodIndex 3
+#define MethodTooBig -4
+#define MFMethodFlagHasContextFlag 1
+#define MFMethodFlagIsBlockFlag 2
+#define MI 4
+#define MoveAwR 45
+#define MoveCqR 67
+#define MoveCwR 68
+#define MoveM16rR 55
+#define MoveM64rRd 72
+#define MoveMbrR 63
+#define MoveMwrR 49
+#define MoveNotOpcode 15
+#define MoveOpcode 13
+#define MoveRAw 46
+#define MoveRdM64r 73
+#define MoveRdRd 71
+#define MoveRMbr 64
+#define MoveRMwr 50
+#define MoveRR 44
+#define MoveRXbrR 66
+#define MoveRXwrR 52
+#define MoveXbrRR 65
+#define MoveXwrRR 51
+#define MSR 119
+#define MULTIPLEBYTECODESETS 1
+#define MulRdRd 114
+#define NE 1
+#define NegateR 81
+#define NewspeakVM 1
+#define Nop 9
+#define NotFullyInitialized -1
+#define NSCClassTagIndex 0
+#define NSCEnclosingObjectIndex 1
+#define NSCNumArgsIndex 4
+#define NSCTargetIndex 2
+#define NumObjRefsInRuntime 0
+#define NumOopsPerNSC 6
+#define NumSendTrampolines 4
+#define NumTrampolines 72
+#define OrCqR 99
+#define OrCwR 107
+#define OrOpcode 12
+#define OrRR 92
+#define PC 15
+#define PCReg -19
+#define PL 5
+#define PopR 74
+#define PrefetchAw 78
+#define PrimCallCollectsProfileSamples 8
+#define PrimCallDoNotJIT 32
+#define PrimCallMayCallBack 4
+#define PrimCallNeedsNewMethod 1
+#define PrimCallNeedsPrimitiveFunction 2
+#define PrimErrWritePastObject 17
+#define PushCq 76
+#define PushCw 77
+#define PushR 75
+#define R0 0
+#define R11 11
+#define R4 4
+#define R5 5
+#define R6 6
+#define R7 7
+#define R8 8
+#define ReceiverIndex 5
+#define ReceiverResultReg -3
+#define RetN 12
+#define RISCTempReg -18
+#define RsbOpcode 3
+#define SelectorCannotInterpret 34
+#define SelectorDoesNotUnderstand 20
+#define SenderIndex 0
+#define SendNumArgsReg -6
+#define ShouldNotJIT -8
+#define SistaVM 0
+#define SMULL 118
+#define SmallContextSlots 22
+#define SP 13
+#define SPReg -2
+#define SqrtRd 116
+#define SSBaseOffset 1
+#define SSConstant 2
+#define SSRegister 3
+#define SSSpill 4
+#define StackPointerIndex 2
+#define Stop 14
+#define SubCqR 97
+#define SubCwR 105
+#define SubOpcode 2
+#define SubRdRd 113
+#define SubRR 90
+#define TempReg -4
+#define TstCqR 100
+#define TstOpcode 8
+#define UnfailingPrimitive 3
+#define UnimplementedPrimitive -7
+#define ValueIndex 1
+#define VarBaseReg -20
+#define VC 7
+#define VS 6
+#define XorCqR 101
+#define XorCwR 108
+#define XorOpcode 1
+#define XorRR 93
+#define YoungSelectorInPIC -5
+
+
+/*** Function Prototypes ***/
+
+
+#if !PRODUCTION && defined(PlatformNoDbgRegParms)
+# define NoDbgRegParms PlatformNoDbgRegParms
+#endif
+
+#if !defined(NoDbgRegParms)
+# define NoDbgRegParms /*empty*/
+#endif
+
+
+
+#if !defined(NeverInline)
+# define NeverInline /*empty*/
+#endif
+
+static AbstractInstruction * addDependent(AbstractInstruction * self_in_addDependent, AbstractInstruction *anInstruction) NoDbgRegParms;
+static sqInt availableRegisterOrNilFor(AbstractInstruction * self_in_availableRegisterOrNilFor, sqInt liveRegsMask) NoDbgRegParms;
+static AbstractInstruction * cloneLiteralFrom(AbstractInstruction * self_in_cloneLiteralFrom, AbstractInstruction *existingLiteral) NoDbgRegParms;
+static AbstractInstruction * generateICacheFlush(AbstractInstruction * self_in_generateICacheFlush) NoDbgRegParms;
+static AbstractInstruction * genWriteCResultIntoReg(AbstractInstruction * self_in_genWriteCResultIntoReg, sqInt abstractRegister) NoDbgRegParms;
+static AbstractInstruction * getJmpTarget(AbstractInstruction * self_in_getJmpTarget) NoDbgRegParms;
+static AbstractInstruction * initializeSharableLiteral(AbstractInstruction * self_in_initializeSharableLiteral, sqInt literal) NoDbgRegParms;
+static AbstractInstruction * initializeUniqueLiteral(AbstractInstruction * self_in_initializeUniqueLiteral, sqInt literal) NoDbgRegParms;
+static sqInt isAFixup(AbstractInstruction * self_in_isAFixup, void *fixupOrAddress) NoDbgRegParms;
+static sqInt isAnInstruction(AbstractInstruction * self_in_isAnInstruction, AbstractInstruction *addressOrInstruction) NoDbgRegParms;
+static sqInt isJump(AbstractInstruction * self_in_isJump) NoDbgRegParms;
+static sqInt isLongJump(AbstractInstruction * self_in_isLongJump) NoDbgRegParms;
+static AbstractInstruction * jmpTarget(AbstractInstruction * self_in_jmpTarget, AbstractInstruction *anAbstractInstruction) NoDbgRegParms;
+static usqInt labelOffset(AbstractInstruction * self_in_labelOffset) NoDbgRegParms;
+static sqInt numCheckFeaturesOpcodes(AbstractInstruction * self_in_numCheckFeaturesOpcodes) NoDbgRegParms;
+static AbstractInstruction * relocateJumpLongBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongBeforeFollowingAddressby, sqInt pc, sqInt delta) NoDbgRegParms;
+static AbstractInstruction * resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget) NoDbgRegParms;
+static sqInt setLabelOffset(AbstractInstruction * self_in_setLabelOffset, sqInt aValue) NoDbgRegParms;
+static sqInt abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg) NoDbgRegParms;
+static sqInt addsrnimmror(AbstractInstruction * self_in_addsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) NoDbgRegParms;
+static sqInt addrnimmror(AbstractInstruction * self_in_addrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) NoDbgRegParms;
+static sqInt addrnrm(AbstractInstruction * self_in_addrnrm, sqInt destReg, sqInt srcReg, sqInt addReg) NoDbgRegParms;
+static usqInt aeabiDivModFunctionAddr(AbstractInstruction * self_in_aeabiDivModFunctionAddr) NoDbgRegParms;
+static sqInt andsrnimmror(AbstractInstruction * self_in_andsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) NoDbgRegParms;
+static sqInt andrnimmror(AbstractInstruction * self_in_andrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) NoDbgRegParms;
+static sqInt bicsrnimmror(AbstractInstruction * self_in_bicsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) NoDbgRegParms;
+static sqInt bl(AbstractInstruction * self_in_bl, sqInt offset) NoDbgRegParms;
+static sqInt b(AbstractInstruction * self_in_b, sqInt offset) NoDbgRegParms;
+static sqInt callerSavedRegisterMask(AbstractInstruction * self_in_callerSavedRegisterMask) NoDbgRegParms;
+static sqInt callInstructionByteSize(AbstractInstruction * self_in_callInstructionByteSize) NoDbgRegParms;
+static sqInt callTargetFromReturnAddress(AbstractInstruction * self_in_callTargetFromReturnAddress, sqInt callSiteReturnAddress) NoDbgRegParms;
+static sqInt computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize) NoDbgRegParms;
+static sqInt concreteCalleeSavedRegisterMask(AbstractInstruction * self_in_concreteCalleeSavedRegisterMask) NoDbgRegParms;
+static sqInt concreteCallerSavedRegisterMask(AbstractInstruction * self_in_concreteCallerSavedRegisterMask) NoDbgRegParms;
+static sqInt concreteDPFPRegister(AbstractInstruction * self_in_concreteDPFPRegister, sqInt registerIndex) NoDbgRegParms;
+static sqInt concreteRegister(AbstractInstruction * self_in_concreteRegister, sqInt registerIndex) NoDbgRegParms;
+static sqInt concretizeAt(AbstractInstruction * self_in_concretizeAt, sqInt actualAddress) NoDbgRegParms;
+static usqInt concretizeCMPSMULL(AbstractInstruction * self_in_concretizeCMPSMULL) NoDbgRegParms;
+static void concretizeConditionalInstruction(AbstractInstruction * self_in_concretizeConditionalInstruction) NoDbgRegParms;
+static AbstractInstruction * concretizeFill16(AbstractInstruction * self_in_concretizeFill16) NoDbgRegParms;
+static usqInt concretizeFill32(AbstractInstruction * self_in_concretizeFill32) NoDbgRegParms;
+static AbstractInstruction * concretizeFillFromWord(AbstractInstruction * self_in_concretizeFillFromWord) NoDbgRegParms;
+static usqInt concretizeMSR(AbstractInstruction * self_in_concretizeMSR) NoDbgRegParms;
+static usqInt concretizeSMULL(AbstractInstruction * self_in_concretizeSMULL) NoDbgRegParms;
+static sqInt cResultRegister(AbstractInstruction * self_in_cResultRegister) NoDbgRegParms;
+static sqInt dataOpTyperdrnrmlsr(AbstractInstruction * self_in_dataOpTyperdrnrmlsr, sqInt armOpcode, sqInt destReg, sqInt srcReg, sqInt addReg, sqInt shft) NoDbgRegParms;
+static void dispatchConcretize(AbstractInstruction * self_in_dispatchConcretize) NoDbgRegParms;
+static sqInt fmsrFromto(AbstractInstruction * self_in_fmsrFromto, sqInt regA, sqInt regB) NoDbgRegParms;
+static sqInt fsitodFromto(AbstractInstruction * self_in_fsitodFromto, sqInt regA, sqInt regB) NoDbgRegParms;
+static sqInt fullCallsAreRelative(AbstractInstruction * self_in_fullCallsAreRelative) NoDbgRegParms;
+static sqInt genAlignCStackSavingRegistersnumArgswordAlignment(AbstractInstruction * self_in_genAlignCStackSavingRegistersnumArgswordAlignment, sqInt saveRegs, sqInt numArgs, sqInt alignment) NoDbgRegParms;
+static AbstractInstruction * genDivRRQuoRem(AbstractInstruction * self_in_genDivRRQuoRem, sqInt abstractRegDivisor, sqInt abstractRegDividend, sqInt abstractRegQuotient, sqInt abstractRegRemainder) NoDbgRegParms;
+static AbstractInstruction * genGetLeafCallStackPointerFunction(AbstractInstruction * self_in_genGetLeafCallStackPointerFunction) NoDbgRegParms;
+static sqInt genLoadCStackPointer(AbstractInstruction * self_in_genLoadCStackPointer) NoDbgRegParms;
+static sqInt genLoadCStackPointers(AbstractInstruction * self_in_genLoadCStackPointers) NoDbgRegParms;
+static sqInt genLoadStackPointers(AbstractInstruction * self_in_genLoadStackPointers) NoDbgRegParms;
+static AbstractInstruction * genMulRR(AbstractInstruction * self_in_genMulRR, sqInt regSource, sqInt regDest) NoDbgRegParms;
+static sqInt genPassConstasArgument(AbstractInstruction * self_in_genPassConstasArgument, sqInt constant, sqInt zeroRelativeArgIndex) NoDbgRegParms;
+static sqInt genPassRegasArgument(AbstractInstruction * self_in_genPassRegasArgument, sqInt abstractRegister, sqInt zeroRelativeArgIndex) NoDbgRegParms;

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list