[Vm-dev] VM Maker: Cog-eem.301.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Dec 3 19:48:13 UTC 2015
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.301.mcz
==================== Summary ====================
Name: Cog-eem.301
Author: eem
Time: 3 December 2015, 11:48:03.601 am
UUID: bae53821-4d4c-4a3f-87d3-f7e8e5e5bd84
Ancestors: Cog-eem.300
More execution simulation machinery and fixes for the x64 plugin.
=============== Diff against Cog-eem.300 ===============
Item was changed:
----- Method: BochsX64Alien>>handleRetFailureAt:in:rex: (in category 'error handling') -----
handleRetFailureAt: pc "<Integer>" in: memoryArray "<Bitmap|ByteArray>" rex: rexByteOrNil "<Integer|nil>"
"Convert an execution primitive failure for a ret into a ProcessorSimulationTrap signal."
self shouldBeImplemented.
^(ProcessorSimulationTrap
pc: pc
nextpc: pc + 1
+ address: (memoryArray unsignedLong64At: self rsp + 1)
- address: (memoryArray unsignedLongAt: self esp + 1)
type: #return
+ accessor: #rip:)
- accessor: #eip:)
signal!
Item was added:
+ ----- Method: BochsX64Alien>>popWordIn: (in category 'accessing-abstract') -----
+ popWordIn: aMemory
+ | sp word |
+ word := aMemory unsignedLongAt: (sp := self rsp) + 1 bigEndian: false.
+ self rsp: sp + 8.
+ ^word!
Item was added:
+ ----- Method: BochsX64Alien>>retpcIn: (in category 'accessing-abstract') -----
+ retpcIn: aMemory
+ ^aMemory unsignedLongAt: self rbp + 9 bigEndian: false!
Item was added:
+ ----- Method: BochsX64Alien>>simulateReturnIn: (in category 'execution') -----
+ simulateReturnIn: aMemory
+ PostBuildStackDelta ~= 0 ifTrue:
+ [self rsp: self rsp + PostBuildStackDelta].
+ self rbp: (self popWordIn: aMemory).
+ self rip: (self popWordIn: aMemory)!
Item was added:
+ ----- Method: BochsX64Alien>>smashCallerSavedRegistersWithValuesFrom:by: (in category 'accessing-abstract') -----
+ smashCallerSavedRegistersWithValuesFrom: base by: step
+ #(rax: rcx: rdx: rsi: rdi: r8: r9: r10: r11:)
+ withIndexDo:
+ [:accessor :index|
+ self perform: accessor with: index - 1 * step + base]!
More information about the Vm-dev
mailing list