You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by Apache Wiki <wi...@apache.org> on 2008/06/04 09:01:22 UTC

[Harmony Wiki] Update of "Jitrino OPT/opcodes" by Mikhail Fursov

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Harmony Wiki" for change notification.

The following page has been changed by Mikhail Fursov:
http://wiki.apache.org/harmony/Jitrino_OPT/opcodes

------------------------------------------------------------------------------
   * [:Jitrino_OPT/opcodes/TauDiv: Op_TauDiv] - Divides ''src1'' by ''src2'' and stores the results to ''dst''. Uses ''tau'' operand to ensure that that 0/overflow cases were checked before. Modifiers: SignedModifier
   * [:Jitrino_OPT/opcodes/TauRem: Op_TauRem] - Computes residue of division of ''src1'' by ''src2'' and stores the results to ''dst''. Uses ''tau'' operand to ensure that that 0/overflow cases were checked before. Modifiers: SignedModifier
   * [:Jitrino_OPT/opcodes/Neg: Op_Neg] - Negates the ''src1'' operands and stores the result to ''dst''. Modifiers: SignedModifier
-  * [:Jitrino_OPT/opcodes/MulHi: Op_MulHi] - Gets high part of multiply. TODO: remove as unused
+  * [:Jitrino_OPT/opcodes/MulHi: Op_MulHi] - Gets high part of multiply. 
   * [:Jitrino_OPT/opcodes/Min: Op_Min] - Compares ''src1'' and ''src2'' and stores minimal value to ''dst''. Modifiers: none
   * [:Jitrino_OPT/opcodes/Max: Op_Max] - Compares ''src1'' and ''src2'' and stores maximal value to ''dst''. Modifiers: none
   * [:Jitrino_OPT/opcodes/Abs: Op_Abs] - Stores absolute value of ''src1'' to ''dst''. Modifiers: none
@@ -19, +19 @@

   * [:Jitrino_OPT/opcodes/Xor: Op_Xor] - A bitwise XOR takes ''src1'' and ''src2'' operands of equal size and performs the logical XOR operation on each pair of corresponding bits storing the result to ''dst''. In each pair, the result is 1 if the two bits are different, and 0 if they are the same. Modifiers: none
   * [:Jitrino_OPT/opcodes/Not: Op_Not] - A bitwise NOT takes ''src1'' and performs the logical NOT operation storing the result to ''dst''. For each bit that was 0 the result is 1. For each bit that was 1 the results is 0. Modifiers: none
  ==== Selection: ====
-  * [:Jitrino_OPT/opcodes/Select: Op_Select] -  Selects a value: (''src1'' ? ''src2'' : ''src3''). TODO: remove as unused
+  * [:Jitrino_OPT/opcodes/Select: Op_Select] -  Selects a value: (''src1'' ? ''src2'' : ''src3''). 
  ==== Conversion: ====
   * [:Jitrino_OPT/opcodes/Conv: Op_Conv] - Converts ''src1'' to ''dst'' using ''type'' information provided as a parameter. Must not be used for conversion of managed pointers to Unmanaged Pointers and via versa. Modifiers: OverflowModifier, ExceptionModifier
   * [:Jitrino_OPT/opcodes/ConvZE: Op_ConvZE] -  Converts ''src1'' to ''dst'' using ''type'' information provided as a parameter. If the size of ''dst'' of greater that the size of ''src1'' all extra bits are filled with 0. Must not be used for conversion of managed pointers to Unmanaged Pointers and via versa. Modifiers: OverflowModifier, ExceptionModifier
@@ -50, +50 @@

   * [:Jitrino_OPT/opcodes/PseudoThrow: Op_PseudoThrow] - A pseudo instruction to break infinte loops. Modifiers: ExceptionModifier
   * [:Jitrino_OPT/opcodes/ThrowSystemException: Op_ThrowSystemException] -  A throw with a predefined object thrown. Takes a CompilationInterface::SystemExceptionId parameter. Modifiers: ThrowModifier
   * [:Jitrino_OPT/opcodes/ThrowLinkingException: Op_ThrowLinkingException] -  A throw with a predefined object thrown. Generate a call to Helper_Throw_LinkingException. Modifiers: ThrowModifier
-  * [:Jitrino_OPT/opcodes/Leave: Op_Leave] - unused op. TODO: remove it
-  * [:Jitrino_OPT/opcodes/EndFinally: Op_EndFinally] - unused op. TODO: remove it
  
-  * [:Jitrino_OPT/opcodes/EndFilter: Op_EndFilter] - unused op. TODO: remove it
-  * [:Jitrino_OPT/opcodes/EndCatch: Op_EndCatch] - unused op. TODO: remove it
   * [:Jitrino_OPT/opcodes/JSR: Op_JSR] - An unconditional branch to a subroutine. Modifiers: none.
   * [:Jitrino_OPT/opcodes/Ret: Op_Ret] - A return from a subroutine called with Op_JSR instruction. Modifiers: none.
   * [:Jitrino_OPT/opcodes/SaveRet: Op_SaveRet] - Prepares an operand for saving result of subroutine. Modifiers: none.
@@ -137, +133 @@

   * [:Jitrino_OPT/opcodes/Label: Op_Label] -  A special label instructions for branch labels, finally, catch blocks. Every node in HIR must start with this instruction.
   * [:Jitrino_OPT/opcodes/MethodEntry: Op_MethodEntry] -  Method entry label. Used to mark inlined methods boundaries.
   * [:Jitrino_OPT/opcodes/MethodEnd: Op_MethodEnd] -  Method end label. Used to mark inlined methods boundaries.
-  * [:Jitrino_OPT/opcodes/SourceLineNumber: Op_SourceLineNumber] -  Changes to source position. TODO: unused, remove this opcode.
              
- === Memory instructions: ===
-  * [:Jitrino_OPT/opcodes/InitBlock: Op_InitBlock] -  Memset. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/CopyBlock: Op_CopyBlock] -  Memcopy. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/Alloca: Op_Alloca] -  Allocates memory from the stack, not verifiable. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/ArgList: Op_ArgList] -  Can be used for implementing varargs; use is private to CLI System.ArgIterator. TODO: remove as unused.
- 
  === Profile instrumentation instructions: ===
   * [:Jitrino_OPT/opcodes/IncCounter: Op_IncCounter] -  Increment edge profile profile counter by 1. The counter's ''key'' provided as an argument is used to derive the address of a counter. If the ''key'' == 0, entry counter address is used.
   * [:Jitrino_OPT/opcodes/Prefetch: Op_Prefetch] - Prefetches a given memory location.
@@ -154, +143 @@

   * [:Jitrino_OPT/opcodes/CompressRef: Op_CompressRef] -  Performs compress operation, which is reverse operation for Op_UncompressRef.
  
   * [:Jitrino_OPT/opcodes/LdFieldOffset: Op_LdFieldOffset] -  Loads field offset from the start of the object.
-  * [:Jitrino_OPT/opcodes/LdFieldOffsetPlusHeapbase: Op_LdFieldOffsetPlusHeapbase] -  Loads field offset and adds heapbase to it. TODO: remove as unused.
+  * [:Jitrino_OPT/opcodes/LdFieldOffsetPlusHeapbase: Op_LdFieldOffsetPlusHeapbase] -  Loads field offset and adds heapbase to it. 
-  * [:Jitrino_OPT/opcodes/LdArrayBaseOffset: Op_LdArrayBaseOffset] -  Loads the offset of array base. TODO: remove as unused.
+  * [:Jitrino_OPT/opcodes/LdArrayBaseOffset: Op_LdArrayBaseOffset] -  Loads the offset of array base. 
-  * [:Jitrino_OPT/opcodes/LdArrayBaseOffsetPlusHeapbase: Op_LdArrayBaseOffsetPlusHeapbase] -  Offset of array base plus heap base. TODO: remove as unused.
+  * [:Jitrino_OPT/opcodes/LdArrayBaseOffsetPlusHeapbase: Op_LdArrayBaseOffsetPlusHeapbase] -  Offset of array base plus heap base. 
-  * [:Jitrino_OPT/opcodes/LdArrayLenOffset: Op_LdArrayLenOffset] -  Returns offset of array length field. TODO: remove as unused.
+  * [:Jitrino_OPT/opcodes/LdArrayLenOffset: Op_LdArrayLenOffset] -  Returns offset of array length field. 
-  * [:Jitrino_OPT/opcodes/LdArrayLenOffsetPlusHeapbase: Op_LdArrayLenOffsetPlusHeapbase] -  Returns offset of array length field plus heap base. TODO: remove as unused.
+  * [:Jitrino_OPT/opcodes/LdArrayLenOffsetPlusHeapbase: Op_LdArrayLenOffsetPlusHeapbase] -  Returns offset of array length field plus heap base. 
  
   * [:Jitrino_OPT/opcodes/AddOffset: Op_AddOffset] -  Adds offset to uncompressed reference.
   * [:Jitrino_OPT/opcodes/AddOffsetPlusHeapbase: Op_AddOffsetPlusHeapbase] -  Uncompresses compressed reference and adds field offsets to result.
@@ -167, +156 @@

   * [:Jitrino_OPT/opcodes/Phi: Op_Phi] -  A merge point for variables.
   * [:Jitrino_OPT/opcodes/TauPi: Op_TauPi] -  Leverage split based on condition.
  
- 
- === Instructions for manipulating value objects in CLI: ===
- 
-  * [:Jitrino_OPT/opcodes/LdObj: Op_LdObj] -  Loads a value type to the stack. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/StObj: Op_StObj] -  Stores a value type from the stack. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/CopyObj: Op_CopyObj] - Copies a value type. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/InitObj: Op_InitObj] -  Initialize a value type. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/Sizeof: Op_Sizeof] -  Pushes the size of a value type as a U4. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/Box: Op_Box] - TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/Unbox: Op_Unbox] - TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/LdToken: Op_LdToken]  - Pushes a RuntimeMethodHandle, RuntimeTypeHandle, or RuntimeFieldHandle for 
-  passing to the Reflection methods in the system class library. TODO: remove as unused.
- 
- 
- === Instruction for manipulating typed references: ===
- 
-  * [:Jitrino_OPT/opcodes/MkRefAny: Op_MkRefAny] - Transforms a pointer to a typed reference. TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/RefAnyVal: Op_RefAnyVal] - TODO: remove as unused.
-  * [:Jitrino_OPT/opcodes/RefAnyType: Op_RefAnyType] - TODO: remove as unused.
-