[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