The Trunk: Compiler-eem.323.mcz

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

The Trunk: Compiler-eem.323.mcz

commits-2
Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.323.mcz

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

Name: Compiler-eem.323
Author: eem
Time: 7 July 2016, 11:27:28.886558 am
UUID: 52466c66-954e-47f9-8c43-2ce094580ab4
Ancestors: Compiler-eem.322

Comment bytecode 139 as the callPrimitive bytecode (Spur mandates this to lift the number of literals).

=============== Diff against Compiler-eem.322 ===============

Item was changed:
  EncoderForV3 subclass: #EncoderForV3PlusClosures
  instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'Compiler-Kernel'!
 
+ !EncoderForV3PlusClosures commentStamp: 'eem 2/29/2016 00:07' prior: 0!
- !EncoderForV3PlusClosures commentStamp: '<historical>' prior: 0!
  An encoder for the V3 bytecode set augmented with the following bytecodes that are part of the full closure implementation.
  138   10001010 jkkkkkkk Push (Array new: kkkkkkk) (j = 0)
  or Pop kkkkkkk elements into: (Array new: kkkkkkk) (j = 1)
+ 139   10001011 kkkkkkkk jjjjjjjj Invoke primitive number jjjjjjjjkkkkkkkk
-
  140   10001100 kkkkkkkk jjjjjjjj Push Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
  141   10001101 kkkkkkkk jjjjjjjj Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
  142   10001110 kkkkkkkk jjjjjjjj Pop and Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
  143   10001111 llllkkkk jjjjjjjj iiiiiiii Push Closure Num Copied llll Num Args kkkk BlockSize jjjjjjjjiiiiiiii
  This is an exact duplicate of EncoderForLongFormV3PlusClosures.
  Could be a trait (or in Newspeak, a Mixin).
  For now we impose upon you to synchronise any and all changes between these two classes.!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Compiler-eem.323.mcz

Bert Freudenberg
+       139   10001011 kkkkkkkk jjjjjjjj        Invoke primitive number jjjjjjjjkkkkkkkk
-
        140   10001100 kkkkkkkk jjjjjjjj        Push Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        141   10001101 kkkkkkkk jjjjjjjj        Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        142   10001110 kkkkkkkk jjjjjjjj        Pop and Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        143   10001111 llllkkkk jjjjjjjj iiiiiiii       Push Closure Num Copied llll Num Args kkkk BlockSize jjjjjjjjiiiiiiii

Why is the primitive index in bytecode 139 stored little-endian? The other bytecodes with immediate args > 8 bits are in big endian (e.g. push closure copy)

- Bert - 



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Compiler-eem.323.mcz

Eliot Miranda-2


On Fri, Jul 8, 2016 at 2:00 AM, Bert Freudenberg <[hidden email]> wrote:
+       139   10001011 kkkkkkkk jjjjjjjj        Invoke primitive number jjjjjjjjkkkkkkkk
-
        140   10001100 kkkkkkkk jjjjjjjj        Push Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        141   10001101 kkkkkkkk jjjjjjjj        Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        142   10001110 kkkkkkkk jjjjjjjj        Pop and Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        143   10001111 llllkkkk jjjjjjjj iiiiiiii       Push Closure Num Copied llll Num Args kkkk BlockSize jjjjjjjjiiiiiiii

Why is the primitive index in bytecode 139 stored little-endian? The other bytecodes with immediate args > 8 bits are in big endian (e.g. push closure copy)

No reason beyond my habit and preference. 

_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Compiler-eem.323.mcz

Bert Freudenberg
On Sat, Jul 9, 2016 at 12:29 AM, Eliot Miranda <[hidden email]> wrote:

On Fri, Jul 8, 2016 at 2:00 AM, Bert Freudenberg <[hidden email]> wrote:
+       139   10001011 kkkkkkkk jjjjjjjj        Invoke primitive number jjjjjjjjkkkkkkkk
-
        140   10001100 kkkkkkkk jjjjjjjj        Push Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        141   10001101 kkkkkkkk jjjjjjjj        Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        142   10001110 kkkkkkkk jjjjjjjj        Pop and Store Temp At kkkkkkkk In Temp Vector At: jjjjjjjj
        143   10001111 llllkkkk jjjjjjjj iiiiiiii       Push Closure Num Copied llll Num Args kkkk BlockSize jjjjjjjjiiiiiiii

Why is the primitive index in bytecode 139 stored little-endian? The other bytecodes with immediate args > 8 bits are in big endian (e.g. push closure copy)

No reason beyond my habit and preference. 

Can we still fix it? It seems really weird to me to have two different conventions in one bytecode set.
 
- Bert -