[Vm-dev] VM Maker: VMMaker.oscog-eem.2657.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jan 10 03:17:21 UTC 2020


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2657.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.2657
Author: eem
Time: 9 January 2020, 7:16:59.989172 pm
UUID: 213f7e09-fdf7-4fc5-8387-7fbe915e08bb
Ancestors: VMMaker.oscog-eem.2656

Cogit Minor changes to make the Slang thang clang.

=============== Diff against VMMaker.oscog-eem.2656 ===============

Item was changed:
  ----- Method: CogAbstractInstruction>>roundUpToMethodAlignment: (in category 'method zone and entry point alignment') -----
  roundUpToMethodAlignment: numBytes
  	"Determine the default alignment for the start of a CogMehtod, which in turn
  	 determines the size of the mask used to distinguish the checked and unchecked
  	 entry-points, used to distinguish normal and super sends on method unlinking.
  	 This is implemented here to allow processors with coarse instructions (ARM) to
  	 increase the alignment if required."
+ 	<cmacro: '(ignored,numBytes) ((numBytes) + 7 & -8)'>
- 	<cmacro: '(numBytes) ((numBytes) + 7 & -8)'>
  	^numBytes + 7 bitAnd: -8!

Item was changed:
  ----- Method: Cogit>>maybeBreakGeneratingFrom:to: (in category 'simulation only') -----
  maybeBreakGeneratingFrom: address to: end
  	"Variation on maybeBreakAt: that only works for integer breakPCs,
  	 so we can have break blocks that stop at any pc, except when generating."
+ 	<cmacro: '(address,end) 0'> "Simulation only; void in C"
- 	<cmacro: '(address) 0'> "Simulation only; void in C"
  	(breakPC isInteger
  	 and: [(breakPC between: address and: end)
  	 and: [breakBlock shouldStopIfAtPC: address]]) ifTrue:
  		[coInterpreter changed: #byteCountText.
  		 self halt: 'machine code generation at ', address hex, ' in ', thisContext sender selector]!

Item was changed:
  ----- Method: ObjectMemory>>isNonImmediate: (in category 'interpreter access') -----
  isNonImmediate: anOop
+ 	<api>
  	^self isNonIntegerObject: anOop!

Item was changed:
  ----- Method: SimpleStackBasedCogit>>genExtSendSuperBytecode (in category 'bytecode generators') -----
  genExtSendSuperBytecode
  	"239		11101111	i i i i i j j j	Send To Superclass Literal Selector #iiiii (+ Extend A * 32) with jjj (+ Extend B * 8) Arguments"
  	| isDirected litIndex nArgs |
  	(isDirected := extB >= 64) ifTrue:
  		[extB := extB bitAnd: 63].
  	litIndex := (byte1 >> 3) + (extA << 5).
  	extA := 0.
  	nArgs := (byte1 bitAnd: 7) + (extB << 3).
  	extB := 0.
  	numExtB := 0.
+ 	BytecodeSetHasDirectedSuperSend
+ 		ifTrue:
+ 			[^isDirected
+ 				ifTrue: [self genSendDirectedSuper: litIndex numArgs: nArgs]
+ 				ifFalse: [self genSendSuper: litIndex numArgs: nArgs]]
+ 		ifFalse:
+ 			[self deny: isDirected.
+ 			 ^self genSendSuper: litIndex numArgs: nArgs]!
- 	^isDirected
- 		ifTrue: [self genSendDirectedSuper: litIndex numArgs: nArgs]
- 		ifFalse: [self genSendSuper: litIndex numArgs: nArgs]!



More information about the Vm-dev mailing list