[Vm-dev] VM Maker: VMMaker.oscog-eem.1829.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Apr 21 19:01:52 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1829.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1829
Author: eem
Time: 21 April 2016, 12:00:00.793947 pm
UUID: 7f3fe80a-c466-4d76-801f-0941dc2e0747
Ancestors: VMMaker.oscog-cb.1828
Cogit: Fix PushCq in X64 for fully 64-bit quick constants (typically immediate floats).
=============== Diff against VMMaker.oscog-cb.1828 ===============
Item was changed:
----- Method: CogX64Compiler>>computeMaximumSize (in category 'generate machine code') -----
(excessive size, no diff calculated)
Item was added:
+ ----- Method: CogX64Compiler>>computeSizeOfPushCw (in category 'generate machine code') -----
+ computeSizeOfPushCw
+ ^(self inCurrentCompilation: (operands at: 0))
+ ifTrue: [9]
+ ifFalse: [self pushCwByteSize]!
Item was changed:
----- Method: CogX64Compiler>>concretizePushCq (in category 'generate machine code') -----
concretizePushCq
<inline: true>
| value |
value := operands at: 0.
(self isQuick: value) ifTrue:
[machineCode
at: 0 put: 16r6A;
at: 1 put: (value bitAnd: 16rFF).
^machineCodeSize := 2].
+ (self isSignExtendedFourByteValue: value) ifTrue:
+ [machineCode
+ at: 0 put: 16r68;
+ at: 1 put: (value bitAnd: 16rFF);
+ at: 2 put: (value >> 8 bitAnd: 16rFF);
+ at: 3 put: (value >> 16 bitAnd: 16rFF);
+ at: 4 put: (value >> 24 bitAnd: 16rFF).
+ ^machineCodeSize := 5].
+ ^self concretizePushCw!
- self assert: (self isSignExtendedFourByteValue: value).
- machineCode
- at: 0 put: 16r68;
- at: 1 put: (value bitAnd: 16rFF);
- at: 2 put: (value >> 8 bitAnd: 16rFF);
- at: 3 put: (value >> 16 bitAnd: 16rFF);
- at: 4 put: (value >> 24 bitAnd: 16rFF).
- ^machineCodeSize := 5!
More information about the Vm-dev
mailing list