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/05/23 08:56:19 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
------------------------------------------------------------------------------
== List of High-Level IR opcodes used in Jitrino.OPT compiler: ==
=== Arithmetic: ===
- * [:Jitrino_OPT/opcodes/Add: Op_Add]
- * [:Jitrino_OPT/opcodes/Mul: Op_Mul]
- * [:Jitrino_OPT/opcodes/Sub: Op_Sub] - OverflowModifier, ExceptionModifier
- * [:Jitrino_OPT/opcodes/TauDiv: Op_TauDiv]
- * [:Jitrino_OPT/opcodes/TauRem: Op_TauRem] - SignedModifier, (opnds must already be checked for 0/overflow)
- * [:Jitrino_OPT/opcodes/Neg: Op_Neg]
- * [:Jitrino_OPT/opcodes/MulHi: Op_MulHi] - SignedModifier (but only signed needed now)
- * [:Jitrino_OPT/opcodes/Min: Op_Min]
- * [:Jitrino_OPT/opcodes/Max: Op_Max]
- * [:Jitrino_OPT/opcodes/Abs: Op_Abs] - no modifiers
- // Bitwise
- * [:Jitrino_OPT/opcodes/And: Op_And]
- * [:Jitrino_OPT/opcodes/Or: Op_Or]
+ * [:Jitrino_OPT/opcodes/Add: Op_Add] - Adds ''src1'' and ''src2'' operands and stores the result to ''dst''. Modifiers: OverflowModifier, ExceptionModifier
+ * [:Jitrino_OPT/opcodes/Mul: Op_Mul] - Multiplies ''src1'' and ''src2'' operands and stores the result to ''dst''. Modifiers: OverflowModifier, ExceptionModifier
+ * [:Jitrino_OPT/opcodes/Sub: Op_Sub] - Substracts ''src2'' from ''src1'' operands and stores the result to ''dst''. Modifiers: OverflowModifier, ExceptionModifier
+ * [: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/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
+ ==== Bitwise: ====
+ * [:Jitrino_OPT/opcodes/And: Op_And] - A bitwise AND takes ''src1'' and ''src2'' operands of equal size and performs the logical AND operation on each pair of corresponding bits storing the result to ''dst''. In each pair, the result is 1 if the first bit is 1 AND the second bit is 1. Otherwise, the result is 0. Modifiers: none
+ * [:Jitrino_OPT/opcodes/Or: Op_Or] - A bitwise OR takes ''src1'' and ''src2'' operands of equal size and performs the logical OR operation on each pair of corresponding bits storing the result to ''dst''. In each pair, the result is 1 if the first bit is 1 OR the second bit is 1 OR both the first and the second bits are 1. Otherwise, the result is 0. Modifiers: none
* [:Jitrino_OPT/opcodes/Xor: Op_Xor]
* [:Jitrino_OPT/opcodes/Not: Op_Not]
// Selection