I also found LdInd, LdRef, LdVar Where are they used? and What is the difference between these and TauLdInd?
LdInd: its a kind of wrapper. It can be used for load of anything from memory. But it is not used for java AFAIR. (For Java you always know what you are trying to load so for example for getfield you calculate field address - LdFieldAddr, make null- and type- checks and TauLdInd w/o that wrapper )
LdRef - is used for loading strings and SystemClasses. the address for the load explicitly appears only at code selector. In HLO LdRef instruction keeps enclosing method and constant pool index inside for further address request. (VM provides the address at compile time for such items)
LdVar - is used for operations with local variables. It is not actually a real load from memory. Some var may happen to be assigned to a register later in code generator. Code selector selects the inst into PseudoCopy instruction. And later PseudoCopy will disappeare or become a real MOV.
