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/hppa/instructions/hppaInstr.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/hppa/instructions/hppaInstr.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 HPPAINSTR =  signature HPPAINSTR =
9  sig  sig
10     structure C : HPPACELLS     structure C : HPPACELLS
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 216  Line 217 
217       DISPea of CellsBasis.cell * operand       DISPea of CellsBasis.cell * operand
218     | INDXea of CellsBasis.cell * CellsBasis.cell     | INDXea of CellsBasis.cell * CellsBasis.cell
219     | INDXSCALEDea of CellsBasis.cell * CellsBasis.cell     | INDXSCALEDea of CellsBasis.cell * CellsBasis.cell
220     datatype instruction =     datatype instr =
221       LOADI of {li:loadi, r:CellsBasis.cell, i:operand, t:CellsBasis.cell, mem:Region.region}       LOADI of {li:loadi, r:CellsBasis.cell, i:operand, t:CellsBasis.cell, mem:Region.region}
222     | LOAD of {l:load, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell,     | LOAD of {l:load, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell,
223          mem:Region.region}          mem:Region.region}
# Line 264  Line 265 
265          tmp:ea option}          tmp:ea option}
266     | FCOPY of {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,     | FCOPY of {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,
267          tmp:ea option}          tmp:ea option}
    | ANNOTATION of {i:instruction, a:Annotations.annotation}  
268     | SOURCE of {}     | SOURCE of {}
269     | SINK of {}     | SINK of {}
270     | PHI of {}     | PHI of {}
271       and instruction =
272         LIVE of {regs: C.cellset, spilled: C.cellset}
273       | KILL of {regs: C.cellset, spilled: C.cellset}
274       | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
275       | ANNOTATION of {i:instruction, a:Annotations.annotation}
276       | INSTR of instr
277       val loadi : {li:loadi, r:CellsBasis.cell, i:operand, t:CellsBasis.cell,
278          mem:Region.region} -> instruction
279       val load : {l:load, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell,
280          mem:Region.region} -> instruction
281       val store : {st:store, b:CellsBasis.cell, d:operand, r:CellsBasis.cell,
282          mem:Region.region} -> instruction
283       val arith : {a:arith, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell} -> instruction
284       val arithi : {ai:arithi, i:operand, r:CellsBasis.cell, t:CellsBasis.cell} -> instruction
285       val comclr_ldo : {cc:bcond, r1:CellsBasis.cell, r2:CellsBasis.cell, t1:CellsBasis.cell,
286          i:int, b:CellsBasis.cell, t2:CellsBasis.cell} -> instruction
287       val comiclr_ldo : {cc:bcond, i1:operand, r2:CellsBasis.cell, t1:CellsBasis.cell,
288          i2:int, b:CellsBasis.cell, t2:CellsBasis.cell} -> instruction
289       val shiftv : {sv:shiftv, r:CellsBasis.cell, len:int, t:CellsBasis.cell} -> instruction
290       val shift : {s:shift, r:CellsBasis.cell, p:int, len:int, t:CellsBasis.cell} -> instruction
291       val bcond : {cmp:cmp, bc:bcond, r1:CellsBasis.cell, r2:CellsBasis.cell,
292          n:bool, nop:bool, t:Label.label, f:Label.label} -> instruction
293       val bcondi : {cmpi:cmpi, bc:bcond, i:int, r2:CellsBasis.cell, n:bool, nop:bool,
294          t:Label.label, f:Label.label} -> instruction
295       val bb : {bc:bitcond, r:CellsBasis.cell, p:int, n:bool, nop:bool, t:Label.label,
296          f:Label.label} -> instruction
297       val b : {lab:Label.label, n:bool} -> instruction
298       val longjump : {lab:Label.label, n:bool, tmp:CellsBasis.cell, tmpLab:Label.label} -> instruction
299       val be : {b:CellsBasis.cell, d:operand, sr:int, n:bool, labs:Label.label list} -> instruction
300       val bv : {x:CellsBasis.cell, b:CellsBasis.cell, labs:Label.label list, n:bool} -> instruction
301       val blr : {x:CellsBasis.cell, t:CellsBasis.cell, labs:Label.label list,
302          n:bool} -> instruction
303       val bl : {lab:Label.label, t:CellsBasis.cell, defs:C.cellset, uses:C.cellset,
304          cutsTo:Label.label list, mem:Region.region, n:bool} -> instruction
305       val ble : {d:operand, b:CellsBasis.cell, sr:int, t:CellsBasis.cell, defs:C.cellset,
306          uses:C.cellset, cutsTo:Label.label list, mem:Region.region} -> instruction
307       val ldil : {i:operand, t:CellsBasis.cell} -> instruction
308       val ldo : {i:operand, b:CellsBasis.cell, t:CellsBasis.cell} -> instruction
309       val mtctl : {r:CellsBasis.cell, t:CellsBasis.cell} -> instruction
310       val fstore : {fst:fstore, b:CellsBasis.cell, d:int, r:CellsBasis.cell, mem:Region.region} -> instruction
311       val fstorex : {fstx:fstorex, b:CellsBasis.cell, x:CellsBasis.cell, r:CellsBasis.cell,
312          mem:Region.region} -> instruction
313       val fload : {fl:fload, b:CellsBasis.cell, d:int, t:CellsBasis.cell, mem:Region.region} -> instruction
314       val floadx : {flx:floadx, b:CellsBasis.cell, x:CellsBasis.cell, t:CellsBasis.cell,
315          mem:Region.region} -> instruction
316       val farith : {fa:farith, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell} -> instruction
317       val funary : {fu:funary, f:CellsBasis.cell, t:CellsBasis.cell} -> instruction
318       val fcnv : {fcnv:fcnv, f:CellsBasis.cell, t:CellsBasis.cell} -> instruction
319       val fbranch : {cc:fcond, fmt:fmt, f1:CellsBasis.cell, f2:CellsBasis.cell,
320          t:Label.label, f:Label.label, n:bool, long:bool} -> instruction
321       val break : {code1:int, code2:int} -> instruction
322       val nop : instruction
323       val copy : {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,
324          tmp:ea option} -> instruction
325       val fcopy : {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,
326          tmp:ea option} -> instruction
327       val source : {} -> instruction
328       val sink : {} -> instruction
329       val phi : {} -> instruction
330  end  end
331    
332  functor HppaInstr(T: MLTREE  functor HppaInstr(T: MLTREE
333                   ) : HPPAINSTR =                   ) : HPPAINSTR =
334  struct  struct
335     structure C = HppaCells     structure C = HppaCells
336       structure CB = CellsBasis
337     structure T = T     structure T = T
338     structure Region = T.Region     structure Region = T.Region
339     structure Constant = T.Constant     structure Constant = T.Constant
# Line 480  Line 540 
540       DISPea of CellsBasis.cell * operand       DISPea of CellsBasis.cell * operand
541     | INDXea of CellsBasis.cell * CellsBasis.cell     | INDXea of CellsBasis.cell * CellsBasis.cell
542     | INDXSCALEDea of CellsBasis.cell * CellsBasis.cell     | INDXSCALEDea of CellsBasis.cell * CellsBasis.cell
543     datatype instruction =     datatype instr =
544       LOADI of {li:loadi, r:CellsBasis.cell, i:operand, t:CellsBasis.cell, mem:Region.region}       LOADI of {li:loadi, r:CellsBasis.cell, i:operand, t:CellsBasis.cell, mem:Region.region}
545     | LOAD of {l:load, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell,     | LOAD of {l:load, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell,
546          mem:Region.region}          mem:Region.region}
# Line 528  Line 588 
588          tmp:ea option}          tmp:ea option}
589     | FCOPY of {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,     | FCOPY of {dst:(CellsBasis.cell) list, src:(CellsBasis.cell) list, impl:instruction list option ref,
590          tmp:ea option}          tmp:ea option}
    | ANNOTATION of {i:instruction, a:Annotations.annotation}  
591     | SOURCE of {}     | SOURCE of {}
592     | SINK of {}     | SINK of {}
593     | PHI of {}     | PHI of {}
594       and instruction =
595         LIVE of {regs: C.cellset, spilled: C.cellset}
596       | KILL of {regs: C.cellset, spilled: C.cellset}
597       | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
598       | ANNOTATION of {i:instruction, a:Annotations.annotation}
599       | INSTR of instr
600       val loadi = INSTR o LOADI
601       and load = INSTR o LOAD
602       and store = INSTR o STORE
603       and arith = INSTR o ARITH
604       and arithi = INSTR o ARITHI
605       and comclr_ldo = INSTR o COMCLR_LDO
606       and comiclr_ldo = INSTR o COMICLR_LDO
607       and shiftv = INSTR o SHIFTV
608       and shift = INSTR o SHIFT
609       and bcond = INSTR o BCOND
610       and bcondi = INSTR o BCONDI
611       and bb = INSTR o BB
612       and b = INSTR o B
613       and longjump = INSTR o LONGJUMP
614       and be = INSTR o BE
615       and bv = INSTR o BV
616       and blr = INSTR o BLR
617       and bl = INSTR o BL
618       and ble = INSTR o BLE
619       and ldil = INSTR o LDIL
620       and ldo = INSTR o LDO
621       and mtctl = INSTR o MTCTL
622       and fstore = INSTR o FSTORE
623       and fstorex = INSTR o FSTOREX
624       and fload = INSTR o FLOAD
625       and floadx = INSTR o FLOADX
626       and farith = INSTR o FARITH
627       and funary = INSTR o FUNARY
628       and fcnv = INSTR o FCNV
629       and fbranch = INSTR o FBRANCH
630       and break = INSTR o BREAK
631       and nop = INSTR NOP
632       and copy = INSTR o COPY
633       and fcopy = INSTR o FCOPY
634       and source = INSTR o SOURCE
635       and sink = INSTR o SINK
636       and phi = INSTR o PHI
637  end  end
638    

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