Revision: 3628 Author: eliot Date: 2016-02-23 09:42:03 -0800 (Tue, 23 Feb 2016) Log Message: ----------- CogVM source as per VMMaker.oscog-eem.1694 Author: eem Time: 23 February 2016, 9:30:35.750871 am UUID: e1381bbc-a5af-4a35-ac60-a739611c7e0e Ancestors: VMMaker.oscog-eem.1693 General: Fix a bug in printHex: for 64-bits (faulty arithmetic). ThreadedFFIPlugin: Fix compilation of ThreadedFFIPlugin subclasses as internal plugins. Speed up ffiIntegerValueOf: by adding a tag test (harmless in our current crop of VMs) and cppIf: SPURVM as appropriate. Fix the remaining 64-bit issues in the ThreadedFFIPlugin. The X64SysVFFIPlugin now passes the test suite. The issues addressed are: Masks for restricting and signing integral return values must be declared as at least long (again the fact that a manifest integer constat's type defaults to int causes problems). Cast 1 << foo to 1 asUnsignedLong << foo in one place where it is required. Use isFloatObject: rather than floatClass to test for floats since this works for both SmallFloat64 and BoxedFloat64 on 64-bit Spur. Several pointer declarations needed to be e.g. <var: #ptr type: #'long *'>, not <var: #ptr type: #'int *'>. Several casts to int of of firstIndexableField: (which has tyype void *) were discarded. ExternalAddresses and the like need to be created with BytesPerWord or (self sizeof: #'void *'),, not 4. Slang/ThreadedFFIPlugin: To fix shifts in 64 bits, modify Slang to cast a manifest constant that is the receiver of a shift to long (via postpending 'L' to the numeric string). Mac OS build: Make makeall scripts current. Nuke QuickTime framework in the 64-bit build; there is no 64-bit QuickTime. Modified Paths: -------------- branches/Cog/build.macos32x86/makeall branches/Cog/build.macos32x86/makeallinstall branches/Cog/build.macos64x64/common/Makefile.flags branches/Cog/build.macos64x64/makeall branches/Cog/build.macos64x64/makeallinstall branches/Cog/nsspur64src/vm/cogit.h branches/Cog/nsspur64src/vm/cogitX64.c branches/Cog/nsspur64src/vm/cointerp.c branches/Cog/nsspur64src/vm/cointerp.h branches/Cog/nsspur64src/vm/gcc3x-cointerp.c branches/Cog/nsspursrc/vm/cogit.h branches/Cog/nsspursrc/vm/cogitARMv5.c branches/Cog/nsspursrc/vm/cogitIA32.c branches/Cog/nsspursrc/vm/cogitMIPSEL.c branches/Cog/nsspursrc/vm/cointerp.c branches/Cog/nsspursrc/vm/cointerp.h branches/Cog/nsspursrc/vm/gcc3x-cointerp.c branches/Cog/nsspurstack64src/vm/gcc3x-interp.c branches/Cog/nsspurstack64src/vm/interp.c branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c branches/Cog/nsspurstacksrc/vm/interp.c branches/Cog/spur64src/vm/cogit.h branches/Cog/spur64src/vm/cogitX64.c branches/Cog/spur64src/vm/cointerp.c branches/Cog/spur64src/vm/cointerp.h branches/Cog/spur64src/vm/gcc3x-cointerp.c branches/Cog/spursistasrc/vm/cogit.h branches/Cog/spursistasrc/vm/cogitARMv5.c branches/Cog/spursistasrc/vm/cogitIA32.c branches/Cog/spursistasrc/vm/cogitMIPSEL.c branches/Cog/spursistasrc/vm/cointerp.c branches/Cog/spursistasrc/vm/cointerp.h branches/Cog/spursistasrc/vm/gcc3x-cointerp.c branches/Cog/spursrc/vm/cogit.h branches/Cog/spursrc/vm/cogitARMv5.c branches/Cog/spursrc/vm/cogitIA32.c branches/Cog/spursrc/vm/cogitMIPSEL.c branches/Cog/spursrc/vm/cointerp.c branches/Cog/spursrc/vm/cointerp.h branches/Cog/spursrc/vm/gcc3x-cointerp.c branches/Cog/spurstack64src/vm/gcc3x-interp.c branches/Cog/spurstack64src/vm/interp.c branches/Cog/spurstacksrc/vm/gcc3x-interp.c branches/Cog/spurstacksrc/vm/interp.c branches/Cog/src/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c branches/Cog/src/plugins/B2DPlugin/B2DPlugin.c branches/Cog/src/plugins/BitBltPlugin/BitBltPlugin.c branches/Cog/src/plugins/FFTPlugin/FFTPlugin.c branches/Cog/src/plugins/FilePlugin/FilePlugin.c branches/Cog/src/plugins/FloatMathPlugin/FloatMathPlugin.c branches/Cog/src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c branches/Cog/src/plugins/LargeIntegers/LargeIntegers.c branches/Cog/src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c branches/Cog/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c branches/Cog/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c branches/Cog/src/plugins/SqueakFFIPrims/SqueakFFIPrims.c branches/Cog/src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c branches/Cog/src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c branches/Cog/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c branches/Cog/src/plugins/ZipPlugin/ZipPlugin.c branches/Cog/src/vm/cogit.h branches/Cog/src/vm/cogitARMv5.c branches/Cog/src/vm/cogitIA32.c branches/Cog/src/vm/cogitMIPSEL.c branches/Cog/src/vm/cointerp.c branches/Cog/src/vm/cointerp.h branches/Cog/src/vm/cointerpmt.c branches/Cog/src/vm/cointerpmt.h branches/Cog/src/vm/gcc3x-cointerp.c branches/Cog/src/vm/gcc3x-cointerpmt.c branches/Cog/stacksrc/vm/gcc3x-interp.c branches/Cog/stacksrc/vm/interp.c Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h Modified: branches/Cog/build.macos32x86/makeall =================================================================== --- branches/Cog/build.macos32x86/makeall 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/build.macos32x86/makeall 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,6 +1,6 @@ #!/bin/bash trap 'exit 2' HUP INT PIPE TERM -for d in newspeak.* squeak.*; do +for d in newspeak.* pharo.* squeak.*; do if test -d "$d"; then (cd ./$d;./mvm -A) else @@ -8,4 +8,4 @@ fi done echo no news is good news... -grep -w error: newspeak.*/LOG* squeak.*/LOG* +grep -w error: newspeak.*/LOG* pharo.* squeak.*/LOG* Modified: branches/Cog/build.macos32x86/makeallinstall =================================================================== --- branches/Cog/build.macos32x86/makeallinstall 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/build.macos32x86/makeallinstall 2016-02-23 17:42:03 UTC (rev 3628) @@ -5,9 +5,9 @@ REV=`grep 'SvnRawRevisionString.*Rev:' "\`dirname $0\`/../platforms/Cross/vm/sqSCCSVersion.h" \ | sed 's/^.*Rev: \([0-9][0-9]*\) $";/\1/'` TAG=`date +%y.%U.`$REV -set -- Newspeak\ Virtual\ Machine Newspeak\ Spur\ Virtual\ Machine \ - Cog Cog\ Spur -for td in newspeak.cog.spur squeak.cog.v3 squeak.cog.spur; do +set -- Newspeak\ Spur\ Virtual\ Machine \ + Pharo Cog Cog\ Spur +for td in newspeak.cog.spur pharo.cog.spur squeak.cog.v3 squeak.cog.spur; do d=$td/installer PRODUCT=$1-$TAG.dmg if test -d "$d"; then Modified: branches/Cog/build.macos64x64/common/Makefile.flags =================================================================== --- branches/Cog/build.macos64x64/common/Makefile.flags 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/build.macos64x64/common/Makefile.flags 2016-02-23 17:42:03 UTC (rev 3628) @@ -33,9 +33,10 @@ -Wno-sign-conversion -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof \ -Wno-trigraphs -Wdeprecated-declarations +# N.B. No QuickTime framework; that is 32-bit only. FRAMEWORKS:=-fobjc-link-runtime \ -framework Foundation -framework OpenGL -framework Cocoa \ - -framework AudioToolbox -framework CoreAudio -framework QuickTime \ + -framework AudioToolbox -framework CoreAudio \ -framework SystemConfiguration \ -framework ApplicationServices -framework Security \ -framework QuartzCore Modified: branches/Cog/build.macos64x64/makeall =================================================================== --- branches/Cog/build.macos64x64/makeall 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/build.macos64x64/makeall 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,6 +1,6 @@ #!/bin/bash trap 'exit 2' HUP INT PIPE TERM -for d in newspeak.* squeak.*; do +for d in newspeak.* pharo.* squeak.*; do if test -d "$d"; then (cd ./$d;./mvm -A) else @@ -8,4 +8,4 @@ fi done echo no news is good news... -grep -w error: newspeak.*/LOG* squeak.*/LOG* +grep -w error: newspeak.*/LOG* pharo.* squeak.*/LOG* Modified: branches/Cog/build.macos64x64/makeallinstall =================================================================== --- branches/Cog/build.macos64x64/makeallinstall 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/build.macos64x64/makeallinstall 2016-02-23 17:42:03 UTC (rev 3628) @@ -5,9 +5,9 @@ REV=`grep 'SvnRawRevisionString.*Rev:' "\`dirname $0\`/../platforms/Cross/vm/sqSCCSVersion.h" \ | sed 's/^.*Rev: \([0-9][0-9]*\) $";/\1/'` TAG=`date +%y.%U.`$REV -set -- Newspeak\ Virtual\ Machine Newspeak\ Spur\ Virtual\ Machine \ - Cog Cog\ Spur -for td in newspeak.cog.v3 newspeak.cog.spur squeak.cog.v3 squeak.cog.spur; do +set -- Newspeak\ Spur\ Virtual\ Machine \ + Pharo Cog Cog\ Spur +for td in newspeak.cog.spur pharo.cog.spur squeak.cog.v3 squeak.cog.spur; do d=$td/installer PRODUCT=$1-$TAG.dmg if test -d "$d"; then Modified: branches/Cog/nsspur64src/vm/cogit.h =================================================================== --- branches/Cog/nsspur64src/vm/cogit.h 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/nsspur64src/vm/cogit.h 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed + CCodeGenerator VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e */ Modified: branches/Cog/nsspur64src/vm/cogitX64.c =================================================================== --- branches/Cog/nsspur64src/vm/cogitX64.c 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/nsspur64src/vm/cogitX64.c 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1688 uuid: 1216c2a8-fd06-474f-9f5b-33d14918ca23 + CCodeGenerator VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e from - StackToRegisterMappingCogit VMMaker.oscog-eem.1688 uuid: 1216c2a8-fd06-474f-9f5b-33d14918ca23 + StackToRegisterMappingCogit VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1688 uuid: 1216c2a8-fd06-474f-9f5b-33d14918ca23 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -3700,7 +3700,7 @@ closedPICRefersToUnmarkedObject(CogMethod *cPIC) { sqInt i; - usqInt object; + sqInt object; sqInt pc; if (!((isImmediate((cPIC->selector))) @@ -5883,12 +5883,12 @@ generateMapAtstart(sqInt addressOrNull, sqInt startAddress) { unsigned char annotation; - sqInt delta; + usqInt delta; sqInt i; AbstractInstruction *instruction; sqInt length; - sqInt location; - sqInt mapEntry; + usqInt location; + usqInt mapEntry; sqInt maxDelta; usqInt mcpc; Modified: branches/Cog/nsspur64src/vm/cointerp.c =================================================================== --- branches/Cog/nsspur64src/vm/cointerp.c 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/nsspur64src/vm/cointerp.c 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e from - CoInterpreter VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed + CoInterpreter VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2442,7 +2442,7 @@ /*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1 }; char expensiveAsserts = 0; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1689"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1693"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -17850,7 +17850,7 @@ static sqInt checkForAndFollowForwardedPrimitiveState(void) { DECL_MAYBE_SQ_GLOBAL_STRUCT - signed char accessorDepth; + sqInt accessorDepth; sqInt firstBytecode; sqInt found; sqInt found1; @@ -61538,7 +61538,7 @@ usqInt prevFree; usqInt prevFreeChunk; usqInt prevPrevFree; - sqInt prevPrevFreeChunk; + usqInt prevPrevFreeChunk; sqInt slotBytes; sqInt slotBytes1; usqInt there; @@ -75838,12 +75838,12 @@ void printHex(sqInt n) { - char buf[35]; + char buf[37]; sqInt len; /* large enough for a 64-bit value in hex plus the null plus 16 spaces */ - memset(buf,' ',34); + memset(buf,' ',36); len = sprintf(buf + 2 + 2 * BytesPerWord, "0x%lx", (unsigned long)(n)); printf("%s", buf + len); } Modified: branches/Cog/nsspur64src/vm/cointerp.h =================================================================== --- branches/Cog/nsspur64src/vm/cointerp.h 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/nsspur64src/vm/cointerp.h 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e */ Modified: branches/Cog/nsspur64src/vm/gcc3x-cointerp.c =================================================================== --- branches/Cog/nsspur64src/vm/gcc3x-cointerp.c 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/nsspur64src/vm/gcc3x-cointerp.c 2016-02-23 17:42:03 UTC (rev 3628) @@ -2,11 +2,11 @@ /* Automatically generated by - CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed + CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e from - CoInterpreter VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed + CoInterpreter VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e */ -static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed " __DATE__ ; +static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e " __DATE__ ; char *__interpBuildInfo = __buildInfo; @@ -2445,7 +2445,7 @@ /*560*/ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1 }; char expensiveAsserts = 0; -const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1689"; +const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1693"; sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */; volatile int sendTrace; @@ -17859,7 +17859,7 @@ static sqInt checkForAndFollowForwardedPrimitiveState(void) { DECL_MAYBE_SQ_GLOBAL_STRUCT - signed char accessorDepth; + sqInt accessorDepth; sqInt firstBytecode; sqInt found; sqInt found1; @@ -61547,7 +61547,7 @@ usqInt prevFree; usqInt prevFreeChunk; usqInt prevPrevFree; - sqInt prevPrevFreeChunk; + usqInt prevPrevFreeChunk; sqInt slotBytes; sqInt slotBytes1; usqInt there; @@ -75847,12 +75847,12 @@ void printHex(sqInt n) { - char buf[35]; + char buf[37]; sqInt len; /* large enough for a 64-bit value in hex plus the null plus 16 spaces */ - memset(buf,' ',34); + memset(buf,' ',36); len = sprintf(buf + 2 + 2 * BytesPerWord, "0x%lx", (unsigned long)(n)); printf("%s", buf + len); } Modified: branches/Cog/nsspursrc/vm/cogit.h =================================================================== --- branches/Cog/nsspursrc/vm/cogit.h 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/nsspursrc/vm/cogit.h 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,5 +1,5 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1689 uuid: 4c473a09-7e78-4c59-b779-f2ad17e318ed + CCodeGenerator VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e */ Modified: branches/Cog/nsspursrc/vm/cogitARMv5.c =================================================================== --- branches/Cog/nsspursrc/vm/cogitARMv5.c 2016-02-22 19:11:27 UTC (rev 3627) +++ branches/Cog/nsspursrc/vm/cogitARMv5.c 2016-02-23 17:42:03 UTC (rev 3628) @@ -1,9 +1,9 @@ /* Automatically generated by - CCodeGenerator VMMaker.oscog-eem.1688 uuid: 1216c2a8-fd06-474f-9f5b-33d14918ca23 + CCodeGenerator VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e from - StackToRegisterMappingCogit VMMaker.oscog-eem.1688 uuid: 1216c2a8-fd06-474f-9f5b-33d14918ca23 + StackToRegisterMappingCogit VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e */ -static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1688 uuid: 1216c2a8-fd06-474f-9f5b-33d14918ca23 " __DATE__ ; +static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.1693 uuid: 609488bc-c34d-49c6-8040-676e1a9d9d0e " __DATE__ ; char *__cogitBuildInfo = __buildInfo; @@ -2268,7 +2268,7 @@ static sqInt NoDbgRegParms addsrnimmror(AbstractInstruction * self_in_addsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) { - return (((AL << 28) | ((1 << 25) | ((AddOpcode << 21) | (1 << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); + return (((AL << 28) | ((1L << 25) | ((AddOpcode << 21) | (1L << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); } @@ -2279,7 +2279,7 @@ static sqInt NoDbgRegParms addrnimmror(AbstractInstruction * self_in_addrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) { - return (((AL << 28) | ((1 << 25) | ((AddOpcode << 21) | (0 << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); + return (((AL << 28) | ((1L << 25) | ((AddOpcode << 21) | (0L << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); } @@ -2290,7 +2290,7 @@ static sqInt NoDbgRegParms addrnrm(AbstractInstruction * self_in_addrnrm, sqInt destReg, sqInt srcReg, sqInt addReg) { - return (((AL << 28) | ((0 << 25) | ((AddOpcode << 21) | (0 << 20)))) | ((srcReg << 16) | (destReg << 12))) | (addReg & 0xFFF); + return (((AL << 28) | ((0L << 25) | ((AddOpcode << 21) | (0L << 20)))) | ((srcReg << 16) | (destReg << 12))) | (addReg & 0xFFF); } @@ -2321,7 +2321,7 @@ static sqInt NoDbgRegParms andsrnimmror(AbstractInstruction * self_in_andsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) { - return (((AL << 28) | ((1 << 25) | ((AndOpcode << 21) | (1 << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); + return (((AL << 28) | ((1L << 25) | ((AndOpcode << 21) | (1L << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); } @@ -2332,7 +2332,7 @@ static sqInt NoDbgRegParms andrnimmror(AbstractInstruction * self_in_andrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) { - return (((AL << 28) | ((1 << 25) | ((AndOpcode << 21) | (0 << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); + return (((AL << 28) | ((1L << 25) | ((AndOpcode << 21) | (0L << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); } @@ -2343,7 +2343,7 @@ static sqInt NoDbgRegParms bicsrnimmror(AbstractInstruction * self_in_bicsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot) { - return (((AL << 28) | ((1 << 25) | ((BicOpcode << 21) | (1 << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); + return (((AL << 28) | ((1L << 25) | ((BicOpcode << 21) | (1L << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); } @@ -2420,7 +2420,7 @@ || (instructionIsBL(self_in_callTargetFromReturnAddress, call))); /* begin extractOffsetFromBL: */ relativeJump = call & 0xFFFFFF; - relativeJump = (relativeJump & (1 << 23) + relativeJump = (relativeJump & (1L << 23) ? ((int) ((relativeJump | 0x3F000000) << 2)) : relativeJump << 2); callDistance = relativeJump; @@ -2569,7 +2569,7 @@ } for (i1 = 2; i1 <= 30; i1 += 2) { - if ((value & (((0xFF << i1) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i1)))) == value) { + if ((value & (((0xFFL << i1) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i1)))) == value) { return 4; } @@ -2593,7 +2593,7 @@ } for (i2 = 2; i2 <= 30; i2 += 2) { - if ((value1 & (((0xFF << i2) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i2)))) == value1) { + if ((value1 & (((0xFFL << i2) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i2)))) == value1) { return 4; } @@ -2617,7 +2617,7 @@ } for (i3 = 2; i3 <= 30; i3 += 2) { - if ((constant2 & (((0xFF << i3) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i3)))) == constant2) { + if ((constant2 & (((0xFFL << i3) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i3)))) == constant2) { return 4; } @@ -2764,7 +2764,7 @@ hiReg = ((self_in_concretizeCMPSMULL->operands))[0]; loReg = ((self_in_concretizeCMPSMULL->operands))[1]; /* begin machineCodeAt:put: */ - aWord = (((((AL << 28) | ((0 << 25) | ((CmpOpcode << 21) | (1 << 20)))) | ((hiReg << 16) | (0 << 12))) + (0x1F << 7)) + (2 << 5)) + loReg; + aWord = (((((AL << 28) | ((0L << 25) | ((CmpOpcode << 21) | (1L << 20)))) | ((hiReg << 16) | (0L << 12))) + (0x1FL << 7)) + (2L << 5)) + loReg; ((self_in_concretizeCMPSMULL->machineCode))[0 / 4] = aWord; return ((self_in_concretizeCMPSMULL->machineCodeSize) = 4); } @@ -2787,7 +2787,7 @@ dispatchConcretize(self_in_concretizeConditionalInstruction); (self_in_concretizeConditionalInstruction->conditionOrNil) = savedCond; for (i = 0; i < ((self_in_concretizeConditionalInstruction->machineCodeSize)); i += 4) { - instr = (((((self_in_concretizeConditionalInstruction->machineCode))[i / 4]) | (15 << 28)) - (15 << 28)); + instr = (((((self_in_concretizeConditionalInstruction->machineCode))[i / 4]) | (15L << 28)) - (15L << 28)); /* begin machineCodeAt:put: */ aWord = instr | ((((self_in_concretizeConditionalInstruction->conditionOrNil)) & 15) << 28); ((self_in_concretizeConditionalInstruction->machineCode))[i / 4] = aWord; @@ -2853,7 +2853,7 @@ loResultReg = (srcB = ((self_in_concretizeSMULL->operands))[1]); hiResultReg = RISCTempReg; /* begin machineCodeAt:put: */ - aWord = (((((AL << 28) | ((0 << 25) | ((6 << 21) | (0 << 20)))) | ((hiResultReg << 16) | (loResultReg << 12))) + (srcA << 8)) + (9 << 4)) + srcB; + aWord = (((((AL << 28) | ((0L << 25) | ((6L << 21) | (0L << 20)))) | ((hiResultReg << 16) | (loResultReg << 12))) + (srcA << 8)) + (9L << 4)) + srcB; ((self_in_concretizeSMULL->machineCode))[0 / 4] = aWord; return ((self_in_concretizeSMULL->machineCodeSize) = 4); } @@ -2881,10 +2881,10 @@ dataOpTyperdrnrmlsr(AbstractInstruction * self_in_dataOpTyperdrnrmlsr, sqInt armOpcode, sqInt destReg, sqInt srcReg, sqInt addReg, sqInt shft) { if (shft == 0) { - return (((AL << 28) | ((0 << 25) | ((armOpcode << 21) | (1 << 20)))) | ((srcReg << 16) | (destReg << 12))) | (addReg & 0xFFF); + return (((AL << 28) | ((0L << 25) | ((armOpcode << 21) | (1L << 20)))) | ((srcReg << 16) | (destReg << 12))) | (addReg & 0xFFF); } else { - return (((AL << 28) | ((0 << 25) | ((armOpcode << 21) | (1 << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((shft << 7) | 32) | addReg) & 0xFFF); + return (((AL << 28) | ((0L << 25) | ((armOpcode << 21) | (1L << 20)))) | ((srcReg << 16) | (destReg << 12))) | ((((shft << 7) | 32) | addReg) & 0xFFF); } } @@ -3438,7 +3438,7 @@ jumpTarget = jumpTarget1; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord43 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -3472,7 +3472,7 @@ jumpTarget2 = jumpTarget11; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord44 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -3918,7 +3918,7 @@ case Stop: /* begin concretizeStop */ - ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((AL << 28) | ((66 << 20) | (7 << 4))); + ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((AL << 28) | ((66L << 20) | (7L << 4))); ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -3941,7 +3941,7 @@ flagsOrOpcode = (negate ? inverseOpcodeFor(self_in_dispatchConcretize, AddOpcode) : AddOpcode); - aWord4 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode << 21) | (1 << 20)))) | ((rn << 16) | (rd << 12))) | ((((((usqInt) 0) >> 1) << 8) | value) & 0xFFF); + aWord4 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode << 21) | (1L << 20)))) | ((rn << 16) | (rd << 12))) | ((((((usqInt) 0) >> 1) << 8) | value) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord4; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -3949,7 +3949,7 @@ goto l1; } for (i = 2; i <= 30; i += 2) { - if ((value & (((0xFF << i) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i)))) == value) { + if ((value & (((0xFFL << i) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i)))) == value) { rot = 32 - i; immediate = (((usqInt) value) >> i) | ((value << (32 - i)) & 0xFFFFFFFFUL); negate = val != value; @@ -3957,7 +3957,7 @@ flagsOrOpcode1 = (negate ? inverseOpcodeFor(self_in_dispatchConcretize, AddOpcode) : AddOpcode); - aWord4 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode1 << 21) | (1 << 20)))) | ((rn << 16) | (rd << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); + aWord4 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode1 << 21) | (1L << 20)))) | ((rn << 16) | (rd << 12))) | ((((((usqInt) rot) >> 1) << 8) | immediate) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord4; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -3973,7 +3973,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ if (val > 0) { hb = highBit(val); - if ((1 << hb) == (val + 1)) { + if ((1L << hb) == (val + 1)) { /* MVN temp, #0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -3992,7 +3992,7 @@ rd2 = rn4; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord45 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4000,7 +4000,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord45; instrOffset8 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset8 / 4] = ((((AL << 28) | ((0 << 25) | ((AddOpcode << 21) | (1 << 20)))) | ((rn4 << 16) | (rd2 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset8 / 4] = ((((AL << 28) | ((0L << 25) | ((AddOpcode << 21) | (1L << 20)))) | ((rn4 << 16) | (rd2 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset8 + 4); return; @@ -4021,7 +4021,7 @@ flagsOrOpcode2 = (invert ? inverseOpcodeFor(self_in_dispatchConcretize, AndOpcode) : AndOpcode); - aWord5 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode2 << 21) | (1 << 20)))) | ((rn1 << 16) | (rn1 << 12))) | ((((((usqInt) 0) >> 1) << 8) | value1) & 0xFFF); + aWord5 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode2 << 21) | (1L << 20)))) | ((rn1 << 16) | (rn1 << 12))) | ((((((usqInt) 0) >> 1) << 8) | value1) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord5; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4029,7 +4029,7 @@ goto l2; } for (i1 = 2; i1 <= 30; i1 += 2) { - if ((value1 & (((0xFF << i1) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i1)))) == value1) { + if ((value1 & (((0xFFL << i1) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i1)))) == value1) { rot1 = 32 - i1; immediate1 = (((usqInt) value1) >> i1) | ((value1 << (32 - i1)) & 0xFFFFFFFFUL); invert = val1 != value1; @@ -4037,7 +4037,7 @@ flagsOrOpcode3 = (invert ? inverseOpcodeFor(self_in_dispatchConcretize, AndOpcode) : AndOpcode); - aWord5 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode3 << 21) | (1 << 20)))) | ((rn1 << 16) | (rn1 << 12))) | ((((((usqInt) rot1) >> 1) << 8) | immediate1) & 0xFFF); + aWord5 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode3 << 21) | (1L << 20)))) | ((rn1 << 16) | (rn1 << 12))) | ((((((usqInt) rot1) >> 1) << 8) | immediate1) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord5; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4054,7 +4054,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ if (val1 > 0) { hb1 = highBit(val1); - if ((1 << hb1) == (val1 + 1)) { + if ((1L << hb1) == (val1 + 1)) { /* MVN temp, #0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -4078,18 +4078,18 @@ /* begin rotateable8bitImmediate:ifTrue:ifFalse: */ if ((val5 & 0xFF) == val5) { /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1 << 25) | ((AndOpcode << 21) | (1 << 20)))) | ((rn5 << 16) | (rd3 << 12))) | ((((((usqInt) 0) >> 1) << 8) | val5) & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1L << 25) | ((AndOpcode << 21) | (1L << 20)))) | ((rn5 << 16) | (rd3 << 12))) | ((((((usqInt) 0) >> 1) << 8) | val5) & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = 4); return; goto l22; } for (i13 = 2; i13 <= 30; i13 += 2) { - if ((val5 & (((0xFF << i13) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i13)))) == val5) { + if ((val5 & (((0xFFL << i13) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i13)))) == val5) { rot11 = 32 - i13; immediate14 = (((usqInt) val5) >> i13) | ((val5 << (32 - i13)) & 0xFFFFFFFFUL); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1 << 25) | ((AndOpcode << 21) | (1 << 20)))) | ((rn5 << 16) | (rd3 << 12))) | ((((((usqInt) rot11) >> 1) << 8) | immediate14) & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1L << 25) | ((AndOpcode << 21) | (1L << 20)))) | ((rn5 << 16) | (rd3 << 12))) | ((((((usqInt) rot11) >> 1) << 8) | immediate14) & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4100,7 +4100,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ if (val5 > 0) { hb5 = highBit(val5); - if ((1 << hb5) == (val5 + 1)) { + if ((1L << hb5) == (val5 + 1)) { /* MVN temp, #0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -4119,7 +4119,7 @@ rd22 = rn24; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord79 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4127,7 +4127,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord79; instrOffset27 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset27 / 4] = ((((AL << 28) | ((0 << 25) | ((AndOpcode << 21) | (1 << 20)))) | ((rn24 << 16) | (rd22 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset27 / 4] = ((((AL << 28) | ((0L << 25) | ((AndOpcode << 21) | (1L << 20)))) | ((rn24 << 16) | (rd22 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset27 + 4); return; @@ -4158,7 +4158,7 @@ goto l3; } for (i2 = 2; i2 <= 30; i2 += 2) { - if ((value2 & (((0xFF << i2) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i2)))) == value2) { + if ((value2 & (((0xFFL << i2) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i2)))) == value2) { rot2 = 32 - i2; immediate2 = (((usqInt) value2) >> i2) | ((value2 << (32 - i2)) & 0xFFFFFFFFUL); invert1 = val2 != value2; @@ -4181,7 +4181,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ hb2 = highBit(((self_in_dispatchConcretize->operands))[0]); - if ((1 << hb2) == (val2 + 1)) { + if ((1L << hb2) == (val2 + 1)) { /* MVN temp reg, 0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -4200,7 +4200,7 @@ rd4 = rn6; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord47 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4208,7 +4208,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord47; instrOffset9 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset9 / 4] = ((((AL << 28) | ((0 << 25) | ((AndOpcode << 21) | (1 << 20)))) | ((rn6 << 16) | (rd4 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset9 / 4] = ((((AL << 28) | ((0L << 25) | ((AndOpcode << 21) | (1L << 20)))) | ((rn6 << 16) | (rd4 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset9 + 4); return; } @@ -4235,7 +4235,7 @@ flagsOrOpcode4 = (negate1 ? inverseOpcodeFor(self_in_dispatchConcretize, CmpOpcode) : CmpOpcode); - aWord7 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode4 << 21) | (1 << 20)))) | ((rn2 << 16) | (rd1 << 12))) | ((((((usqInt) 0) >> 1) << 8) | value3) & 0xFFF); + aWord7 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode4 << 21) | (1L << 20)))) | ((rn2 << 16) | (rd1 << 12))) | ((((((usqInt) 0) >> 1) << 8) | value3) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord7; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4243,7 +4243,7 @@ goto l4; } for (i3 = 2; i3 <= 30; i3 += 2) { - if ((value3 & (((0xFF << i3) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i3)))) == value3) { + if ((value3 & (((0xFFL << i3) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i3)))) == value3) { rot3 = 32 - i3; immediate3 = (((usqInt) value3) >> i3) | ((value3 << (32 - i3)) & 0xFFFFFFFFUL); negate1 = val3 != value3; @@ -4251,7 +4251,7 @@ flagsOrOpcode5 = (negate1 ? inverseOpcodeFor(self_in_dispatchConcretize, CmpOpcode) : CmpOpcode); - aWord7 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode5 << 21) | (1 << 20)))) | ((rn2 << 16) | (rd1 << 12))) | ((((((usqInt) rot3) >> 1) << 8) | immediate3) & 0xFFF); + aWord7 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode5 << 21) | (1L << 20)))) | ((rn2 << 16) | (rd1 << 12))) | ((((((usqInt) rot3) >> 1) << 8) | immediate3) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord7; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4267,7 +4267,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ if (val3 > 0) { hb3 = highBit(val3); - if ((1 << hb3) == (val3 + 1)) { + if ((1L << hb3) == (val3 + 1)) { /* MVN temp, #0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -4286,7 +4286,7 @@ rd5 = 0; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord48 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4294,7 +4294,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord48; instrOffset10 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset10 / 4] = ((((AL << 28) | ((0 << 25) | ((CmpOpcode << 21) | (1 << 20)))) | ((rn7 << 16) | (rd5 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset10 / 4] = ((((AL << 28) | ((0L << 25) | ((CmpOpcode << 21) | (1L << 20)))) | ((rn7 << 16) | (rd5 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset10 + 4); return; @@ -4313,18 +4313,18 @@ /* begin rotateable8bitImmediate:ifTrue:ifFalse: */ if ((val6 & 0xFF) == val6) { /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1 << 25) | ((OrOpcode << 21) | (1 << 20)))) | ((rn8 << 16) | (rd6 << 12))) | ((((((usqInt) 0) >> 1) << 8) | val6) & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1L << 25) | ((OrOpcode << 21) | (1L << 20)))) | ((rn8 << 16) | (rd6 << 12))) | ((((((usqInt) 0) >> 1) << 8) | val6) & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = 4); return; goto l17; } for (i14 = 2; i14 <= 30; i14 += 2) { - if ((val6 & (((0xFF << i14) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i14)))) == val6) { + if ((val6 & (((0xFFL << i14) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i14)))) == val6) { rot12 = 32 - i14; immediate15 = (((usqInt) val6) >> i14) | ((val6 << (32 - i14)) & 0xFFFFFFFFUL); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1 << 25) | ((OrOpcode << 21) | (1 << 20)))) | ((rn8 << 16) | (rd6 << 12))) | ((((((usqInt) rot12) >> 1) << 8) | immediate15) & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1L << 25) | ((OrOpcode << 21) | (1L << 20)))) | ((rn8 << 16) | (rd6 << 12))) | ((((((usqInt) rot12) >> 1) << 8) | immediate15) & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4335,7 +4335,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ if (val6 > 0) { hb6 = highBit(val6); - if ((1 << hb6) == (val6 + 1)) { + if ((1L << hb6) == (val6 + 1)) { /* MVN temp, #0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -4354,7 +4354,7 @@ rd23 = rn25; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord80 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4362,7 +4362,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord80; instrOffset28 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset28 / 4] = ((((AL << 28) | ((0 << 25) | ((OrOpcode << 21) | (1 << 20)))) | ((rn25 << 16) | (rd23 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset28 / 4] = ((((AL << 28) | ((0L << 25) | ((OrOpcode << 21) | (1L << 20)))) | ((rn25 << 16) | (rd23 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset28 + 4); return; @@ -4384,7 +4384,7 @@ goto l6; } for (i11 = 2; i11 <= 30; i11 += 2) { - if ((word & (((0xFF << i11) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i11)))) == word) { + if ((word & (((0xFFL << i11) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i11)))) == word) { rot4 = 32 - i11; immediate4 = (((usqInt) word) >> i11) | ((word << (32 - i11)) & 0xFFFFFFFFUL); reg = ((self_in_dispatchConcretize->operands))[1]; @@ -4412,7 +4412,7 @@ goto l23; } for (i4 = 2; i4 <= 30; i4 += 2) { - if (((-word) & (((0xFF << i4) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i4)))) == (-word)) { + if (((-word) & (((0xFFL << i4) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i4)))) == (-word)) { rot4 = 32 - i4; immediate4 = (((usqInt) (-word)) >> i4) | (((-word) << (32 - i4)) & 0xFFFFFFFFUL); reg = ((self_in_dispatchConcretize->operands))[1]; @@ -4431,7 +4431,7 @@ rd7 = rn9; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord50 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4439,7 +4439,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord50; instrOffset11 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset11 / 4] = ((((AL << 28) | ((0 << 25) | ((SubOpcode << 21) | (1 << 20)))) | ((rn9 << 16) | (rd7 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset11 / 4] = ((((AL << 28) | ((0L << 25) | ((SubOpcode << 21) | (1L << 20)))) | ((rn9 << 16) | (rd7 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset11 + 4); return; @@ -4462,7 +4462,7 @@ goto l7; } for (i5 = 2; i5 <= 30; i5 += 2) { - if ((constant & (((0xFF << i5) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i5)))) == constant) { + if ((constant & (((0xFFL << i5) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i5)))) == constant) { rot5 = 32 - i5; immediate5 = (((usqInt) constant) >> i5) | ((constant << (32 - i5)) & 0xFFFFFFFFUL); reg1 = ((self_in_dispatchConcretize->operands))[1]; @@ -4481,7 +4481,7 @@ rd8 = rn10; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord51 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4489,7 +4489,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord51; instrOffset12 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset12 / 4] = ((((AL << 28) | ((0 << 25) | ((TstOpcode << 21) | (1 << 20)))) | ((rn10 << 16) | (rd8 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset12 / 4] = ((((AL << 28) | ((0L << 25) | ((TstOpcode << 21) | (1L << 20)))) | ((rn10 << 16) | (rd8 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset12 + 4); return; @@ -4510,7 +4510,7 @@ flagsOrOpcode6 = (invert2 ? inverseOpcodeFor(self_in_dispatchConcretize, XorOpcode) : XorOpcode); - aWord10 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode6 << 21) | (1 << 20)))) | ((rn3 << 16) | (rn3 << 12))) | ((((((usqInt) 0) >> 1) << 8) | value4) & 0xFFF); + aWord10 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode6 << 21) | (1L << 20)))) | ((rn3 << 16) | (rn3 << 12))) | ((((((usqInt) 0) >> 1) << 8) | value4) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord10; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4518,7 +4518,7 @@ goto l8; } for (i6 = 2; i6 <= 30; i6 += 2) { - if ((value4 & (((0xFF << i6) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i6)))) == value4) { + if ((value4 & (((0xFFL << i6) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i6)))) == value4) { rot6 = 32 - i6; immediate6 = (((usqInt) value4) >> i6) | ((value4 << (32 - i6)) & 0xFFFFFFFFUL); invert2 = val4 != value4; @@ -4526,7 +4526,7 @@ flagsOrOpcode7 = (invert2 ? inverseOpcodeFor(self_in_dispatchConcretize, XorOpcode) : XorOpcode); - aWord10 = (((AL << 28) | ((1 << 25) | ((flagsOrOpcode7 << 21) | (1 << 20)))) | ((rn3 << 16) | (rn3 << 12))) | ((((((usqInt) rot6) >> 1) << 8) | immediate6) & 0xFFF); + aWord10 = (((AL << 28) | ((1L << 25) | ((flagsOrOpcode7 << 21) | (1L << 20)))) | ((rn3 << 16) | (rn3 << 12))) | ((((((usqInt) rot6) >> 1) << 8) | immediate6) & 0xFFF); ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord10; ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4543,7 +4543,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ if (val4 > 0) { hb4 = highBit(val4); - if ((1 << hb4) == (val4 + 1)) { + if ((1L << hb4) == (val4 + 1)) { /* MVN temp, #0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -4567,18 +4567,18 @@ /* begin rotateable8bitImmediate:ifTrue:ifFalse: */ if ((val7 & 0xFF) == val7) { /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1 << 25) | ((XorOpcode << 21) | (1 << 20)))) | ((rn11 << 16) | (rd9 << 12))) | ((((((usqInt) 0) >> 1) << 8) | val7) & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1L << 25) | ((XorOpcode << 21) | (1L << 20)))) | ((rn11 << 16) | (rd9 << 12))) | ((((((usqInt) 0) >> 1) << 8) | val7) & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = 4); return; goto l24; } for (i15 = 2; i15 <= 30; i15 += 2) { - if ((val7 & (((0xFF << i15) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i15)))) == val7) { + if ((val7 & (((0xFFL << i15) & 0xFFFFFFFFUL) | (((usqInt) 0xFF) >> (32 - i15)))) == val7) { rot13 = 32 - i15; immediate16 = (((usqInt) val7) >> i15) | ((val7 << (32 - i15)) & 0xFFFFFFFFUL); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1 << 25) | ((XorOpcode << 21) | (1 << 20)))) | ((rn11 << 16) | (rd9 << 12))) | ((((((usqInt) rot13) >> 1) << 8) | immediate16) & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[0 / 4] = ((((AL << 28) | ((1L << 25) | ((XorOpcode << 21) | (1L << 20)))) | ((rn11 << 16) | (rd9 << 12))) | ((((((usqInt) rot13) >> 1) << 8) | immediate16) & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = 4); return; @@ -4589,7 +4589,7 @@ /* let's try to see if the constant can be made from a simple shift of 0xFFFFFFFF */ if (val7 > 0) { hb7 = highBit(val7); - if ((1 << hb7) == (val7 + 1)) { + if ((1L << hb7) == (val7 + 1)) { /* MVN temp, #0, making 0xffffffff */ /* begin machineCodeAt:put: */ @@ -4608,7 +4608,7 @@ rd24 = rn26; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord81 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4616,7 +4616,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord81; instrOffset29 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset29 / 4] = ((((AL << 28) | ((0 << 25) | ((XorOpcode << 21) | (1 << 20)))) | ((rn26 << 16) | (rd24 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset29 / 4] = ((((AL << 28) | ((0L << 25) | ((XorOpcode << 21) | (1L << 20)))) | ((rn26 << 16) | (rd24 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset29 + 4); return; @@ -4633,7 +4633,7 @@ rd10 = rn12; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord53 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4641,7 +4641,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord53; instrOffset13 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset13 / 4] = ((((AL << 28) | ((0 << 25) | ((AddOpcode << 21) | (1 << 20)))) | ((rn12 << 16) | (rd10 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset13 / 4] = ((((AL << 28) | ((0L << 25) | ((AddOpcode << 21) | (1L << 20)))) | ((rn12 << 16) | (rd10 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset13 + 4); return; @@ -4652,7 +4652,7 @@ rd11 = rn13; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord54 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4660,7 +4660,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord54; instrOffset14 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset14 / 4] = ((((AL << 28) | ((0 << 25) | ((AndOpcode << 21) | (1 << 20)))) | ((rn13 << 16) | (rd11 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset14 / 4] = ((((AL << 28) | ((0L << 25) | ((AndOpcode << 21) | (1L << 20)))) | ((rn13 << 16) | (rd11 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset14 + 4); return; @@ -4671,7 +4671,7 @@ rd12 = 0; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); /* begin machineCodeAt:put: */ aWord55 = ldrrnplusimm(self_in_dispatchConcretize, ConcreteIPReg, PC, (((((self_in_dispatchConcretize->dependent))->address)) >= (((self_in_dispatchConcretize->address)) + 8) ? 1 @@ -4679,7 +4679,7 @@ ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord55; instrOffset15 = ((self_in_dispatchConcretize->machineCodeSize) = 4); /* begin machineCodeAt:put: */ - ((self_in_dispatchConcretize->machineCode))[instrOffset15 / 4] = ((((AL << 28) | ((0 << 25) | ((CmpOpcode << 21) | (1 << 20)))) | ((rn14 << 16) | (rd12 << 12))) | (ConcreteIPReg & 0xFFF)); + ((self_in_dispatchConcretize->machineCode))[instrOffset15 / 4] = ((((AL << 28) | ((0L << 25) | ((CmpOpcode << 21) | (1L << 20)))) | ((rn14 << 16) | (rd12 << 12))) | (ConcreteIPReg & 0xFFF)); ((self_in_dispatchConcretize->machineCodeSize) = instrOffset15 + 4); return; @@ -4690,7 +4690,7 @@ rd13 = rn15; /* begin moveCw:intoR: */ assert(addressIsInCurrentCompilation((((self_in_dispatchConcretize->dependent))->address))); - assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1 << 12)); + assert((abs(((((self_in_dispatchConcretize->dependent))->address)) - (((self_in_dispatchConcretize->address)) + 8))) < (1L << 12)); @@ Diff output truncated at 50000 characters. @@ |
|
Hi Edgar, Hope you are doing well! I assume that you are just changing your email and not leaving. Notice you wrote unsuscribe and not unsubscribe. You might have better luck just changing your email address here: http://lists.squeakfoundation.org/mailman/listinfo/vm-dev All the best, Ron Teitelbaum > -----Original Message----- > From: [hidden email] [mailto:vm-dev- > [hidden email]] On Behalf Of Edgar J. De Cleene > Sent: Wednesday, February 24, 2016 5:30 AM > To: Squeak Virtual Machine Development Discussion > Subject: [Vm-dev] unsuscribe > > > > > > |
Free forum by Nabble | Edit this page |