VM Maker: VMMaker.oscog-eem.2731.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.2731.mcz

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

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

Name: VMMaker.oscog-eem.2731
Author: eem
Time: 21 March 2020, 7:31:28.606014 pm
UUID: 3c8dda9e-4706-4c3d-8c58-a284c47f5705
Ancestors: VMMaker.oscog-eem.2730

Fix a slip in the previous commit that only shows up during simulaiton.

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

Item was changed:
  ----- Method: CoInterpreter>>compilationBreakpoint:classTag:isMNUCase: (in category 'debug support') -----
  compilationBreakpoint: selectorOop classTag: classTag isMNUCase: isMNUCase
  <api>
  <cmacro: '(sel, classTag, isMNU) do { \
  if (numBytesOf(sel) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
  && !!strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
  suppressHeartbeatFlag = 1; \
  compilationBreakpointFor(sel); \
  } \
  } while (0)'>
  | bsl i |
  isMNUCase
  ifTrue:
  [(breakSelectorLength = 18 "doesNotUnderstand: size"
   and: [(self strncmp: 'doesNotUnderstand:' _: breakSelector _: 18) == 0]) ifTrue:
  [(breakLookupClassTag < 0 or: [breakLookupClassTag = classTag]) ifTrue:
  [^self compilationBreakpointFor: selectorOop]].
  bsl := breakSelectorLength negated]
  ifFalse: [bsl := breakSelectorLength].
+ bsl = (objectMemory numBytesOf: selectorOop) ifTrue:
- bsl = (self numBytesOf: selectorOop) ifTrue:
  [i := bsl.
  [i > 0] whileTrue:
  [(objectMemory byteAt: selectorOop + i + objectMemory baseHeaderSize - 1) = (breakSelector at: i) asInteger
  ifTrue:
  [((i := i - 1) = 0
    and: [breakLookupClassTag < 0 or: [breakLookupClassTag = classTag]]) ifTrue:
  [self compilationBreakpointFor: selectorOop]]
  ifFalse: [i := 0]]]!

Item was changed:
  ----- Method: CoInterpreter>>compilationBreakpoint:isMNUCase: (in category 'debug support') -----
  compilationBreakpoint: selectorOop isMNUCase: isMNUCase
  <api>
  <cmacro: '(sel, isMNU) do { \
  if (numBytesOf(sel) == (isMNU ? -breakSelectorLength : breakSelectorLength) \
  && !!strncmp((char *)((sel) + BaseHeaderSize), breakSelector, (isMNU ? -breakSelectorLength : breakSelectorLength))) { \
  suppressHeartbeatFlag = 1; \
  compilationBreakpointFor(sel); \
  } \
  } while (0)'>
  | bsl i |
  bsl := isMNUCase ifTrue: [breakSelectorLength negated] ifFalse: [breakSelectorLength].
+ bsl = (objectMemory numBytesOf: selectorOop) ifTrue:
- bsl = (self numBytesOf: selectorOop) ifTrue:
  [i := bsl.
  [i > 0] whileTrue:
  [(objectMemory byteAt: selectorOop + i + objectMemory baseHeaderSize - 1) = (breakSelector at: i) asInteger
  ifTrue: [(i := i - 1) = 0 ifTrue:
  [self compilationBreakpointFor: selectorOop]]
  ifFalse: [i := 0]]]!