Difference between revisions of "Instruction set: CIL"

From ScienceZero
Jump to: navigation, search
(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"
 
|-
 
|-
! Field !! Description  
+
! Name !! Description  
 
|-
 
|-
| <> || Optional
+
|Add || Adds two values and pushes the result onto the evaluation stack. 
 
|-
 
|-
|<nowiki> (x|y)</nowiki> || Either x or y but not both
+
|Add.Ovf || Adds two integers, performs an overflow check, and pushes the result onto the evaluation stack. 
 
|-
 
|-
| #exp || Constant expression or label
+
|Add.Ovf.Un || Adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. 
 
|-
 
|-
| Rn || one of R0-R15, LR, SP or PC
+
|Div || Divides two values and pushes the result as a floating-point (type F) or quotient (type int32) onto the evaluation stack. 
 
|-
 
|-
| Fn || one of F0-F7
+
|Div.Un || Divides two unsigned integer values and pushes the result (int32) onto the evaluation stack. 
 
|-
 
|-
| S || Set condition codes
+
|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.