micropython

docs/instructions.txt

450:5382a26943ca
2011-08-21 Paul Boddie Changed the nature of RSVP instructions so that they have explicit working, target and source register inputs and no longer consume simple instructions as direct inputs. This changes the nature of the generated code and of certain optimisations, as well as making some previous optimisations redundant and necessitating additional optimisations.
     1 Register Usage in RSVP Instructions
     2 ===================================
     3 
     4                             operand     working     target      source      memory access
     5                             -------     -------     ------      ------      -------------
     6 Transfer                                            *           *
     7 LoadConst                   *                       *
     8 LoadClass                   *                       *
     9 LoadFunction                *                       *
    10 LoadName                    *                       *                       frame
    11 LoadTemp                    *                       *                       frame
    12 LoadAddress                 *                       *                       memory
    13 LoadAddressContext          *           *           *                       memory
    14 LoadAddressContextCond      *           *           *                       memory
    15 LoadAttr                    *           *           *                       memory
    16 LoadAttrIndex               *           *           *                       memory
    17 LoadAttrIndexContextCond    *           *           *                       memory
    18 LoadCallable                            *           *                       memory
    19 StoreName                   *                                   *           frame
    20 StoreTemp                   *                                   *           frame
    21 StoreAddress                *                                   *           memory
    22 StoreAddressContext         *           *                       *           memory
    23 StoreAttr                   *           *                       *           memory
    24 StoreAttrIndex              *           *                       *           memory
    25 StoreCallable                           *                       *           memory
    26 StoreFrame                  *           *                                   frame
    27 StoreFrameIndex             *                                   *           frame
    28 CheckContext                            *           *
    29 CheckClass                              *           *                       memory
    30 CheckInstance                           *           *           *           memory
    31 CheckFrame                  *                       *                       frame
    32 CheckExtra                                          *                       frame
    33 CheckException                          *           *                       memory
    34 JumpInFrame                             *
    35 JumpWithFrame                           *
    36 JumpWithFrameDirect         *
    37 Jump                        *
    38 JumpIfFalse                 *           *
    39 JumpIfTrue                  *           *
    40 Return                                                                      stack
    41 MakeInstance                *           *           *                       memory
    42 MakeFragment                *                       *                       memory
    43 MakeFrame                   *                                               frame
    44 DropFrame                                                                   frame
    45 AdjustFrame                 *                                               frame
    46 ExtendFrame                 *                                               frame
    47 FillDefaults                *           *                                   frame/memory
    48 CopyExtra                   *                       *                       frame/memory
    49 RaiseException                          E                                   handlers/memory
    50 PushHandler                 *                                               handlers
    51 PopHandler                  *                                               frame/handlers
    52 TestIdentity                            *           *           *
    53 TestIdentityAddress         *           *           *
    54 InvertBoolean                                       *           *