micropython

Annotated docs/instructions.txt

464:04c6f309c52f
2011-09-05 Paul Boddie Attempted to introduce optimisations to avoid temporary storage allocation and to defer the production of instructions that save values in temporary storage. Changed the assignment handling to attempt to make use of "live" working values. Changed the default target of various instructions and simplified the testing of instructions that affect the working value. Added default source and working register values for instructions. Removed the redundant load_result parameter for _endCallFunc.
paul@450 1
Register Usage in RSVP Instructions
paul@450 2
===================================
paul@450 3
paul@450 4
                            operand     working     target      source      memory access
paul@450 5
                            -------     -------     ------      ------      -------------
paul@450 6
Transfer                                            *           *
paul@450 7
LoadConst                   *                       *
paul@450 8
LoadClass                   *                       *
paul@450 9
LoadFunction                *                       *
paul@450 10
LoadName                    *                       *                       frame
paul@450 11
LoadTemp                    *                       *                       frame
paul@450 12
LoadAddress                 *                       *                       memory
paul@450 13
LoadAddressContext          *           *           *                       memory
paul@450 14
LoadAddressContextCond      *           *           *                       memory
paul@450 15
LoadAttr                    *           *           *                       memory
paul@450 16
LoadAttrIndex               *           *           *                       memory
paul@450 17
LoadAttrIndexContextCond    *           *           *                       memory
paul@450 18
LoadCallable                            *           *                       memory
paul@450 19
StoreName                   *                                   *           frame
paul@450 20
StoreTemp                   *                                   *           frame
paul@450 21
StoreAddress                *                                   *           memory
paul@450 22
StoreAddressContext         *           *                       *           memory
paul@450 23
StoreAttr                   *           *                       *           memory
paul@450 24
StoreAttrIndex              *           *                       *           memory
paul@450 25
StoreCallable                           *                       *           memory
paul@450 26
StoreFrame                  *           *                                   frame
paul@450 27
StoreFrameIndex             *                                   *           frame
paul@450 28
CheckContext                            *           *
paul@450 29
CheckClass                              *           *                       memory
paul@450 30
CheckInstance                           *           *           *           memory
paul@450 31
CheckFrame                  *                       *                       frame
paul@450 32
CheckExtra                                          *                       frame
paul@450 33
CheckException                          *           *                       memory
paul@450 34
JumpInFrame                             *
paul@450 35
JumpWithFrame                           *
paul@450 36
JumpWithFrameDirect         *
paul@450 37
Jump                        *
paul@450 38
JumpIfFalse                 *           *
paul@450 39
JumpIfTrue                  *           *
paul@450 40
Return                                                                      stack
paul@450 41
MakeInstance                *           *           *                       memory
paul@450 42
MakeFragment                *                       *                       memory
paul@450 43
MakeFrame                   *                                               frame
paul@450 44
DropFrame                                                                   frame
paul@450 45
AdjustFrame                 *                                               frame
paul@450 46
ExtendFrame                 *                                               frame
paul@450 47
FillDefaults                *           *                                   frame/memory
paul@450 48
CopyExtra                   *                       *                       frame/memory
paul@450 49
RaiseException                          E                                   handlers/memory
paul@450 50
PushHandler                 *                                               handlers
paul@450 51
PopHandler                  *                                               frame/handlers
paul@450 52
TestIdentity                            *           *           *
paul@450 53
TestIdentityAddress         *           *           *
paul@450 54
InvertBoolean                                       *           *