[Vm-dev] VM Maker: BytecodeSets.spur-cb.63.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Tue Jan 17 13:13:09 UTC 2017
2017-01-17 14:03 GMT+01:00 <commits at source.squeak.org>:
>
> ClementBera uploaded a new version of BytecodeSets to project VM Maker:
> http://source.squeak.org/VMMaker/BytecodeSets.spur-cb.63.mcz
>
> ==================== Summary ====================
>
> Name: BytecodeSets.spur-cb.63
> Author: cb
> Time: 17 January 2017, 2:03:45.537598 pm
> UUID: a8ae9a8c-7784-474a-a431-fa97ce58cb14
> Ancestors: BytecodeSets.spur-cb.62
>
> Updated SistaV1 encoder for MethodMassage support.
>
> =============== Diff against BytecodeSets.spur-cb.62 ===============
>
> Item was added:
> + ----- Method: EncoderForSistaV1>>genBranchIfInstanceOf:distance: (in
> category 'extended bytecode generation') -----
> + genBranchIfInstanceOf: literalIndex distance: distance
> + self genBranchIfInstanceOf: literalIndex distance: distance orNot:
> false!
>
> Item was added:
> + ----- Method: EncoderForSistaV1>>genBranchIfInstanceOf:distance:orNot:
> (in category 'extended bytecode generation') -----
> + genBranchIfInstanceOf: literalIndex distance: distance orNot: orNot
> + "254 11111110 kkkkkkkk jjjjjjjj
> branch If Not Instance Of Behavior/Array Of Behavior kkkkkkkk (+
> Extend A * 256, where Extend A >= 0) distance jjjjjjjj (+ Extend B * 256,
> where Extend B >= 0)"
>
maybe the comment could be updated then... if ... or not ...
> +
> + | extendedIndex extendedDistance |
> + (literalIndex < 0 or: [literalIndex > 65535]) ifTrue:
> + [^self outOfRangeError: 'index' index: literalIndex range:
> 0 to: 65536].
> + (distance < 1 or: [distance > 32767]) ifTrue:
> + [^self outOfRangeError: 'distance' index: distance range:
> 0 to: 32767].
> + (extendedIndex := literalIndex) > 255 ifTrue:
> + [self genUnsignedSingleExtendA: extendedIndex // 256.
> + extendedIndex := extendedIndex \\ 256].
> + (orNot not or: [(extendedDistance := distance) > 255]) ifTrue:
> + [self genUnsignedSingleExtendB: (distance bitShift: -8) +
> (orNot not asBit * 128).
> + extendedDistance := distance bitAnd: 255].
> +
> + stream
> + nextPut: 254;
> + nextPut: extendedIndex;
> + nextPut: extendedDistance!
>
> Item was changed:
> ----- Method: EncoderForSistaV1>>genBranchIfNotInstanceOf:distance: (in
> category 'extended bytecode generation') -----
> genBranchIfNotInstanceOf: literalIndex distance: distance
> + self genBranchIfInstanceOf: literalIndex distance: distance orNot:
> true!
> - "254 11111110 kkkkkkkk jjjjjjjj
> branch If Not Instance Of Behavior/Array Of Behavior kkkkkkkk (+
> Extend A * 256, where Extend A >= 0) distance jjjjjjjj (+ Extend B * 256,
> where Extend B >= 0)"
> -
> - | extendedIndex extendedDistance |
> - (literalIndex < 0 or: [literalIndex > 65535]) ifTrue:
> - [^self outOfRangeError: 'index' index: literalIndex range:
> 0 to: 65536].
> - (distance < 1 or: [distance > 32767]) ifTrue:
> - [^self outOfRangeError: 'distance' index: distance range:
> 0 to: 32767].
> - (extendedIndex := literalIndex) > 255 ifTrue:
> - [self genUnsignedSingleExtendA: extendedIndex // 256.
> - extendedIndex := extendedIndex \\ 256].
> - (extendedDistance := distance) > 255 ifTrue:
> - [self genUnsignedSingleExtendB: (distance bitShift: -8).
> - extendedDistance := distance bitAnd: 255].
> -
> - stream
> - nextPut: 254;
> - nextPut: extendedIndex;
> - nextPut: extendedDistance!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170117/33eaeab1/attachment.html>
More information about the Vm-dev
mailing list