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/trunk/src/MLRISC/alpha/instructions/alphaInstr.sml
ViewVC logotype

View of /sml/trunk/src/MLRISC/alpha/instructions/alphaInstr.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 430 - (download) (annotate)
Wed Sep 8 09:47:00 1999 UTC (20 years ago) by monnier
File size: 8360 byte(s)
This commit was generated by cvs2svn to compensate for changes in r429,
which included commits to RCS files with non-trunk default branches.
(*
 * This file was automatically generated by MDGen
 * from the machine description file "alpha/alpha.md".
 *)


signature ALPHAINSTR =
sig
   structure C : ALPHACELLS
   structure Constant: CONSTANT
   structure Region : REGION
   datatype ea =
     Direct of int
   | FDirect of int
   | Displace of {base:int, disp:int}
   datatype operand =
     REGop of int
   | IMMop of int
   | HILABop of LabelExp.labexp
   | LOLABop of LabelExp.labexp
   | LABop of LabelExp.labexp
   | CONSTop of Constant.const
   datatype branch =
     BR
   | BSR
   | BLBC
   | BEQ
   | BLT
   | BLE
   | BLBS
   | BNE
   | BGE
   | BGT
   datatype fbranch =
     FBEQ
   | FBLT
   | FBLE
   | FBNE
   | FBGE
   | FBGT
   datatype load =
     LDL
   | LDL_L
   | LDQ
   | LDQ_L
   | LDQ_U
   datatype store =
     STL
   | STQ
   | STQ_U
   datatype fload =
     LDF
   | LDG
   | LDS
   | LDT
   datatype fstore =
     STF
   | STG
   | STS
   | STT
   datatype operate =
     ADDL
   | ADDQ
   | CMPBGE
   | CMPEQ
   | CMPLE
   | CMPLT
   | CMPULE
   | CMPULT
   | SUBL
   | SUBQ
   | S4ADDL
   | S4ADDQ
   | S4SUBL
   | S4SUBQ
   | S8ADDL
   | S8ADDQ
   | S8SUBL
   | S8SUBQ
   | AND
   | BIC
   | BIS
   | EQV
   | ORNOT
   | XOR
   | EXTBL
   | EXTLH
   | EXTLL
   | EXTQH
   | EXTQL
   | EXTWH
   | EXTWL
   | INSBL
   | INSLH
   | INSLL
   | INSQH
   | INSQL
   | INSWH
   | INSWL
   | MSKBL
   | MSKLH
   | MSKLL
   | MSKQH
   | MSKQL
   | MSKWH
   | MSKWL
   | SLL
   | SRA
   | SRL
   | ZAP
   | ZAPNOT
   | MULL
   | MULQ
   | UMULH
   | SGNXL
   datatype cmove =
     CMOVEQ
   | CMOVLBC
   | CMOVLBS
   | CMOVGE
   | CMOVGT
   | CMOVLE
   | CMOVLT
   | CMOVNE
   datatype pseudo_op =
     DIVL
   | DIVLU
   | DIVQ
   | DIVQU
   | REML
   | REMLU
   | REMQ
   | REMQU
   datatype operateV =
     ADDLV
   | ADDQV
   | SUBLV
   | SUBQV
   | MULLV
   | MULQV
   datatype funary =
     CVTLQ
   | CVTQL
   | CVTQLSV
   | CVTQLV
   | CVTQS
   | CVTQSC
   | CVTQT
   | CVTQTC
   | CVTTS
   | CVTTSC
   | CVTST
   | CVTSTS
   | CVTTQ
   | CVTTQC
   datatype foperate =
     CPYS
   | CPYSE
   | CPYSN
   | MF_FPCR
   | MT_FPCR
   | CMPTEQ
   | CMPTLT
   | CMPTLE
   | CMPTUN
   | CMPTEQSU
   | CMPTLTSU
   | CMPTLESU
   | CMPTUNSU
   datatype fcmove =
     FCMOVEQ
   | FCMOVEGE
   | FCMOVEGT
   | FCMOVLE
   | FCMOVELT
   | FCMOVENE
   datatype foperateV =
     ADDSSUD
   | ADDSSU
   | ADDTSUD
   | ADDTSU
   | DIVSSUD
   | DIVSSU
   | DIVTSUD
   | DIVTSU
   | MULSSUD
   | MULSSU
   | MULTSUD
   | MULTSU
   | SUBSSUD
   | SUBSSU
   | SUBTSUD
   | SUBTSU
   datatype osf_user_palcode =
     BPT
   | BUGCHK
   | CALLSYS
   | GENTRAP
   | IMB
   | RDUNIQUE
   | WRUNIQUE
   datatype instruction =
     DEFFREG of int
   | LDA of {r:int, b:int, d:operand}
   | LDAH of {r:int, b:int, d:operand}
   | LOAD of {ldOp:load, r:int, b:int, d:operand, mem:Region.region}
   | STORE of {stOp:store, r:int, b:int, d:operand, mem:Region.region}
   | FLOAD of {ldOp:fload, r:int, b:int, d:operand, mem:Region.region}
   | FSTORE of {stOp:fstore, r:int, b:int, d:operand, mem:Region.region
     }
   | JMPL of ({r:int, b:int, d:int} * Label.label list)
   | JSR of ({r:int, b:int, d:int} * C.cellset * C.cellset * Region.region)
   | RET of {r:int, b:int, d:int}
   | BRANCH of (branch * int * Label.label)
   | FBRANCH of (fbranch * int * Label.label)
   | OPERATE of {oper:operate, ra:int, rb:operand, rc:int}
   | OPERATEV of {oper:operateV, ra:int, rb:operand, rc:int}
   | CMOVE of {oper:cmove, ra:int, rb:operand, rc:int}
   | PSEUDOARITH of {oper:pseudo_op, ra:int, rb:operand, rc:int, tmps:C.cellset
     }
   | COPY of {dst:int list, src:int list, impl:instruction list option ref
     , tmp:ea option}
   | FCOPY of {dst:int list, src:int list, impl:instruction list option ref
     , tmp:ea option}
   | FUNARY of {oper:funary, fb:int, fc:int}
   | FOPERATE of {oper:foperate, fa:int, fb:int, fc:int}
   | FOPERATEV of {oper:foperateV, fa:int, fb:int, fc:int}
   | FCMOVE of {oper:fcmove, fa:int, fb:int, fc:int}
   | TRAPB
   | CALL_PAL of {code:osf_user_palcode, def:int list, use:int list}
   | ANNOTATION of {i:instruction, a:Annotations.annotation}
   | GROUP of Annotations.annotation
end

functor AlphaInstr(structure Const : CONSTANT
                   structure Region : REGION
                  ) : ALPHAINSTR =
struct
   structure C = AlphaCells
   structure Region = Region
   structure Constant = Const
   datatype ea =
     Direct of int
   | FDirect of int
   | Displace of {base:int, disp:int}
   datatype operand =
     REGop of int
   | IMMop of int
   | HILABop of LabelExp.labexp
   | LOLABop of LabelExp.labexp
   | LABop of LabelExp.labexp
   | CONSTop of Constant.const
   datatype branch =
     BR
   | BSR
   | BLBC
   | BEQ
   | BLT
   | BLE
   | BLBS
   | BNE
   | BGE
   | BGT
   datatype fbranch =
     FBEQ
   | FBLT
   | FBLE
   | FBNE
   | FBGE
   | FBGT
   datatype load =
     LDL
   | LDL_L
   | LDQ
   | LDQ_L
   | LDQ_U
   datatype store =
     STL
   | STQ
   | STQ_U
   datatype fload =
     LDF
   | LDG
   | LDS
   | LDT
   datatype fstore =
     STF
   | STG
   | STS
   | STT
   datatype operate =
     ADDL
   | ADDQ
   | CMPBGE
   | CMPEQ
   | CMPLE
   | CMPLT
   | CMPULE
   | CMPULT
   | SUBL
   | SUBQ
   | S4ADDL
   | S4ADDQ
   | S4SUBL
   | S4SUBQ
   | S8ADDL
   | S8ADDQ
   | S8SUBL
   | S8SUBQ
   | AND
   | BIC
   | BIS
   | EQV
   | ORNOT
   | XOR
   | EXTBL
   | EXTLH
   | EXTLL
   | EXTQH
   | EXTQL
   | EXTWH
   | EXTWL
   | INSBL
   | INSLH
   | INSLL
   | INSQH
   | INSQL
   | INSWH
   | INSWL
   | MSKBL
   | MSKLH
   | MSKLL
   | MSKQH
   | MSKQL
   | MSKWH
   | MSKWL
   | SLL
   | SRA
   | SRL
   | ZAP
   | ZAPNOT
   | MULL
   | MULQ
   | UMULH
   | SGNXL
   datatype cmove =
     CMOVEQ
   | CMOVLBC
   | CMOVLBS
   | CMOVGE
   | CMOVGT
   | CMOVLE
   | CMOVLT
   | CMOVNE
   datatype pseudo_op =
     DIVL
   | DIVLU
   | DIVQ
   | DIVQU
   | REML
   | REMLU
   | REMQ
   | REMQU
   datatype operateV =
     ADDLV
   | ADDQV
   | SUBLV
   | SUBQV
   | MULLV
   | MULQV
   datatype funary =
     CVTLQ
   | CVTQL
   | CVTQLSV
   | CVTQLV
   | CVTQS
   | CVTQSC
   | CVTQT
   | CVTQTC
   | CVTTS
   | CVTTSC
   | CVTST
   | CVTSTS
   | CVTTQ
   | CVTTQC
   datatype foperate =
     CPYS
   | CPYSE
   | CPYSN
   | MF_FPCR
   | MT_FPCR
   | CMPTEQ
   | CMPTLT
   | CMPTLE
   | CMPTUN
   | CMPTEQSU
   | CMPTLTSU
   | CMPTLESU
   | CMPTUNSU
   datatype fcmove =
     FCMOVEQ
   | FCMOVEGE
   | FCMOVEGT
   | FCMOVLE
   | FCMOVELT
   | FCMOVENE
   datatype foperateV =
     ADDSSUD
   | ADDSSU
   | ADDTSUD
   | ADDTSU
   | DIVSSUD
   | DIVSSU
   | DIVTSUD
   | DIVTSU
   | MULSSUD
   | MULSSU
   | MULTSUD
   | MULTSU
   | SUBSSUD
   | SUBSSU
   | SUBTSUD
   | SUBTSU
   datatype osf_user_palcode =
     BPT
   | BUGCHK
   | CALLSYS
   | GENTRAP
   | IMB
   | RDUNIQUE
   | WRUNIQUE
   datatype instruction =
     DEFFREG of int
   | LDA of {r:int, b:int, d:operand}
   | LDAH of {r:int, b:int, d:operand}
   | LOAD of {ldOp:load, r:int, b:int, d:operand, mem:Region.region}
   | STORE of {stOp:store, r:int, b:int, d:operand, mem:Region.region}
   | FLOAD of {ldOp:fload, r:int, b:int, d:operand, mem:Region.region}
   | FSTORE of {stOp:fstore, r:int, b:int, d:operand, mem:Region.region
     }
   | JMPL of ({r:int, b:int, d:int} * Label.label list)
   | JSR of ({r:int, b:int, d:int} * C.cellset * C.cellset * Region.region)
   | RET of {r:int, b:int, d:int}
   | BRANCH of (branch * int * Label.label)
   | FBRANCH of (fbranch * int * Label.label)
   | OPERATE of {oper:operate, ra:int, rb:operand, rc:int}
   | OPERATEV of {oper:operateV, ra:int, rb:operand, rc:int}
   | CMOVE of {oper:cmove, ra:int, rb:operand, rc:int}
   | PSEUDOARITH of {oper:pseudo_op, ra:int, rb:operand, rc:int, tmps:C.cellset
     }
   | COPY of {dst:int list, src:int list, impl:instruction list option ref
     , tmp:ea option}
   | FCOPY of {dst:int list, src:int list, impl:instruction list option ref
     , tmp:ea option}
   | FUNARY of {oper:funary, fb:int, fc:int}
   | FOPERATE of {oper:foperate, fa:int, fb:int, fc:int}
   | FOPERATEV of {oper:foperateV, fa:int, fb:int, fc:int}
   | FCMOVE of {oper:fcmove, fa:int, fb:int, fc:int}
   | TRAPB
   | CALL_PAL of {code:osf_user_palcode, def:int list, use:int list}
   | 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