[Vm-dev] VM Maker: VMMaker.oscog-eem.3206.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Jul 8 21:27:38 UTC 2022
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3206.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3206
Author: eem
Time: 8 July 2022, 2:27:26.170283 pm
UUID: 0a5185d7-f6b0-46a3-a4ba-cbbf410bfdfd
Ancestors: VMMaker.oscog-eem.3205
Add BitsAsWords for SmartSyntaxPlgins that want to coerce any bits object into unsigned int *'s.
Use symbols for types in the SmartSyntax type class hierarchy where the type strings atre typicalled used as symbols.
=============== Diff against VMMaker.oscog-eem.3205 ===============
Item was changed:
----- Method: Array class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#'sqInt *', aSymbolOrString!
- ^'sqInt *', aSymbolOrString!
Item was added:
+ Behavior subclass: #BitsAsWords
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'VMMaker-SmartSyntaxPlugins'!
+
+ !BitsAsWords commentStamp: 'eem 7/8/2022 13:56' prior: 0!
+ Coercion specification for bits objects like ByteString, Bitmap, ByteArray, WordArray, LargePositiveInteger et al to unsigned int *!
Item was added:
+ ----- Method: BitsAsWords class>>ccg:prolog:expr:index: (in category 'plugin generation') -----
+ ccg: cg prolog: aBlock expr: aString index: anInteger
+
+ ^cg
+ ccgLoad: aBlock
+ expr: aString
+ asUnsignedPtrFrom: anInteger
+ andThen: (cg ccgValBlock: 'isWordsOrBytes')!
Item was added:
+ ----- Method: BitsAsWords class>>ccgCanConvertFrom: (in category 'plugin generation') -----
+ ccgCanConvertFrom: anObject
+
+ ^anObject class isBits!
Item was added:
+ ----- Method: BitsAsWords class>>ccgDeclareCForVar: (in category 'plugin generation') -----
+ ccgDeclareCForVar: aSymbolOrString
+
+ ^#'unsigned int *', aSymbolOrString!
Item was changed:
----- Method: ByteArray class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#'char *', aSymbolOrString!
- ^'char *', aSymbolOrString!
Item was changed:
----- Method: DoubleByteArray class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
"Address of an unsigned 16 bit value, regardless of Smalltalk wordSize"
+ ^#'unsigned short *', aSymbolOrString!
- ^'unsigned short *', aSymbolOrString!
Item was changed:
----- Method: DoubleWordArray class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
"Address of an unsigned 64 bit value, regardless of Smalltalk wordSize"
+ ^#'unsigned long long *', aSymbolOrString!
- ^'unsigned long long *', aSymbolOrString!
Item was changed:
----- Method: Float class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#double, ' ', aSymbolOrString!
- ^'double ', aSymbolOrString!
Item was changed:
----- Method: Float32Array class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#'float *', aSymbolOrString!
- ^'float *', aSymbolOrString!
Item was changed:
----- Method: IntegerArray class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#'int *', aSymbolOrString!
- ^'int *', aSymbolOrString!
Item was changed:
----- Method: Object class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#sqInt, ' ', aSymbolOrString!
- ^'sqInt ', aSymbolOrString!
Item was changed:
----- Method: Oop class>>ccgDeclareCForVar: (in category 'plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#sqInt, ' ', aSymbolOrString!
- ^'sqInt ', aSymbolOrString!
Item was changed:
----- Method: SmartSyntaxPluginAssignmentCodeGenerator>>ccgLoad:expr:asOopPtrFrom:andThen: (in category 'coercing') -----
ccgLoad: aBlock expr: aString asOopPtrFrom: stackIndex andThen: valBlock
+ ^self assign: aString coerceTo: #'sqInt *' from: stackIndex!
- ^self assign: aString coerceTo: 'sqInt *' from: stackIndex!
Item was changed:
----- Method: SmartSyntaxPluginAssignmentCodeGenerator>>ccgLoad:expr:asUnsignedLong64PtrFrom:andThen: (in category 'coercing') -----
ccgLoad: aBlock expr: aString asUnsignedLong64PtrFrom: stackIndex andThen: valBlock
+ ^self assign: aString coerceTo: #'unsigned long long *' from: stackIndex!
- ^self assign: aString coerceTo: 'unsigned long long *' from: stackIndex!
Item was changed:
----- Method: SmartSyntaxPluginAssignmentCodeGenerator>>ccgLoad:expr:asUnsignedPtrFrom:andThen: (in category 'coercing') -----
ccgLoad: aBlock expr: aString asUnsignedPtrFrom: stackIndex andThen: valBlock
+ ^self assign: aString coerceTo: #'unsigned *' from: stackIndex!
- ^self assign: aString coerceTo: 'unsigned *' from: stackIndex!
Item was changed:
----- Method: SmartSyntaxPluginAssignmentCodeGenerator>>ccgLoad:expr:asUnsignedShortPtrFrom:andThen: (in category 'coercing') -----
ccgLoad: aBlock expr: aString asUnsignedShortPtrFrom: stackIndex andThen: valBlock
+ ^self assign: aString coerceTo: #'unsigned short *' from: stackIndex!
- ^self assign: aString coerceTo: 'unsigned short *' from: stackIndex!
Item was changed:
----- Method: String class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#'char *', aSymbolOrString!
- ^'char *', aSymbolOrString!
Item was changed:
----- Method: Unsigned class>>ccgDeclareCForVar: (in category 'plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^ #'usqIntptr_t', ' ', aSymbolOrString!
- ^'usqIntptr_t ', aSymbolOrString!
Item was changed:
----- Method: WordArray class>>ccgDeclareCForVar: (in category '*VMMaker-plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
"Address of an unsigned 32 bit value, regardless of Smalltalk wordSize"
+ ^#'unsigned *', aSymbolOrString!
- ^'unsigned *', aSymbolOrString!
Item was changed:
Behavior subclass: #WordsOrBytes
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'VMMaker-SmartSyntaxPlugins'!
+ !WordsOrBytes commentStamp: 'eem 7/8/2022 13:55' prior: 0!
+ Coercion specification for bits objects like ByteString, Bitmap, ByteArray, WordArray, LargePositiveInteger et al to char *!
- !WordsOrBytes commentStamp: '' prior: 0!
- Coercion specification for bits objects like ByteString, Bitmap, ByteArray, WordArray, LargePositiveInteger et al!
Item was changed:
----- Method: WordsOrBytes class>>ccgDeclareCForVar: (in category 'plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#'char *', aSymbolOrString!
- ^'char *', aSymbolOrString!
Item was changed:
----- Method: WordsOrShorts class>>ccgDeclareCForVar: (in category 'plugin generation') -----
ccgDeclareCForVar: aSymbolOrString
+ ^#'short *', aSymbolOrString!
- ^'short *', aSymbolOrString!
More information about the Vm-dev
mailing list