Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/branches/SMLNJ/src/MLRISC/x86/instructions/x86Instr.sml
ViewVC logotype

View of /sml/branches/SMLNJ/src/MLRISC/x86/instructions/x86Instr.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 429 - (download) (annotate)
Wed Sep 8 09:47:00 1999 UTC (20 years, 3 months ago) by monnier
File size: 4402 byte(s)
version 110.21
(*
 * This file was automatically generated by MDGen
 * from the machine description file "x86/x86.md".
 *)


signature X86INSTR =
sig
   structure C : X86CELLS
   structure Constant: CONSTANT
   structure Region : REGION
   datatype operand =
     Immed of Int32.int
   | Const of Constant.const
   | ImmedLabel of LabelExp.labexp
   | Relative of int
   | LabelEA of LabelExp.labexp
   | Direct of int
   | FDirect of int
   | Displace of {base:int, disp:operand, mem:Region.region}
   | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
     }
   type ea = operand
   datatype binaryOp =
     ADD
   | SUB
   | AND
   | OR
   | XOR
   | SHL
   | SAR
   | SHR
   datatype multDivOp =
     UMUL
   | IDIV
   | UDIV
   datatype unaryOp =
     DEC
   | INC
   | NEG
   | NOT
   datatype move =
     MOVL
   | MOVZX
   | MOVB
   datatype cond =
     EQ
   | NE
   | LT
   | LE
   | GT
   | GE
   | B
   | BE
   | A
   | AE
   | C
   | NC
   | P
   | NP
   | O
   | NO
   datatype fbinOp =
     FADDP
   | FADD
   | FMULP
   | FMUL
   | FSUBP
   | FSUB
   | FSUBRP
   | FSUBR
   | FDIVP
   | FDIV
   | FDIVRP
   | FDIVR
   datatype funOp =
     FABS
   | FCHS
   datatype instruction =
     NOP
   | JMP of (operand * Label.label list)
   | JCC of {cond:cond, opnd:operand}
   | CALL of (operand * C.cellset * C.cellset * Region.region)
   | RET of operand option
   | MOVE of {mvOp:move, src:operand, dst:operand}
   | LEA of {r32:int, addr:operand}
   | CMP of {lsrc:operand, rsrc:operand}
   | BINARY of {binOp:binaryOp, src:operand, dst:operand}
   | MULTDIV of {multDivOp:multDivOp, src:operand}
   | MUL3 of {dst:int, src1:operand, src2:Int32.int option}
   | UNARY of {unOp:unaryOp, opnd:operand}
   | PUSH of operand
   | POP of operand
   | CDQ
   | INTO
   | COPY of {dst:int list, src:int list, tmp:operand option}
   | FCOPY of {dst:int list, src:int list, tmp:operand option}
   | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
   | FUNARY of funOp
   | FUCOMPP
   | FXCH
   | FSTP of operand
   | FLD of operand
   | FILD of operand
   | FNSTSW
   | SAHF
   | ANNOTATION of {i:instruction, a:Annotations.annotation}
   | GROUP of Annotations.annotation
end

functor X86Instr(structure Const : CONSTANT
                 structure Region : REGION
                ) : X86INSTR =
struct
   structure C = X86Cells
   structure Region = Region
   structure Constant = Const
   datatype operand =
     Immed of Int32.int
   | Const of Constant.const
   | ImmedLabel of LabelExp.labexp
   | Relative of int
   | LabelEA of LabelExp.labexp
   | Direct of int
   | FDirect of int
   | Displace of {base:int, disp:operand, mem:Region.region}
   | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
     }
   type ea = operand
   datatype binaryOp =
     ADD
   | SUB
   | AND
   | OR
   | XOR
   | SHL
   | SAR
   | SHR
   datatype multDivOp =
     UMUL
   | IDIV
   | UDIV
   datatype unaryOp =
     DEC
   | INC
   | NEG
   | NOT
   datatype move =
     MOVL
   | MOVZX
   | MOVB
   datatype cond =
     EQ
   | NE
   | LT
   | LE
   | GT
   | GE
   | B
   | BE
   | A
   | AE
   | C
   | NC
   | P
   | NP
   | O
   | NO
   datatype fbinOp =
     FADDP
   | FADD
   | FMULP
   | FMUL
   | FSUBP
   | FSUB
   | FSUBRP
   | FSUBR
   | FDIVP
   | FDIV
   | FDIVRP
   | FDIVR
   datatype funOp =
     FABS
   | FCHS
   datatype instruction =
     NOP
   | JMP of (operand * Label.label list)
   | JCC of {cond:cond, opnd:operand}
   | CALL of (operand * C.cellset * C.cellset * Region.region)
   | RET of operand option
   | MOVE of {mvOp:move, src:operand, dst:operand}
   | LEA of {r32:int, addr:operand}
   | CMP of {lsrc:operand, rsrc:operand}
   | BINARY of {binOp:binaryOp, src:operand, dst:operand}
   | MULTDIV of {multDivOp:multDivOp, src:operand}
   | MUL3 of {dst:int, src1:operand, src2:Int32.int option}
   | UNARY of {unOp:unaryOp, opnd:operand}
   | PUSH of operand
   | POP of operand
   | CDQ
   | INTO
   | COPY of {dst:int list, src:int list, tmp:operand option}
   | FCOPY of {dst:int list, src:int list, tmp:operand option}
   | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
   | FUNARY of funOp
   | FUCOMPP
   | FXCH
   | FSTP of operand
   | FLD of operand
   | FILD of operand
   | FNSTSW
   | SAHF
   | ANNOTATION of {i:instruction, a:Annotations.annotation}
   | GROUP of Annotations.annotation
end


root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0