[Vm-dev] [commit][2720] CogVM source as per VMMaker.oscog-eem.285.
commits at squeakvm.org
commits at squeakvm.org
Fri Apr 12 22:16:15 UTC 2013
Revision: 2720
Author: eliot
Date: 2013-04-12 15:16:14 -0700 (Fri, 12 Apr 2013)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.285.
Eliminate some excessive use of push/popRemappableOop[:] in the SocketPlugin.
Modified Paths:
--------------
branches/Cog/nscogsrc/plugins/SocketPlugin/SocketPlugin.c
branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/nscogsrc/plugins/SocketPlugin/SocketPlugin.c
===================================================================
--- branches/Cog/nscogsrc/plugins/SocketPlugin/SocketPlugin.c 2013-04-12 19:00:52 UTC (rev 2719)
+++ branches/Cog/nscogsrc/plugins/SocketPlugin/SocketPlugin.c 2013-04-12 22:16:14 UTC (rev 2720)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.235 uuid: 954df856-3f83-498c-9735-6cd3777ba9c7
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.285 uuid: cb7737d2-7959-4494-ba87-9be6e6f1226b
from
- SocketPlugin VMMaker.oscog-eem.235 uuid: 954df856-3f83-498c-9735-6cd3777ba9c7
+ SocketPlugin VMMaker.oscog-eem.285 uuid: cb7737d2-7959-4494-ba87-9be6e6f1226b
*/
-static char __buildInfo[] = "SocketPlugin VMMaker.oscog-eem.235 uuid: 954df856-3f83-498c-9735-6cd3777ba9c7 " __DATE__ ;
+static char __buildInfo[] = "SocketPlugin VMMaker.oscog-eem.285 uuid: cb7737d2-7959-4494-ba87-9be6e6f1226b " __DATE__ ;
@@ -181,9 +181,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "SocketPlugin VMMaker.oscog-eem.235 (i)"
+ "SocketPlugin VMMaker.oscog-eem.285 (i)"
#else
- "SocketPlugin VMMaker.oscog-eem.235 (e)"
+ "SocketPlugin VMMaker.oscog-eem.285 (e)"
#endif
;
static void * sCCLOPfn;
@@ -1388,13 +1388,10 @@
return null;
}
returnedValue = 0;
- errorCode = sqSocketGetOptionsoptionNameStartoptionNameSizereturnedValue(s, optionNameStart, optionNameSize, &returnedValue);
- pushRemappableOop(integerObjectOf(returnedValue));
- pushRemappableOop(integerObjectOf(errorCode));
- pushRemappableOop(instantiateClassindexableSize(classArray(), 2));
- results = popRemappableOop();
- storePointerofObjectwithValue(0, results, popRemappableOop());
- storePointerofObjectwithValue(1, results, popRemappableOop());
+ errorCode = sqSocketGetOptionsoptionNameStartoptionNameSizereturnedValue(s, optionNameStart, optionNameSize, (&returnedValue));
+ results = instantiateClassindexableSize(classArray(), 2);
+ storePointerofObjectwithValue(0, results, integerObjectOf(errorCode));
+ storePointerofObjectwithValue(1, results, integerObjectOf(returnedValue));
if (failed()) {
return null;
}
@@ -1787,9 +1784,9 @@
sqInt array;
char *arrayBase;
char *bufStart;
- sqInt byteSize;
sqInt bytesReceived;
sqInt count;
+ sqInt elementSize;
sqInt moreFlag;
sqInt port;
sqInt results;
@@ -1812,10 +1809,10 @@
: ((SocketPtr) (firstIndexableField(socket))));
success(isWordsOrBytes(array));
if (isWords(array)) {
- byteSize = 4;
+ elementSize = 4;
}
else {
- byteSize = 1;
+ elementSize = 1;
}
success((startIndex >= 1)
&& ((count >= 0)
@@ -1825,29 +1822,23 @@
/* Note: adjust bufStart for zero-origin indexing */
arrayBase = ((char *) (firstIndexableField(array)));
+ bufStart = arrayBase + ((startIndex - 1) * elementSize);
+ address = 0;
+ port = 0;
+ moreFlag = 0;
/* allocate storage for results, remapping newly allocated
oops in case GC happens during allocation */
- bufStart = arrayBase + ((startIndex - 1) * byteSize);
- address = 0;
- port = 0;
- moreFlag = 0;
- bytesReceived = sqSocketReceiveUDPDataBufCountaddressportmoreFlag(s, bufStart, count * byteSize, &address, &port, &moreFlag);
- pushRemappableOop(integerObjectOf(port));
+ bytesReceived = sqSocketReceiveUDPDataBufCountaddressportmoreFlag(s, bufStart, count * elementSize, (&address), (&port), (&moreFlag));
pushRemappableOop(intToNetAddress(address));
- pushRemappableOop(integerObjectOf((bytesReceived / byteSize)));
- pushRemappableOop(instantiateClassindexableSize(classArray(), 4));
- results = popRemappableOop();
- storePointerofObjectwithValue(0, results, popRemappableOop());
+ results = instantiateClassindexableSize(classArray(), 4);
+ storePointerofObjectwithValue(0, results, integerObjectOf((bytesReceived / elementSize)));
storePointerofObjectwithValue(1, results, popRemappableOop());
- storePointerofObjectwithValue(2, results, popRemappableOop());
- if (moreFlag) {
- storePointerofObjectwithValue(3, results, trueObject());
- }
- else {
- storePointerofObjectwithValue(3, results, falseObject());
- }
+ storePointerofObjectwithValue(2, results, integerObjectOf(port));
+ storePointerofObjectwithValue(3, results, (moreFlag
+ ? trueObject()
+ : falseObject()));
}
if (failed()) {
return null;
@@ -2123,6 +2114,15 @@
return null;
}
+
+/* THIS BADLY NEEDS TO BE REWRITTEN TO TAKE Booleans AND Integers AS WELL AS
+ (OR INSTEAD OF) Strings.
+ It is only used with booleans and integers and parsing these back out of
+ strings in
+
+ sqSocketSetOptions:optionNameStart:optionNameSize:optionValueStart:optionValueSize:returnedValue:
+ is STUPID. */
+
EXPORT(sqInt)
primitiveSocketSetOptions(void)
{
@@ -2160,13 +2160,10 @@
return null;
}
returnedValue = 0;
- errorCode = sqSocketSetOptionsoptionNameStartoptionNameSizeoptionValueStartoptionValueSizereturnedValue(s, optionNameStart, optionNameSize, optionValueStart, optionValueSize, &returnedValue);
- pushRemappableOop(integerObjectOf(returnedValue));
- pushRemappableOop(integerObjectOf(errorCode));
- pushRemappableOop(instantiateClassindexableSize(classArray(), 2));
- results = popRemappableOop();
- storePointerofObjectwithValue(0, results, popRemappableOop());
- storePointerofObjectwithValue(1, results, popRemappableOop());
+ errorCode = sqSocketSetOptionsoptionNameStartoptionNameSizeoptionValueStartoptionValueSizereturnedValue(s, optionNameStart, optionNameSize, optionValueStart, optionValueSize, (&returnedValue));
+ results = instantiateClassindexableSize(classArray(), 2);
+ storePointerofObjectwithValue(0, results, integerObjectOf(errorCode));
+ storePointerofObjectwithValue(1, results, integerObjectOf(returnedValue));
if (failed()) {
return null;
}
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Apr 12 11:56:58 PDT 2013
+ Fri Apr 12 15:15:32 PDT 2013
Modified: branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c
===================================================================
--- branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c 2013-04-12 19:00:52 UTC (rev 2719)
+++ branches/Cog/src/plugins/SocketPlugin/SocketPlugin.c 2013-04-12 22:16:14 UTC (rev 2720)
@@ -1,9 +1,9 @@
/* Automatically generated by
- SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.235 uuid: 954df856-3f83-498c-9735-6cd3777ba9c7
+ SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.285 uuid: cb7737d2-7959-4494-ba87-9be6e6f1226b
from
- SocketPlugin VMMaker.oscog-eem.235 uuid: 954df856-3f83-498c-9735-6cd3777ba9c7
+ SocketPlugin VMMaker.oscog-eem.285 uuid: cb7737d2-7959-4494-ba87-9be6e6f1226b
*/
-static char __buildInfo[] = "SocketPlugin VMMaker.oscog-eem.235 uuid: 954df856-3f83-498c-9735-6cd3777ba9c7 " __DATE__ ;
+static char __buildInfo[] = "SocketPlugin VMMaker.oscog-eem.285 uuid: cb7737d2-7959-4494-ba87-9be6e6f1226b " __DATE__ ;
@@ -181,9 +181,9 @@
struct VirtualMachine* interpreterProxy;
static const char *moduleName =
#ifdef SQUEAK_BUILTIN_PLUGIN
- "SocketPlugin VMMaker.oscog-eem.235 (i)"
+ "SocketPlugin VMMaker.oscog-eem.285 (i)"
#else
- "SocketPlugin VMMaker.oscog-eem.235 (e)"
+ "SocketPlugin VMMaker.oscog-eem.285 (e)"
#endif
;
static void * sCCLOPfn;
@@ -1388,13 +1388,10 @@
return null;
}
returnedValue = 0;
- errorCode = sqSocketGetOptionsoptionNameStartoptionNameSizereturnedValue(s, optionNameStart, optionNameSize, &returnedValue);
- pushRemappableOop(integerObjectOf(returnedValue));
- pushRemappableOop(integerObjectOf(errorCode));
- pushRemappableOop(instantiateClassindexableSize(classArray(), 2));
- results = popRemappableOop();
- storePointerofObjectwithValue(0, results, popRemappableOop());
- storePointerofObjectwithValue(1, results, popRemappableOop());
+ errorCode = sqSocketGetOptionsoptionNameStartoptionNameSizereturnedValue(s, optionNameStart, optionNameSize, (&returnedValue));
+ results = instantiateClassindexableSize(classArray(), 2);
+ storePointerofObjectwithValue(0, results, integerObjectOf(errorCode));
+ storePointerofObjectwithValue(1, results, integerObjectOf(returnedValue));
if (failed()) {
return null;
}
@@ -1787,9 +1784,9 @@
sqInt array;
char *arrayBase;
char *bufStart;
- sqInt byteSize;
sqInt bytesReceived;
sqInt count;
+ sqInt elementSize;
sqInt moreFlag;
sqInt port;
sqInt results;
@@ -1812,10 +1809,10 @@
: ((SocketPtr) (firstIndexableField(socket))));
success(isWordsOrBytes(array));
if (isWords(array)) {
- byteSize = 4;
+ elementSize = 4;
}
else {
- byteSize = 1;
+ elementSize = 1;
}
success((startIndex >= 1)
&& ((count >= 0)
@@ -1825,29 +1822,23 @@
/* Note: adjust bufStart for zero-origin indexing */
arrayBase = ((char *) (firstIndexableField(array)));
+ bufStart = arrayBase + ((startIndex - 1) * elementSize);
+ address = 0;
+ port = 0;
+ moreFlag = 0;
/* allocate storage for results, remapping newly allocated
oops in case GC happens during allocation */
- bufStart = arrayBase + ((startIndex - 1) * byteSize);
- address = 0;
- port = 0;
- moreFlag = 0;
- bytesReceived = sqSocketReceiveUDPDataBufCountaddressportmoreFlag(s, bufStart, count * byteSize, &address, &port, &moreFlag);
- pushRemappableOop(integerObjectOf(port));
+ bytesReceived = sqSocketReceiveUDPDataBufCountaddressportmoreFlag(s, bufStart, count * elementSize, (&address), (&port), (&moreFlag));
pushRemappableOop(intToNetAddress(address));
- pushRemappableOop(integerObjectOf((bytesReceived / byteSize)));
- pushRemappableOop(instantiateClassindexableSize(classArray(), 4));
- results = popRemappableOop();
- storePointerofObjectwithValue(0, results, popRemappableOop());
+ results = instantiateClassindexableSize(classArray(), 4);
+ storePointerofObjectwithValue(0, results, integerObjectOf((bytesReceived / elementSize)));
storePointerofObjectwithValue(1, results, popRemappableOop());
- storePointerofObjectwithValue(2, results, popRemappableOop());
- if (moreFlag) {
- storePointerofObjectwithValue(3, results, trueObject());
- }
- else {
- storePointerofObjectwithValue(3, results, falseObject());
- }
+ storePointerofObjectwithValue(2, results, integerObjectOf(port));
+ storePointerofObjectwithValue(3, results, (moreFlag
+ ? trueObject()
+ : falseObject()));
}
if (failed()) {
return null;
@@ -2123,6 +2114,15 @@
return null;
}
+
+/* THIS BADLY NEEDS TO BE REWRITTEN TO TAKE Booleans AND Integers AS WELL AS
+ (OR INSTEAD OF) Strings.
+ It is only used with booleans and integers and parsing these back out of
+ strings in
+
+ sqSocketSetOptions:optionNameStart:optionNameSize:optionValueStart:optionValueSize:returnedValue:
+ is STUPID. */
+
EXPORT(sqInt)
primitiveSocketSetOptions(void)
{
@@ -2160,13 +2160,10 @@
return null;
}
returnedValue = 0;
- errorCode = sqSocketSetOptionsoptionNameStartoptionNameSizeoptionValueStartoptionValueSizereturnedValue(s, optionNameStart, optionNameSize, optionValueStart, optionValueSize, &returnedValue);
- pushRemappableOop(integerObjectOf(returnedValue));
- pushRemappableOop(integerObjectOf(errorCode));
- pushRemappableOop(instantiateClassindexableSize(classArray(), 2));
- results = popRemappableOop();
- storePointerofObjectwithValue(0, results, popRemappableOop());
- storePointerofObjectwithValue(1, results, popRemappableOop());
+ errorCode = sqSocketSetOptionsoptionNameStartoptionNameSizeoptionValueStartoptionValueSizereturnedValue(s, optionNameStart, optionNameSize, optionValueStart, optionValueSize, (&returnedValue));
+ results = instantiateClassindexableSize(classArray(), 2);
+ storePointerofObjectwithValue(0, results, integerObjectOf(errorCode));
+ storePointerofObjectwithValue(1, results, integerObjectOf(returnedValue));
if (failed()) {
return null;
}
More information about the Vm-dev
mailing list