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

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

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

Name: VMMaker.oscog-eem.2671
Author: eem
Time: 22 January 2020, 11:10:41.31262 pm
UUID: 4d0f215a-ffe0-4741-b21d-e12ff3aeb658
Ancestors: VMMaker.oscog-eem.2670

Simulator:
Fix a slip in simulateCeFlushICacheFrom:to:.
Check for breakpoints in simulateLeafCallOf:

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

Item was changed:
  ----- Method: Cogit>>simulateCeFlushICacheFrom:to: (in category 'simulation only') -----
  simulateCeFlushICacheFrom: start to: finish
  <doNotGenerate>
+ processor abiMarshallArg0: start arg1: finish.
- processor abiMarshallArg0: start arg1: start.
  self simulateLeafCallOf: ceFlushICache!

Item was changed:
  ----- Method: Cogit>>simulateLeafCallOf: (in category 'simulation only') -----
  simulateLeafCallOf: someFunction
  "Simulate execution of machine code that leaf-calls someFunction,
  answering the result returned by someFunction."
  <doNotGenerate>
  | spOnEntry |
  self recordRegisters.
  processor
  simulateLeafCallOf: someFunction
  nextpc: 16rBADF00D5
  memory: coInterpreter memory.
  spOnEntry := processor sp.
  self recordInstruction: {'(simulated call of '. someFunction. ')'}.
  [[processor pc between: 0 and: methodZone zoneEnd] whileTrue:
  [singleStep
  ifTrue: [self recordProcessing.
+ self maybeBreakAt: processor pc.
  processor
  singleStepIn: coInterpreter memory
  minimumAddress: guardPageSize
  readOnlyBelow: methodZone zoneEnd]
  ifFalse: [processor
  runInMemory: coInterpreter memory
  minimumAddress: guardPageSize
  readOnlyBelow: methodZone zoneEnd]]]
  on: ProcessorSimulationTrap
  do: [:ex| | retpc |
  "If the ip is out of bounds the return has already occurred."
  ((processor pc between: 0 and: methodZone zoneEnd)
  and: [processor sp <= spOnEntry]) ifTrue:
  [retpc := processor leafRetpcIn: coInterpreter memory.
  self assert: retpc = 16rBADF00D5.
  self recordInstruction: {'(simulated return to '. retpc. ')'.
  processor simulateLeafReturnIn: coInterpreter memory}.
  self recordRegisters]].
  ^processor cResultRegister!