[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