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/ppc/instructions/ppcShuffle.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/ppc/instructions/ppcShuffle.sml

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

revision 1032, Tue Jan 22 16:59:16 2002 UTC revision 1033, Thu Jan 24 05:45:18 2002 UTC
# Line 2  Line 2 
2    structure I = I    structure I = I
3    structure Shuffle = Shuffle(I)    structure Shuffle = Shuffle(I)
4    
   val mem=I.Region.memory  
   
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    
7    fun error msg = MLRiscErrorMsg.error("PPCShuffle",msg)    fun error msg = MLRiscErrorMsg.error("PPCShuffle",msg)
# Line 13  Line 11 
11     *)     *)
12    fun move{src=I.Direct rs, dst=I.Direct rd} =    fun move{src=I.Direct rs, dst=I.Direct rd} =
13          [I.arith{oper=I.OR, rt=rd, ra=rs, rb=rs, Rc=false, OE=false}]          [I.arith{oper=I.OR, rt=rd, ra=rs, rb=rs, Rc=false, OE=false}]
14      | move{src=I.Direct rs, dst=I.Displace{base, disp}} =      | move{src=I.Direct rs, dst=I.Displace{base, disp, mem}} =
15          [I.st{st=I.STW, rs=rs, ra=base, d=disp, mem=mem}]          [I.st{st=I.STW, rs=rs, ra=base, d=I.LabelOp disp, mem=mem}]
16      | move{src=I.Displace{base, disp}, dst=I.Direct rt} =      | move{src=I.Displace{base, disp, mem}, dst=I.Direct rt} =
17          [I.l{ld=I.LWZ, rt=rt, ra=base, d=disp, mem=mem}]          [I.l{ld=I.LWZ, rt=rt, ra=base, d=I.LabelOp disp, mem=mem}]
18      | move _ = error "move"      | move _ = error "move"
19    
20    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =
21          [I.funary{oper=I.FMR, fb=fs, ft=fd, Rc=false}]          [I.funary{oper=I.FMR, fb=fs, ft=fd, Rc=false}]
22      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp}} =      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp, mem}} =
23          [I.stf{st=I.STFD, fs=fs, ra=base, d=disp, mem=mem}]          [I.stf{st=I.STFD, fs=fs, ra=base, d=I.LabelOp disp, mem=mem}]
24      | fmove{src=I.Displace{base, disp}, dst=I.FDirect ft} =      | fmove{src=I.Displace{base, disp, mem}, dst=I.FDirect ft} =
25          [I.lf{ld=I.LFD, ft=ft, ra=base, d=disp, mem=mem}]          [I.lf{ld=I.LFD, ft=ft, ra=base, d=I.LabelOp disp, mem=mem}]
26      | fmove _ = error "fmove"      | fmove _ = error "fmove"
27    
28    val shuffle = Shuffle.shuffle {mvInstr=move, ea=I.Direct}    val shuffle = Shuffle.shuffle {mvInstr=move, ea=I.Direct}

Legend:
Removed from v.1032  
changed lines
  Added in v.1033

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