VM Maker: VMMaker.oscog-eem.2657.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2657.mcz

commits-2
 
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]!