Difference between revisions of "Instruction set: CIL"
From ScienceZero
(New page: {| class="wikitable" |- ! Field !! Description |- | <> || Optional |- |<nowiki> (x|y)</nowiki> || Either x or y but not both |- | #exp || Constant expression or label |- | Rn || one of R0...) |
|||
| Line 1: | Line 1: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| − | ! | + | ! Name !! Description |
|- | |- | ||
| − | | | + | |Add || Adds two values and pushes the result onto the evaluation stack. |
|- | |- | ||
| − | | | + | |Add.Ovf || Adds two integers, performs an overflow check, and pushes the result onto the evaluation stack. |
|- | |- | ||
| − | | | + | |Add.Ovf.Un || Adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. |
|- | |- | ||
| − | | | + | |Div || Divides two values and pushes the result as a floating-point (type F) or quotient (type int32) onto the evaluation stack. |
|- | |- | ||
| − | | | + | |Div.Un || Divides two unsigned integer values and pushes the result (int32) onto the evaluation stack. |
|- | |- | ||
| − | | | + | |Mul || Multiplies two values and pushes the result on the evaluation stack. |
| + | |- | ||
| + | |Mul.Ovf || Multiplies two integer values, performs an overflow check, and pushes the result onto the evaluation stack. | ||
| + | |- | ||
| + | |Mul.Ovf.Un || Multiplies two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. | ||
| + | |- | ||
| + | |Neg || Negates a value and pushes the result onto the evaluation stack. | ||
| + | |- | ||
| + | |Rem || Divides two values and pushes the remainder onto the evaluation stack. | ||
| + | |- | ||
| + | |Rem.Un || Divides two unsigned values and pushes the remainder onto the evaluation stack. | ||
| + | |- | ||
| + | |Sub || Subtracts one value from another and pushes the result onto the evaluation stack. | ||
| + | |- | ||
| + | |Sub.Ovf || Subtracts one integer value from another, performs an overflow check, and pushes the result onto the evaluation stack. | ||
| + | |- | ||
| + | |Sub.Ovf.Un || Subtracts one unsigned integer value from another, performs an overflow check, and pushes the result onto the evaluation stack. | ||
|} | |} | ||
Revision as of 02:51, 9 October 2007
| Name | Description |
|---|---|
| Add | Adds two values and pushes the result onto the evaluation stack. |
| Add.Ovf | Adds two integers, performs an overflow check, and pushes the result onto the evaluation stack. |
| Add.Ovf.Un | Adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. |
| Div | Divides two values and pushes the result as a floating-point (type F) or quotient (type int32) onto the evaluation stack. |
| Div.Un | Divides two unsigned integer values and pushes the result (int32) onto the evaluation stack. |
| Mul | Multiplies two values and pushes the result on the evaluation stack. |
| Mul.Ovf | Multiplies two integer values, performs an overflow check, and pushes the result onto the evaluation stack. |
| Mul.Ovf.Un | Multiplies two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. |
| Neg | Negates a value and pushes the result onto the evaluation stack. |
| Rem | Divides two values and pushes the remainder onto the evaluation stack. |
| Rem.Un | Divides two unsigned values and pushes the remainder onto the evaluation stack. |
| Sub | Subtracts one value from another and pushes the result onto the evaluation stack. |
| Sub.Ovf | Subtracts one integer value from another, performs an overflow check, and pushes the result onto the evaluation stack. |
| Sub.Ovf.Un | Subtracts one unsigned integer value from another, performs an overflow check, and pushes the result onto the evaluation stack. |