summaryrefslogtreecommitdiff
path: root/il.sig
diff options
context:
space:
mode:
Diffstat (limited to 'il.sig')
-rw-r--r--il.sig21
1 files changed, 9 insertions, 12 deletions
diff --git a/il.sig b/il.sig
index 2450011..4136222 100644
--- a/il.sig
+++ b/il.sig
@@ -14,6 +14,11 @@ signature IL = sig
datatype accessClass = AC1 | AC2 | AC4 | AC8
+ datatype cmpOp =
+ Cmpeq | Cmpneq |
+ Cmpul | Cmpug | Cmpule | Cmpuge |
+ Cmpsl | Cmpsg | Cmpsle | Cmpsge
+
datatype irIns =
IrSet of vreg * setArg
| IrAdd of vreg * vreg * vreg
@@ -30,18 +35,8 @@ signature IL = sig
| IrAnd of vreg * vreg * vreg
| IrOr of vreg * vreg * vreg
| IrXor of vreg * vreg * vreg
- | IrEq of vreg * vreg * vreg
- | IrNeq of vreg * vreg * vreg
-
- | IrCmpul of vreg * vreg * vreg
- | IrCmpug of vreg * vreg * vreg
- | IrCmpule of vreg * vreg * vreg
- | IrCmpuge of vreg * vreg * vreg
- | IrCmpsl of vreg * vreg * vreg
- | IrCmpsg of vreg * vreg * vreg
- | IrCmpsle of vreg * vreg * vreg
- | IrCmpsge of vreg * vreg * vreg
+ | IrCmp of cmpOp * vreg * vreg * vreg
| IrExtZero of vreg * vreg * accessClass
| IrExtSign of vreg * vreg * accessClass
@@ -72,10 +67,12 @@ signature IL = sig
class: vregClass,
use: int list,
defs: int list,
- t: regType
+ t: regType,
+ canFold: bool
}
val Pwc: (vregClass, word, 'a, 'b, 'c) a2printer
+ val Pac: (accessClass, 'a, 'b, 'c) a1printer
datatype funcInfo = Fi of {
name: int,