[Vm-dev] [commit] r2562 - Make the sqGnu.h machinery support the
multiple bytecode sets scheme.
commits at squeakvm.org
commits at squeakvm.org
Wed Jul 18 00:35:03 UTC 2012
Author: eliot
Date: 2012-07-17 17:35:02 -0700 (Tue, 17 Jul 2012)
New Revision: 2562
Modified:
branches/Cog/cygwinbuild/HowToBuild
branches/Cog/macbuild/HowToBuild
branches/Cog/nsbuild/cygwinbuild/HowToBuild
branches/Cog/nscogbuild/cygwinbuild/HowToBuild
branches/Cog/nscogbuild/unixbuild/HowToBuild
branches/Cog/nscogbuild/unixbuild/bld/mvm
branches/Cog/platforms/Cross/vm/dispdbg.h
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
branches/Cog/platforms/Mac OS/vm/Developer/sqGnu.h
branches/Cog/platforms/unix/vm/sqGnu.h
branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c
branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c
branches/Cog/platforms/win32/vm/sqGnu.h
branches/Cog/stackbuild/cygwinbuild/HowToBuild
branches/Cog/unixbuild/HowToBuild
branches/Cog/unixbuild/bld/mvm
branches/Cog/unixbuild/mtbld/mvm
Log:
Make the sqGnu.h machinery support the multiple bytecode sets scheme.
Add a trace facility to dispdbg.h for multiple bytecode sets.
Update the HowToBuilds with more accurate info on building the Bochs plugin.
Add an ioDisableHeartbeat to the itimer heartbeats for debugging.
Make the unix build scripts nuke everything by default.
Modified: branches/Cog/cygwinbuild/HowToBuild
===================================================================
--- branches/Cog/cygwinbuild/HowToBuild 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/cygwinbuild/HowToBuild 2012-07-18 00:35:02 UTC (rev 2562)
@@ -66,9 +66,10 @@
Win32. You are on your own but your efforts will be warmly welcomed.
First check-out the processor simulator source tree containing Bochs:
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build (on the Mac the following works)
- $ cd ROOT/processors/IA32/bochs
+Then build the libraries winbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+ $ cd ROOT/processors/IA32/winbochs
$ ./conf.COG
$ ./makeem
- $ cd ROOT/macbuild/BochsIA32Plugin
- $ xcodebuild
+and build the plugin either via make (for the entire VM) or just
+ $ cd ROOT/cygwinbuild
+ $ make build/vm/BochsIA32Plugin.dll
Modified: branches/Cog/macbuild/HowToBuild
===================================================================
--- branches/Cog/macbuild/HowToBuild 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/macbuild/HowToBuild 2012-07-18 00:35:02 UTC (rev 2562)
@@ -28,10 +28,11 @@
need to first build bochs. First check-out the processor simulator source tree
containing Bochs:
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build using
- $ cd ROOT/processors/IA32/bochs
+Then build the libraries macbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+ $ cd ROOT/processors/IA32/macbochs
$ ./conf.COG
$ ./makeem
+Then build the plugin:
$ cd ROOT/macbuild/BochsIA32Plugin
$ xcodebuild
Modified: branches/Cog/nsbuild/cygwinbuild/HowToBuild
===================================================================
--- branches/Cog/nsbuild/cygwinbuild/HowToBuild 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/nsbuild/cygwinbuild/HowToBuild 2012-07-18 00:35:02 UTC (rev 2562)
@@ -66,9 +66,10 @@
Win32. You are on your own but your efforts will be warmly welcomed.
First check-out the processor simulator source tree containing Bochs:
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build (on the Mac the following works)
- $ cd ROOT/processors/IA32/bochs
+Then build the libraries winbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+ $ cd ROOT/processors/IA32/winbochs
$ ./conf.COG
$ ./makeem
- $ cd ROOT/macbuild/BochsIA32Plugin
- $ xcodebuild
+and build the plugin either via make (for the entire VM) or just
+ $ cd ROOT/nsbuild/cygwinbuild
+ $ make build/vm/BochsIA32Plugin.dll
Modified: branches/Cog/nscogbuild/cygwinbuild/HowToBuild
===================================================================
--- branches/Cog/nscogbuild/cygwinbuild/HowToBuild 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/nscogbuild/cygwinbuild/HowToBuild 2012-07-18 00:35:02 UTC (rev 2562)
@@ -67,9 +67,10 @@
Win32. You are on your own but your efforts will be warmly welcomed.
First check-out the processor simulator source tree containing Bochs:
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build (on the Mac the following works)
- $ cd ROOT/processors/IA32/bochs
+Then build the libraries winbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+ $ cd ROOT/processors/IA32/winbochs
$ ./conf.COG
$ ./makeem
- $ cd ROOT/macbuild/BochsIA32Plugin
- $ xcodebuild
+and build the plugin either via make (for the entire VM) or just
+ $ cd ROOT/nscogbuild/cygwinbuild
+ $ make build/vm/BochsIA32Plugin.dll
Modified: branches/Cog/nscogbuild/unixbuild/HowToBuild
===================================================================
--- branches/Cog/nscogbuild/unixbuild/HowToBuild 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/nscogbuild/unixbuild/HowToBuild 2012-07-18 00:35:02 UTC (rev 2562)
@@ -15,7 +15,7 @@
reading this in unixbuild its likely you've already got the sources)
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
- svn co http://www.squeakvm.org/svn/squeak/branches/Cog/nsbuild
+ svn co http://www.squeakvm.org/svn/squeak/branches/Cog/nscogbuild
3. Open a shell, cd into the unixbuild/bld directory and execute
../../../platforms/unix/config/configure --with-src=nscogsrc CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0" LIBS="-lpthread -luuid"
make install prefix=WhereYouWantTheVmToGo
Modified: branches/Cog/nscogbuild/unixbuild/bld/mvm
===================================================================
--- branches/Cog/nscogbuild/unixbuild/bld/mvm 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/nscogbuild/unixbuild/bld/mvm 2012-07-18 00:35:02 UTC (rev 2562)
@@ -5,6 +5,12 @@
*) OPT=-O2;;
esac
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO) echo "ok but this isn't safe!!";;
+*) make reallyclean
+esac
test -f config.h || ../../../platforms/unix/config/configure --with-src=nscogsrc --without-vm-display-fbdev --without-npsqueak CFLAGS="-g $OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0" LIBS="-lpthread -luuid"
../../../scripts/nukeversion
rm -rf ../../../nsvmlinux
Modified: branches/Cog/platforms/Cross/vm/dispdbg.h
===================================================================
--- branches/Cog/platforms/Cross/vm/dispdbg.h 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/platforms/Cross/vm/dispdbg.h 2012-07-18 00:35:02 UTC (rev 2562)
@@ -134,6 +134,28 @@
warning("invalidInstructionPointerinMethod"); \
if (sendTrace > 1) printCallStack(); \
} while (0)
+#elif MULTIPLEBYTECODESETS /* maintain byteCount & check for valid instruction pointer */
+# if defined(SQ_USE_GLOBAL_STRUCT) /* define only in interpreter */
+static FILE *bct = 0;
+void openBytecodeTraceFile(char *fn)
+{ if (!(bct = fopen(fn,"r"))) perror("fopen"); }
+void closeBytecodeTraceFile() { if (bct) { fclose(bct); bct = 0; } }
+# endif
+# define bytecodeDispatchDebugHook() do { char line[64], expected[64]; \
+ /* print byteCount pc byteCode(hex) stackPtr */ \
+ sprintf(expected, "%ld: %d %d(%x) %d %s\n", \
+ ++GIV(byteCount), localIP-GIV(method)-3, currentBytecode, currentBytecode, \
+ (localFP-localSP)/sizeof(sqInt)-5, bytecodeNameTable[currentBytecode]); \
+ printf(expected); \
+ if (bct) { \
+ fgets(line, sizeof(line) - 1, bct); \
+ if (strcmp(line,expected)) \
+ warning("bytecode trace mismatch"); \
+ } \
+ if (0) printFrameWithSP(localFP,localSP); \
+ if (!ValidInstructionPointerCheck()) \
+ warning("invalidInstructionPointerinMethod"); \
+ } while (0)
#elif 0 /* print current frame & instruction pointer on every bytecode. */
# define bytecodeDispatchDebugHook() do { \
printFrameWithSP(localFP,localSP); \
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Thu Jun 21 14:21:32 PDT 2012
+ Tue Jul 17 17:32:43 PDT 2012
Modified: branches/Cog/platforms/Mac OS/vm/Developer/sqGnu.h
===================================================================
--- branches/Cog/platforms/Mac OS/vm/Developer/sqGnu.h 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/platforms/Mac OS/vm/Developer/sqGnu.h 2012-07-18 00:35:02 UTC (rev 2562)
@@ -54,7 +54,65 @@
#define PPC_REG_JUMP
#endif
#define PRIM_DISPATCH goto *jumpTable[GIV(primitiveIndex)]
-#define JUMP_TABLE \
+
+#if MULTIPLEBYTECODESETS
+# define JUMP_TABLE \
+ static void *jumpTable[512]= { \
+ &&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
+ &&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19, \
+ &&_20, &&_21, &&_22, &&_23, &&_24, &&_25, &&_26, &&_27, &&_28, &&_29, \
+ &&_30, &&_31, &&_32, &&_33, &&_34, &&_35, &&_36, &&_37, &&_38, &&_39, \
+ &&_40, &&_41, &&_42, &&_43, &&_44, &&_45, &&_46, &&_47, &&_48, &&_49, \
+ &&_50, &&_51, &&_52, &&_53, &&_54, &&_55, &&_56, &&_57, &&_58, &&_59, \
+ &&_60, &&_61, &&_62, &&_63, &&_64, &&_65, &&_66, &&_67, &&_68, &&_69, \
+ &&_70, &&_71, &&_72, &&_73, &&_74, &&_75, &&_76, &&_77, &&_78, &&_79, \
+ &&_80, &&_81, &&_82, &&_83, &&_84, &&_85, &&_86, &&_87, &&_88, &&_89, \
+ &&_90, &&_91, &&_92, &&_93, &&_94, &&_95, &&_96, &&_97, &&_98, &&_99, \
+ &&_100, &&_101, &&_102, &&_103, &&_104, &&_105, &&_106, &&_107, &&_108, &&_109, \
+ &&_110, &&_111, &&_112, &&_113, &&_114, &&_115, &&_116, &&_117, &&_118, &&_119, \
+ &&_120, &&_121, &&_122, &&_123, &&_124, &&_125, &&_126, &&_127, &&_128, &&_129, \
+ &&_130, &&_131, &&_132, &&_133, &&_134, &&_135, &&_136, &&_137, &&_138, &&_139, \
+ &&_140, &&_141, &&_142, &&_143, &&_144, &&_145, &&_146, &&_147, &&_148, &&_149, \
+ &&_150, &&_151, &&_152, &&_153, &&_154, &&_155, &&_156, &&_157, &&_158, &&_159, \
+ &&_160, &&_161, &&_162, &&_163, &&_164, &&_165, &&_166, &&_167, &&_168, &&_169, \
+ &&_170, &&_171, &&_172, &&_173, &&_174, &&_175, &&_176, &&_177, &&_178, &&_179, \
+ &&_180, &&_181, &&_182, &&_183, &&_184, &&_185, &&_186, &&_187, &&_188, &&_189, \
+ &&_190, &&_191, &&_192, &&_193, &&_194, &&_195, &&_196, &&_197, &&_198, &&_199, \
+ &&_200, &&_201, &&_202, &&_203, &&_204, &&_205, &&_206, &&_207, &&_208, &&_209, \
+ &&_210, &&_211, &&_212, &&_213, &&_214, &&_215, &&_216, &&_217, &&_218, &&_219, \
+ &&_220, &&_221, &&_222, &&_223, &&_224, &&_225, &&_226, &&_227, &&_228, &&_229, \
+ &&_230, &&_231, &&_232, &&_233, &&_234, &&_235, &&_236, &&_237, &&_238, &&_239, \
+ &&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249, \
+ &&_250, &&_251, &&_252, &&_253, &&_254, &&_255, &&_256, &&_257, &&_258, &&_259, \
+ &&_260, &&_261, &&_262, &&_263, &&_264, &&_265, &&_266, &&_267, &&_268, &&_269, \
+ &&_270, &&_271, &&_272, &&_273, &&_274, &&_275, &&_276, &&_277, &&_278, &&_279, \
+ &&_280, &&_281, &&_282, &&_283, &&_284, &&_285, &&_286, &&_287, &&_288, &&_289, \
+ &&_290, &&_291, &&_292, &&_293, &&_294, &&_295, &&_296, &&_297, &&_298, &&_299, \
+ &&_300, &&_301, &&_302, &&_303, &&_304, &&_305, &&_306, &&_307, &&_308, &&_309, \
+ &&_310, &&_311, &&_312, &&_313, &&_314, &&_315, &&_316, &&_317, &&_318, &&_319, \
+ &&_320, &&_321, &&_322, &&_323, &&_324, &&_325, &&_326, &&_327, &&_328, &&_329, \
+ &&_330, &&_331, &&_332, &&_333, &&_334, &&_335, &&_336, &&_337, &&_338, &&_339, \
+ &&_340, &&_341, &&_342, &&_343, &&_344, &&_345, &&_346, &&_347, &&_348, &&_349, \
+ &&_350, &&_351, &&_352, &&_353, &&_354, &&_355, &&_356, &&_357, &&_358, &&_359, \
+ &&_360, &&_361, &&_362, &&_363, &&_364, &&_365, &&_366, &&_367, &&_368, &&_369, \
+ &&_370, &&_371, &&_372, &&_373, &&_374, &&_375, &&_376, &&_377, &&_378, &&_379, \
+ &&_380, &&_381, &&_382, &&_383, &&_384, &&_385, &&_386, &&_387, &&_388, &&_389, \
+ &&_390, &&_391, &&_392, &&_393, &&_394, &&_395, &&_396, &&_397, &&_398, &&_399, \
+ &&_400, &&_401, &&_402, &&_403, &&_404, &&_405, &&_406, &&_407, &&_408, &&_409, \
+ &&_410, &&_411, &&_412, &&_413, &&_414, &&_415, &&_416, &&_417, &&_418, &&_419, \
+ &&_420, &&_421, &&_422, &&_423, &&_424, &&_425, &&_426, &&_427, &&_428, &&_429, \
+ &&_430, &&_431, &&_432, &&_433, &&_434, &&_435, &&_436, &&_437, &&_438, &&_439, \
+ &&_440, &&_441, &&_442, &&_443, &&_444, &&_445, &&_446, &&_447, &&_448, &&_449, \
+ &&_450, &&_451, &&_452, &&_453, &&_454, &&_455, &&_456, &&_457, &&_458, &&_459, \
+ &&_460, &&_461, &&_462, &&_463, &&_464, &&_465, &&_466, &&_467, &&_468, &&_469, \
+ &&_470, &&_471, &&_472, &&_473, &&_474, &&_475, &&_476, &&_477, &&_478, &&_479, \
+ &&_480, &&_481, &&_482, &&_483, &&_484, &&_485, &&_486, &&_487, &&_488, &&_489, \
+ &&_490, &&_491, &&_492, &&_493, &&_494, &&_495, &&_496, &&_497, &&_498, &&_499, \
+ &&_500, &&_501, &&_502, &&_503, &&_504, &&_505, &&_506, &&_507, &&_508, &&_509, \
+ &&_510, &&_511 \
+ } PPC_REG_JUMP;
+#else /* MULTIPLEBYTECODESETS */
+# define JUMP_TABLE \
void *jumpTable[256]= { \
&&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
&&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19, \
@@ -83,6 +141,7 @@
&&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249, \
&&_250, &&_251, &&_252, &&_253, &&_254, &&_255 \
} PPC_REG_JUMP;
+#endif /* MULTIPLEBYTECODESETS */
#define PRIM_TABLE \
static void *jumpTable[700]= { \
&&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
Modified: branches/Cog/platforms/unix/vm/sqGnu.h
===================================================================
--- branches/Cog/platforms/unix/vm/sqGnu.h 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/platforms/unix/vm/sqGnu.h 2012-07-18 00:35:02 UTC (rev 2562)
@@ -52,7 +52,64 @@
# define PRIM_DISPATCH goto *jumpTable[primitiveIndex]
#endif
-#define JUMP_TABLE \
+#if MULTIPLEBYTECODESETS
+# define JUMP_TABLE \
+ static void *jumpTable[512]= { \
+ &&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
+ &&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19, \
+ &&_20, &&_21, &&_22, &&_23, &&_24, &&_25, &&_26, &&_27, &&_28, &&_29, \
+ &&_30, &&_31, &&_32, &&_33, &&_34, &&_35, &&_36, &&_37, &&_38, &&_39, \
+ &&_40, &&_41, &&_42, &&_43, &&_44, &&_45, &&_46, &&_47, &&_48, &&_49, \
+ &&_50, &&_51, &&_52, &&_53, &&_54, &&_55, &&_56, &&_57, &&_58, &&_59, \
+ &&_60, &&_61, &&_62, &&_63, &&_64, &&_65, &&_66, &&_67, &&_68, &&_69, \
+ &&_70, &&_71, &&_72, &&_73, &&_74, &&_75, &&_76, &&_77, &&_78, &&_79, \
+ &&_80, &&_81, &&_82, &&_83, &&_84, &&_85, &&_86, &&_87, &&_88, &&_89, \
+ &&_90, &&_91, &&_92, &&_93, &&_94, &&_95, &&_96, &&_97, &&_98, &&_99, \
+ &&_100, &&_101, &&_102, &&_103, &&_104, &&_105, &&_106, &&_107, &&_108, &&_109, \
+ &&_110, &&_111, &&_112, &&_113, &&_114, &&_115, &&_116, &&_117, &&_118, &&_119, \
+ &&_120, &&_121, &&_122, &&_123, &&_124, &&_125, &&_126, &&_127, &&_128, &&_129, \
+ &&_130, &&_131, &&_132, &&_133, &&_134, &&_135, &&_136, &&_137, &&_138, &&_139, \
+ &&_140, &&_141, &&_142, &&_143, &&_144, &&_145, &&_146, &&_147, &&_148, &&_149, \
+ &&_150, &&_151, &&_152, &&_153, &&_154, &&_155, &&_156, &&_157, &&_158, &&_159, \
+ &&_160, &&_161, &&_162, &&_163, &&_164, &&_165, &&_166, &&_167, &&_168, &&_169, \
+ &&_170, &&_171, &&_172, &&_173, &&_174, &&_175, &&_176, &&_177, &&_178, &&_179, \
+ &&_180, &&_181, &&_182, &&_183, &&_184, &&_185, &&_186, &&_187, &&_188, &&_189, \
+ &&_190, &&_191, &&_192, &&_193, &&_194, &&_195, &&_196, &&_197, &&_198, &&_199, \
+ &&_200, &&_201, &&_202, &&_203, &&_204, &&_205, &&_206, &&_207, &&_208, &&_209, \
+ &&_210, &&_211, &&_212, &&_213, &&_214, &&_215, &&_216, &&_217, &&_218, &&_219, \
+ &&_220, &&_221, &&_222, &&_223, &&_224, &&_225, &&_226, &&_227, &&_228, &&_229, \
+ &&_230, &&_231, &&_232, &&_233, &&_234, &&_235, &&_236, &&_237, &&_238, &&_239, \
+ &&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249, \
+ &&_250, &&_251, &&_252, &&_253, &&_254, &&_255, &&_256, &&_257, &&_258, &&_259, \
+ &&_260, &&_261, &&_262, &&_263, &&_264, &&_265, &&_266, &&_267, &&_268, &&_269, \
+ &&_270, &&_271, &&_272, &&_273, &&_274, &&_275, &&_276, &&_277, &&_278, &&_279, \
+ &&_280, &&_281, &&_282, &&_283, &&_284, &&_285, &&_286, &&_287, &&_288, &&_289, \
+ &&_290, &&_291, &&_292, &&_293, &&_294, &&_295, &&_296, &&_297, &&_298, &&_299, \
+ &&_300, &&_301, &&_302, &&_303, &&_304, &&_305, &&_306, &&_307, &&_308, &&_309, \
+ &&_310, &&_311, &&_312, &&_313, &&_314, &&_315, &&_316, &&_317, &&_318, &&_319, \
+ &&_320, &&_321, &&_322, &&_323, &&_324, &&_325, &&_326, &&_327, &&_328, &&_329, \
+ &&_330, &&_331, &&_332, &&_333, &&_334, &&_335, &&_336, &&_337, &&_338, &&_339, \
+ &&_340, &&_341, &&_342, &&_343, &&_344, &&_345, &&_346, &&_347, &&_348, &&_349, \
+ &&_350, &&_351, &&_352, &&_353, &&_354, &&_355, &&_356, &&_357, &&_358, &&_359, \
+ &&_360, &&_361, &&_362, &&_363, &&_364, &&_365, &&_366, &&_367, &&_368, &&_369, \
+ &&_370, &&_371, &&_372, &&_373, &&_374, &&_375, &&_376, &&_377, &&_378, &&_379, \
+ &&_380, &&_381, &&_382, &&_383, &&_384, &&_385, &&_386, &&_387, &&_388, &&_389, \
+ &&_390, &&_391, &&_392, &&_393, &&_394, &&_395, &&_396, &&_397, &&_398, &&_399, \
+ &&_400, &&_401, &&_402, &&_403, &&_404, &&_405, &&_406, &&_407, &&_408, &&_409, \
+ &&_410, &&_411, &&_412, &&_413, &&_414, &&_415, &&_416, &&_417, &&_418, &&_419, \
+ &&_420, &&_421, &&_422, &&_423, &&_424, &&_425, &&_426, &&_427, &&_428, &&_429, \
+ &&_430, &&_431, &&_432, &&_433, &&_434, &&_435, &&_436, &&_437, &&_438, &&_439, \
+ &&_440, &&_441, &&_442, &&_443, &&_444, &&_445, &&_446, &&_447, &&_448, &&_449, \
+ &&_450, &&_451, &&_452, &&_453, &&_454, &&_455, &&_456, &&_457, &&_458, &&_459, \
+ &&_460, &&_461, &&_462, &&_463, &&_464, &&_465, &&_466, &&_467, &&_468, &&_469, \
+ &&_470, &&_471, &&_472, &&_473, &&_474, &&_475, &&_476, &&_477, &&_478, &&_479, \
+ &&_480, &&_481, &&_482, &&_483, &&_484, &&_485, &&_486, &&_487, &&_488, &&_489, \
+ &&_490, &&_491, &&_492, &&_493, &&_494, &&_495, &&_496, &&_497, &&_498, &&_499, \
+ &&_500, &&_501, &&_502, &&_503, &&_504, &&_505, &&_506, &&_507, &&_508, &&_509, \
+ &&_510, &&_511 \
+ } JUMP_TABLE_PTR
+#else /* MULTIPLEBYTECODESETS */
+# define JUMP_TABLE \
static void *jumpTable[256]= { \
&&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
&&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19, \
@@ -81,6 +138,7 @@
&&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249, \
&&_250, &&_251, &&_252, &&_253, &&_254, &&_255 \
} JUMP_TABLE_PTR
+#endif /* MULTIPLEBYTECODESETS */
#define PRIM_TABLE \
static void *jumpTable[700]= { \
Modified: branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c 2012-07-18 00:35:02 UTC (rev 2562)
@@ -393,16 +393,18 @@
if (suppressHeartbeatFlag) return;
#if NEED_SIGALTSTACK
- signal_stack.ss_flags = 0;
- signal_stack.ss_size = SIGNAL_STACK_SIZE;
- if (!(signal_stack.ss_sp = malloc(signal_stack.ss_size))) {
- perror("ioInitHeartbeat malloc");
- exit(1);
+ if (!signal_stack.ss_size) {
+ signal_stack.ss_flags = 0;
+ signal_stack.ss_size = SIGNAL_STACK_SIZE;
+ if (!(signal_stack.ss_sp = malloc(signal_stack.ss_size))) {
+ perror("ioInitHeartbeat malloc");
+ exit(1);
+ }
+ if (sigaltstack(&signal_stack, 0) < 0) {
+ perror("ioInitHeartbeat sigaltstack");
+ exit(1);
+ }
}
- if (sigaltstack(&signal_stack, 0) < 0) {
- perror("ioInitHeartbeat sigaltstack");
- exit(1);
- }
#endif /* NEED_SIGALTSTACK */
heartbeat_handler_action.sa_sigaction = heartbeat_handler;
@@ -427,6 +429,20 @@
}
void
+ioDisableHeartbeat() /* for debugging */
+{
+ struct itimerval expire;
+
+ expire.it_interval.tv_sec =
+ expire.it_interval.tv_usec = 0;
+ expire.it_value = expire.it_interval;
+ if (setitimer(THE_ITIMER, &expire, 0)) {
+ perror("ioDisableHeartbeat setitimer");
+ exit(1);
+ }
+}
+
+void
ioSetHeartbeatMilliseconds(int ms)
{
beatMilliseconds = ms;
Modified: branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c 2012-07-18 00:35:02 UTC (rev 2562)
@@ -524,16 +524,18 @@
if (suppressHeartbeatFlag) return;
#if NEED_SIGALTSTACK
- signal_stack.ss_flags = 0;
- signal_stack.ss_size = SIGNAL_STACK_SIZE;
- if (!(signal_stack.ss_sp = malloc(signal_stack.ss_size))) {
- perror("ioInitHeartbeat malloc");
- exit(1);
+ if (!signal_stack.ss_size) {
+ signal_stack.ss_flags = 0;
+ signal_stack.ss_size = SIGNAL_STACK_SIZE;
+ if (!(signal_stack.ss_sp = malloc(signal_stack.ss_size))) {
+ perror("ioInitHeartbeat malloc");
+ exit(1);
+ }
+ if (sigaltstack(&signal_stack, 0) < 0) {
+ perror("ioInitHeartbeat sigaltstack");
+ exit(1);
+ }
}
- if (sigaltstack(&signal_stack, 0) < 0) {
- perror("ioInitHeartbeat sigaltstack");
- exit(1);
- }
#endif /* NEED_SIGALTSTACK */
halfAMo.tv_sec = 0;
@@ -583,6 +585,20 @@
}
void
+ioDisableHeartbeat() /* for debugging */
+{
+ struct itimerval expire;
+
+ expire.it_interval.tv_sec =
+ expire.it_interval.tv_usec = 0;
+ expire.it_value = expire.it_interval;
+ if (setitimer(THE_ITIMER, &expire, 0)) {
+ perror("ioDisableHeartbeat setitimer");
+ exit(1);
+ }
+}
+
+void
ioSetHeartbeatMilliseconds(int ms)
{
beatMilliseconds = ms;
Modified: branches/Cog/platforms/win32/vm/sqGnu.h
===================================================================
--- branches/Cog/platforms/win32/vm/sqGnu.h 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/platforms/win32/vm/sqGnu.h 2012-07-18 00:35:02 UTC (rev 2562)
@@ -21,9 +21,66 @@
#endif
#define PRIM_DISPATCH goto *jumpTable[primitiveIndex]
-#define BC_JUMP_TABLE\
+#if MULTIPLEBYTECODESETS
+# define BC_JUMP_TABLE\
+ static void *jumpTable[512]= { \
+ &&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
+ &&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19, \
+ &&_20, &&_21, &&_22, &&_23, &&_24, &&_25, &&_26, &&_27, &&_28, &&_29, \
+ &&_30, &&_31, &&_32, &&_33, &&_34, &&_35, &&_36, &&_37, &&_38, &&_39, \
+ &&_40, &&_41, &&_42, &&_43, &&_44, &&_45, &&_46, &&_47, &&_48, &&_49, \
+ &&_50, &&_51, &&_52, &&_53, &&_54, &&_55, &&_56, &&_57, &&_58, &&_59, \
+ &&_60, &&_61, &&_62, &&_63, &&_64, &&_65, &&_66, &&_67, &&_68, &&_69, \
+ &&_70, &&_71, &&_72, &&_73, &&_74, &&_75, &&_76, &&_77, &&_78, &&_79, \
+ &&_80, &&_81, &&_82, &&_83, &&_84, &&_85, &&_86, &&_87, &&_88, &&_89, \
+ &&_90, &&_91, &&_92, &&_93, &&_94, &&_95, &&_96, &&_97, &&_98, &&_99, \
+ &&_100, &&_101, &&_102, &&_103, &&_104, &&_105, &&_106, &&_107, &&_108, &&_109, \
+ &&_110, &&_111, &&_112, &&_113, &&_114, &&_115, &&_116, &&_117, &&_118, &&_119, \
+ &&_120, &&_121, &&_122, &&_123, &&_124, &&_125, &&_126, &&_127, &&_128, &&_129, \
+ &&_130, &&_131, &&_132, &&_133, &&_134, &&_135, &&_136, &&_137, &&_138, &&_139, \
+ &&_140, &&_141, &&_142, &&_143, &&_144, &&_145, &&_146, &&_147, &&_148, &&_149, \
+ &&_150, &&_151, &&_152, &&_153, &&_154, &&_155, &&_156, &&_157, &&_158, &&_159, \
+ &&_160, &&_161, &&_162, &&_163, &&_164, &&_165, &&_166, &&_167, &&_168, &&_169, \
+ &&_170, &&_171, &&_172, &&_173, &&_174, &&_175, &&_176, &&_177, &&_178, &&_179, \
+ &&_180, &&_181, &&_182, &&_183, &&_184, &&_185, &&_186, &&_187, &&_188, &&_189, \
+ &&_190, &&_191, &&_192, &&_193, &&_194, &&_195, &&_196, &&_197, &&_198, &&_199, \
+ &&_200, &&_201, &&_202, &&_203, &&_204, &&_205, &&_206, &&_207, &&_208, &&_209, \
+ &&_210, &&_211, &&_212, &&_213, &&_214, &&_215, &&_216, &&_217, &&_218, &&_219, \
+ &&_220, &&_221, &&_222, &&_223, &&_224, &&_225, &&_226, &&_227, &&_228, &&_229, \
+ &&_230, &&_231, &&_232, &&_233, &&_234, &&_235, &&_236, &&_237, &&_238, &&_239, \
+ &&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249, \
+ &&_250, &&_251, &&_252, &&_253, &&_254, &&_255, &&_256, &&_257, &&_258, &&_259, \
+ &&_260, &&_261, &&_262, &&_263, &&_264, &&_265, &&_266, &&_267, &&_268, &&_269, \
+ &&_270, &&_271, &&_272, &&_273, &&_274, &&_275, &&_276, &&_277, &&_278, &&_279, \
+ &&_280, &&_281, &&_282, &&_283, &&_284, &&_285, &&_286, &&_287, &&_288, &&_289, \
+ &&_290, &&_291, &&_292, &&_293, &&_294, &&_295, &&_296, &&_297, &&_298, &&_299, \
+ &&_300, &&_301, &&_302, &&_303, &&_304, &&_305, &&_306, &&_307, &&_308, &&_309, \
+ &&_310, &&_311, &&_312, &&_313, &&_314, &&_315, &&_316, &&_317, &&_318, &&_319, \
+ &&_320, &&_321, &&_322, &&_323, &&_324, &&_325, &&_326, &&_327, &&_328, &&_329, \
+ &&_330, &&_331, &&_332, &&_333, &&_334, &&_335, &&_336, &&_337, &&_338, &&_339, \
+ &&_340, &&_341, &&_342, &&_343, &&_344, &&_345, &&_346, &&_347, &&_348, &&_349, \
+ &&_350, &&_351, &&_352, &&_353, &&_354, &&_355, &&_356, &&_357, &&_358, &&_359, \
+ &&_360, &&_361, &&_362, &&_363, &&_364, &&_365, &&_366, &&_367, &&_368, &&_369, \
+ &&_370, &&_371, &&_372, &&_373, &&_374, &&_375, &&_376, &&_377, &&_378, &&_379, \
+ &&_380, &&_381, &&_382, &&_383, &&_384, &&_385, &&_386, &&_387, &&_388, &&_389, \
+ &&_390, &&_391, &&_392, &&_393, &&_394, &&_395, &&_396, &&_397, &&_398, &&_399, \
+ &&_400, &&_401, &&_402, &&_403, &&_404, &&_405, &&_406, &&_407, &&_408, &&_409, \
+ &&_410, &&_411, &&_412, &&_413, &&_414, &&_415, &&_416, &&_417, &&_418, &&_419, \
+ &&_420, &&_421, &&_422, &&_423, &&_424, &&_425, &&_426, &&_427, &&_428, &&_429, \
+ &&_430, &&_431, &&_432, &&_433, &&_434, &&_435, &&_436, &&_437, &&_438, &&_439, \
+ &&_440, &&_441, &&_442, &&_443, &&_444, &&_445, &&_446, &&_447, &&_448, &&_449, \
+ &&_450, &&_451, &&_452, &&_453, &&_454, &&_455, &&_456, &&_457, &&_458, &&_459, \
+ &&_460, &&_461, &&_462, &&_463, &&_464, &&_465, &&_466, &&_467, &&_468, &&_469, \
+ &&_470, &&_471, &&_472, &&_473, &&_474, &&_475, &&_476, &&_477, &&_478, &&_479, \
+ &&_480, &&_481, &&_482, &&_483, &&_484, &&_485, &&_486, &&_487, &&_488, &&_489, \
+ &&_490, &&_491, &&_492, &&_493, &&_494, &&_495, &&_496, &&_497, &&_498, &&_499, \
+ &&_500, &&_501, &&_502, &&_503, &&_504, &&_505, &&_506, &&_507, &&_508, &&_509, \
+ &&_510, &&_511 \
+ } JUMP_TABLE_PTR
+#else /* MULTIPLEBYTECODESETS */
+# define BC_JUMP_TABLE\
static void *jumpTable[256] = {\
- &&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9,\
+ &&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9,\
&&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19,\
&&_20, &&_21, &&_22, &&_23, &&_24, &&_25, &&_26, &&_27, &&_28, &&_29,\
&&_30, &&_31, &&_32, &&_33, &&_34, &&_35, &&_36, &&_37, &&_38, &&_39,\
@@ -50,6 +107,7 @@
&&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249,\
&&_250, &&_251, &&_252, &&_253, &&_254, &&_255\
};
+#endif /* MULTIPLEBYTECODESETS */
/* Compatibility between the old and the new names of the Gnuification macros */
#define JUMP_TABLE BC_JUMP_TABLE
Modified: branches/Cog/stackbuild/cygwinbuild/HowToBuild
===================================================================
--- branches/Cog/stackbuild/cygwinbuild/HowToBuild 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/stackbuild/cygwinbuild/HowToBuild 2012-07-18 00:35:02 UTC (rev 2562)
@@ -67,9 +67,10 @@
Win32. You are on your own but your efforts will be warmly welcomed.
First check-out the processor simulator source tree containing Bochs:
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build (on the Mac the following works)
- $ cd ROOT/processors/IA32/bochs
+Then build the libraries winbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+ $ cd ROOT/processors/IA32/winbochs
$ ./conf.COG
$ ./makeem
- $ cd ROOT/macbuild/BochsIA32Plugin
- $ xcodebuild
+and build the plugin either via make (for the entire VM) or just
+ $ cd ROOT/stackbuild/cygwinbuild
+ $ make build/vm/BochsIA32Plugin.dll
Modified: branches/Cog/unixbuild/HowToBuild
===================================================================
--- branches/Cog/unixbuild/HowToBuild 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/unixbuild/HowToBuild 2012-07-18 00:35:02 UTC (rev 2562)
@@ -63,13 +63,13 @@
need to first build bochs. First check-out the processor simulator source tree
containing Bochs:
svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build using the following, which works on Mac OS and is hence unlikely to
-work entirely on linux (no xcodebuild):
- $ cd ROOT/processors/IA32/bochs
+Then build libraries linuxbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+ $ cd ROOT/processors/IA32/linuxbochs
$ ./conf.COG
$ ./makeem
- $ cd ROOT/macbuild/BochsIA32Plugin
- $ xcodebuild
+and build the plugin via
+ $ cd ROOT/unixbuild/bld/BochsIA32Plugin
+ $ make
3e. If you're building the VM on a 64-bit OS, you'll need a compiler which can
compile and link to 32-bit binaries. On most Linuxes the gcc-multilib package
Modified: branches/Cog/unixbuild/bld/mvm
===================================================================
--- branches/Cog/unixbuild/bld/mvm 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/unixbuild/bld/mvm 2012-07-18 00:35:02 UTC (rev 2562)
@@ -5,6 +5,12 @@
*) OPT=-O2;;
esac
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO) echo "ok but this isn't safe!!";;
+*) make reallyclean
+esac
test -f config.h || ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g $OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
../../scripts/nukeversion
rm -rf ../../coglinux
Modified: branches/Cog/unixbuild/mtbld/mvm
===================================================================
--- branches/Cog/unixbuild/mtbld/mvm 2012-06-25 23:53:39 UTC (rev 2561)
+++ branches/Cog/unixbuild/mtbld/mvm 2012-07-18 00:35:02 UTC (rev 2562)
@@ -5,6 +5,12 @@
*) OPT=-O2;;
esac
+echo -n "clean? "
+read a
+case $a in
+n|no|N|NO) echo "ok but this isn't safe!!";;
+*) make reallyclean
+esac
test -f config.h || ../../platforms/unix/config/configure INTERP=cointerpmt --without-npsqueak CFLAGS="-g $OPT -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DCOGMTVM=1 -DDEBUGVM=0 -D_GNU_SOURCE -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1" LIBS=-lpthread
../../scripts/nukeversion
rm -rf ../../cogmtlinux
More information about the Vm-dev
mailing list