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

SCM Repository

[smlnj] Diff of /sml/trunk/src/MLRISC/alpha/instructions/alphaInstr.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1002, Fri Nov 30 17:11:33 2001 UTC revision 1003, Fri Dec 7 02:45:32 2001 UTC
# Line 8  Line 8 
8  signature ALPHAINSTR =  signature ALPHAINSTR =
9  sig  sig
10     structure C : ALPHACELLS     structure C : ALPHACELLS
11       structure CB : CELLS_BASIS
12     structure T : MLTREE     structure T : MLTREE
13     structure Constant: CONSTANT     structure Constant: CONSTANT
14     structure Region : REGION     structure Region : REGION
# Line 215  Line 216 
216     | RDUNIQUE     | RDUNIQUE
217     | WRUNIQUE     | WRUNIQUE
218     type addressing_mode = CellsBasis.cell * operand     type addressing_mode = CellsBasis.cell * operand
219     datatype instruction =     datatype instr =
220       DEFFREG of CellsBasis.cell       LDA of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}
    | LDA of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}  
221     | LDAH of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}     | LDAH of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}
222     | LOAD of {ldOp:load, r:CellsBasis.cell, b:CellsBasis.cell, d:operand, mem:Region.region}     | LOAD of {ldOp:load, r:CellsBasis.cell, b:CellsBasis.cell, d:operand, mem:Region.region}
223     | STORE of {stOp:store, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,     | STORE of {stOp:store, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,
# Line 250  Line 250 
250     | FCMOVE of {oper:fcmove, fa:CellsBasis.cell, fb:CellsBasis.cell, fc:CellsBasis.cell}     | FCMOVE of {oper:fcmove, fa:CellsBasis.cell, fb:CellsBasis.cell, fc:CellsBasis.cell}
251     | TRAPB     | TRAPB
252     | CALL_PAL of {code:osf_user_palcode, def:C.cellset, use:C.cellset}     | CALL_PAL of {code:osf_user_palcode, def:C.cellset, use:C.cellset}
    | ANNOTATION of {i:instruction, a:Annotations.annotation}  
253     | SOURCE of {}     | SOURCE of {}
254     | SINK of {}     | SINK of {}
255     | PHI of {}     | PHI of {}
256       and instruction =
257         LIVE of {regs: C.cellset, spilled: C.cellset}
258       | KILL of {regs: C.cellset, spilled: C.cellset}
259       | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
260       | ANNOTATION of {i:instruction, a:Annotations.annotation}
261       | INSTR of instr
262       val lda : {r:CellsBasis.cell, b:CellsBasis.cell, d:operand} -> instruction
263       val ldah : {r:CellsBasis.cell, b:CellsBasis.cell, d:operand} -> instruction
264       val load : {ldOp:load, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,
265          mem:Region.region} -> instruction
266       val store : {stOp:store, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,
267          mem:Region.region} -> instruction
268       val fload : {ldOp:fload, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,
269          mem:Region.region} -> instruction
270       val fstore : {stOp:fstore, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,
271          mem:Region.region} -> instruction
272       val jmpl : {r:CellsBasis.cell, b:CellsBasis.cell, d:int} * Label.label list -> instruction
273       val jsr : {r:CellsBasis.cell, b:CellsBasis.cell, d:int, defs:C.cellset,
274          uses:C.cellset, cutsTo:Label.label list, mem:Region.region} -> instruction
275       val bsr : {r:CellsBasis.cell, lab:Label.label, defs:C.cellset, uses:C.cellset,
276          cutsTo:Label.label list, mem:Region.region} -> instruction
277       val ret : {r:CellsBasis.cell, b:CellsBasis.cell, d:int} -> instruction
278       val branch : {b:branch, r:CellsBasis.cell, lab:Label.label} -> instruction
279       val fbranch : {b:fbranch, f:CellsBasis.cell, lab:Label.label} -> instruction
280       val operate : {oper:operate, ra:CellsBasis.cell, rb:operand, rc:CellsBasis.cell} -> instruction
281       val operatev : {oper:operateV, ra:CellsBasis.cell, rb:operand, rc:CellsBasis.cell} -> instruction
282       val cmove : {oper:cmove, ra:CellsBasis.cell, rb:operand, rc:CellsBasis.cell} -> instruction
283       val pseudoarith : {oper:pseudo_op, ra:CellsBasis.cell, rb:operand, rc:CellsBasis.cell,
284          tmps:C.cellset} -> instruction
285       val copy : {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,
286          tmp:ea option} -> instruction
287       val fcopy : {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,
288          tmp:ea option} -> instruction
289       val funary : {oper:funary, fb:CellsBasis.cell, fc:CellsBasis.cell} -> instruction
290       val foperate : {oper:foperate, fa:CellsBasis.cell, fb:CellsBasis.cell, fc:CellsBasis.cell} -> instruction
291       val foperatev : {oper:foperateV, fa:CellsBasis.cell, fb:CellsBasis.cell,
292          fc:CellsBasis.cell} -> instruction
293       val fcmove : {oper:fcmove, fa:CellsBasis.cell, fb:CellsBasis.cell, fc:CellsBasis.cell} -> instruction
294       val trapb : instruction
295       val call_pal : {code:osf_user_palcode, def:C.cellset, use:C.cellset} -> instruction
296       val source : {} -> instruction
297       val sink : {} -> instruction
298       val phi : {} -> instruction
299  end  end
300    
301  functor AlphaInstr(T: MLTREE  functor AlphaInstr(T: MLTREE
302                    ) : ALPHAINSTR =                    ) : ALPHAINSTR =
303  struct  struct
304     structure C = AlphaCells     structure C = AlphaCells
305       structure CB = CellsBasis
306     structure T = T     structure T = T
307     structure Region = T.Region     structure Region = T.Region
308     structure Constant = T.Constant     structure Constant = T.Constant
# Line 465  Line 508 
508     | RDUNIQUE     | RDUNIQUE
509     | WRUNIQUE     | WRUNIQUE
510     type addressing_mode = CellsBasis.cell * operand     type addressing_mode = CellsBasis.cell * operand
511     datatype instruction =     datatype instr =
512       DEFFREG of CellsBasis.cell       LDA of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}
    | LDA of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}  
513     | LDAH of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}     | LDAH of {r:CellsBasis.cell, b:CellsBasis.cell, d:operand}
514     | LOAD of {ldOp:load, r:CellsBasis.cell, b:CellsBasis.cell, d:operand, mem:Region.region}     | LOAD of {ldOp:load, r:CellsBasis.cell, b:CellsBasis.cell, d:operand, mem:Region.region}
515     | STORE of {stOp:store, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,     | STORE of {stOp:store, r:CellsBasis.cell, b:CellsBasis.cell, d:operand,
# Line 500  Line 542 
542     | FCMOVE of {oper:fcmove, fa:CellsBasis.cell, fb:CellsBasis.cell, fc:CellsBasis.cell}     | FCMOVE of {oper:fcmove, fa:CellsBasis.cell, fb:CellsBasis.cell, fc:CellsBasis.cell}
543     | TRAPB     | TRAPB
544     | CALL_PAL of {code:osf_user_palcode, def:C.cellset, use:C.cellset}     | CALL_PAL of {code:osf_user_palcode, def:C.cellset, use:C.cellset}
    | ANNOTATION of {i:instruction, a:Annotations.annotation}  
545     | SOURCE of {}     | SOURCE of {}
546     | SINK of {}     | SINK of {}
547     | PHI of {}     | PHI of {}
548       and instruction =
549         LIVE of {regs: C.cellset, spilled: C.cellset}
550       | KILL of {regs: C.cellset, spilled: C.cellset}
551       | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
552       | ANNOTATION of {i:instruction, a:Annotations.annotation}
553       | INSTR of instr
554       val lda = INSTR o LDA
555       and ldah = INSTR o LDAH
556       and load = INSTR o LOAD
557       and store = INSTR o STORE
558       and fload = INSTR o FLOAD
559       and fstore = INSTR o FSTORE
560       and jmpl = INSTR o JMPL
561       and jsr = INSTR o JSR
562       and bsr = INSTR o BSR
563       and ret = INSTR o RET
564       and branch = INSTR o BRANCH
565       and fbranch = INSTR o FBRANCH
566       and operate = INSTR o OPERATE
567       and operatev = INSTR o OPERATEV
568       and cmove = INSTR o CMOVE
569       and pseudoarith = INSTR o PSEUDOARITH
570       and copy = INSTR o COPY
571       and fcopy = INSTR o FCOPY
572       and funary = INSTR o FUNARY
573       and foperate = INSTR o FOPERATE
574       and foperatev = INSTR o FOPERATEV
575       and fcmove = INSTR o FCMOVE
576       and trapb = INSTR TRAPB
577       and call_pal = INSTR o CALL_PAL
578       and source = INSTR o SOURCE
579       and sink = INSTR o SINK
580       and phi = INSTR o PHI
581  end  end
582    

Legend:
Removed from v.1002  
changed lines
  Added in v.1003

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