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/branches/idlbasis-devel/src/MLRISC/alpha/instructions/alphaShuffle.sml
ViewVC logotype

Diff of /sml/branches/idlbasis-devel/src/MLRISC/alpha/instructions/alphaShuffle.sml

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

revision 1231, Mon Jun 3 18:32:08 2002 UTC revision 1232, Tue Jun 4 21:11:15 2002 UTC
# Line 4  Line 4 
4    
5    type t = {tmp:I.ea option, dst:CellsBasis.cell list, src:CellsBasis.cell list}    type t = {tmp:I.ea option, dst:CellsBasis.cell list, src:CellsBasis.cell list}
6    
   val mem=I.Region.memory  
   
7    val zeroR = I.REGop(Option.valOf(I.C.zeroReg CellsBasis.GP))    val zeroR = I.REGop(Option.valOf(I.C.zeroReg CellsBasis.GP))
8    
9    fun move{src=I.Direct rs, dst=I.Direct rd} =    fun move{src=I.Direct rs, dst=I.Direct rd} =
10          [I.OPERATE{oper=I.BIS, ra=rs, rb=zeroR, rc=rd}]          [I.operate{oper=I.BIS, ra=rs, rb=zeroR, rc=rd}]
11      | move{src=I.Direct rs, dst=I.Displace{base, disp}} =      | move{src=I.Direct rs, dst=I.Displace{base, disp, mem}} =
12          [I.STORE{stOp=I.STL, r=rs, b=base, d=I.IMMop disp, mem=mem}]          [I.store{stOp=I.STL, r=rs, b=base, d=I.LABop disp, mem=mem}]
13      | move{src=I.Displace{base, disp}, dst=I.Direct rt} =      | move{src=I.Displace{base, disp, mem}, dst=I.Direct rt} =
14          [I.LOAD{ldOp=I.LDL, r=rt, b=base, d=I.IMMop disp, mem=mem}]          [I.load{ldOp=I.LDL, r=rt, b=base, d=I.LABop disp, mem=mem}]
15    
16    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =
17          [I.FOPERATE{oper=I.CPYS, fa=fs, fb=fs, fc=fd}]          [I.foperate{oper=I.CPYS, fa=fs, fb=fs, fc=fd}]
18      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp}} =      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp, mem}} =
19          [I.FSTORE{stOp=I.STT, r=fs, b=base, d=I.IMMop disp, mem=mem}]          [I.fstore{stOp=I.STT, r=fs, b=base, d=I.LABop disp, mem=mem}]
20      | fmove{src=I.Displace{base, disp}, dst=I.FDirect ft} =      | fmove{src=I.Displace{base, disp, mem}, dst=I.FDirect ft} =
21          [I.FLOAD{ldOp=I.LDT, r=ft, b=base, d=I.IMMop disp, mem=mem}]          [I.fload{ldOp=I.LDT, r=ft, b=base, d=I.LABop disp, mem=mem}]
22    
23    val shuffle = Shuffle.shuffle {mvInstr=move, ea=I.Direct}    val shuffle = Shuffle.shuffle {mvInstr=move, ea=I.Direct}
24    

Legend:
Removed from v.1231  
changed lines
  Added in v.1232

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