[Vm-dev] VM Maker: VMMaker.oscog-eem.3301.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Jan 14 02:41:22 UTC 2023
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3301.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3301
Author: eem
Time: 13 January 2023, 6:41:01.001136 pm
UUID: c43e2ae6-7086-4eba-b250-9362025ee10c
Ancestors: VMMaker.oscog-eem.3300
speeling rorres
=============== Diff against VMMaker.oscog-eem.3300 ===============
Item was changed:
----- Method: CogObjectRepresentationFor32BitSpur>>genFetchRegArgsForPerformWithArguments: (in category 'primitive generators') -----
genFetchRegArgsForPerformWithArguments: sizeReg
+ "The arguments are in an array in Arg1Reg. Its size is in sizeReg.
- "The arguments are imn an array in Arg1Reg. Its size is in sizeReg.
Load Arg0Reg and Arg1Reg with the first two slots.
Since objects always have at least one slot and are aligned to 64-bits
it is safe to load both args without checking."
cogit
MoveMw: objectMemory baseHeaderSize r: Arg1Reg R: Arg0Reg;
MoveMw: objectMemory baseHeaderSize + self wordSize r: Arg1Reg R: Arg1Reg.
^0!
Item was changed:
----- Method: CogObjectRepresentationFor64BitSpur>>genFetchRegArgsForPerformWithArguments: (in category 'primitive generators') -----
genFetchRegArgsForPerformWithArguments: sizeReg
+ "The arguments are in an array in Arg1Reg. Its size is in sizeReg.
- "The arguments are imn an array in Arg1Reg. Its size is in sizeReg.
Load Arg0Reg and Arg1Reg with the first two slots, as appropriate.
Since objects always have at least one slot it is safe to load arg0 without checking.
+ But the array could be at the end of memory so we must check that it has two
- But the array could be at teh end of memory so we must check taht it has two
slots before it is safe to access the second slot."
| skip |
cogit MoveMw: objectMemory baseHeaderSize r: Arg1Reg R: Arg0Reg.
cogit CmpCq: 2 R: sizeReg.
skip := cogit JumpLess: 0.
cogit MoveMw: objectMemory baseHeaderSize + self wordSize r: Arg1Reg R: Arg1Reg.
skip jmpTarget: cogit Label.
^0!
Item was changed:
----- Method: CogObjectRepresentationForSpur>>genFetchRegArgsForPerformWithArguments: (in category 'primitive generators') -----
genFetchRegArgsForPerformWithArguments: sizeReg
+ "The arguments are in an array in Arg1Reg. Its size is in sizeReg.
- "The arguments are imn an array in Arg1Reg. Its size is in sizeReg.
Load Arg0Reg and Arg1Reg with the first two slots."
^self subclassResponsibility!
More information about the Vm-dev
mailing list