VM Maker: Cog-eem.342.mcz

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

VM Maker: Cog-eem.342.mcz

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

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

Name: Cog-eem.342
Author: eem
Time: 28 May 2017, 10:45:46.436283 pm
UUID: c50cecd8-9ed1-4c1c-962d-96c3f8af7b0d
Ancestors: Cog-eem.341

Smashing the shadow parameter space must take PostBuildStackDelta into account.

=============== Diff against Cog-eem.341 ===============

Item was changed:
  ----- Method: BochsX64Alien>>smashCallerSavedRegistersWithValuesFrom:by:in: (in category 'accessing-abstract') -----
  smashCallerSavedRegistersWithValuesFrom: base by: step in: aMemory
  | volatileRegisters |
  CogX64Compiler isSysV
  ifTrue:
  [volatileRegisters := #(rax: rcx: rdx: rsi: rdi: r8: r9: r10: r11:)]
  ifFalse: "We should also save the registers to the shadow parameter space."
  [volatileRegisters := #(rax: rcx: rdx: r8: r9: r10: r11:).
  #(rcx rdx r8 r9) withIndexDo:
  [:getter :index|
  aMemory
+ unsignedLong64At: self rbp + PostBuildStackDelta + 8 + (index * 8) "skip saved fp and retpc"
- unsignedLong64At: self rbp + 8 + (index * 8) "skip saved fp and retpc"
  put: (self perform: getter)]].
  volatileRegisters withIndexDo:
  [:setter :index|
  self perform: setter with: index - 1 * step + base]!