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 410, Fri Sep 3 00:25:03 1999 UTC revision 411, Fri Sep 3 00:25:03 1999 UTC
# Line 4  Line 4 
4    
5    val mem=I.Region.memory    val mem=I.Region.memory
6    
7    type t = {regMap:int->int, temp:I.ea option, dst:int list, src:int list}    type t = {regmap:I.C.register->I.C.register, tmp:I.ea option,                             dst:I.C.register list, src:I.C.register list}
8    
9    fun error msg = MLRiscErrorMsg.impossible("PPCShuffle." ^ msg)    fun error msg = MLRiscErrorMsg.error("PPCShuffle",msg)
10    
11      (* WARNING: these move operators assume 32 bit addressing is used!
12       * Allen
13       *)
14    fun move{src=I.Direct rs, dst=I.Direct rd} =    fun move{src=I.Direct rs, dst=I.Direct rd} =
15          [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}]
16      | move{src=I.Direct rs, dst=I.Displace{base, disp}} =      | move{src=I.Direct rs, dst=I.Displace{base, disp}} =
17          [I.ST{sz=I.Word, rs=rs, ra=base, d=disp, mem=mem}]          [I.ST{st=I.STW, rs=rs, ra=base, d=disp, mem=mem}]
18      | move{src=I.Displace{base, disp}, dst=I.Direct rt} =      | move{src=I.Displace{base, disp}, dst=I.Direct rt} =
19          [I.L{sz=I.Word, rt=rt, ra=base, d=disp, mem=mem}]          [I.L{ld=I.LWZ, rt=rt, ra=base, d=disp, mem=mem}]
20      | move _ = error "move"      | move _ = error "move"
21    
22    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =
23          [I.FUNARY{oper=I.FMR, fb=fs, ft=fd, Rc=false}]          [I.FUNARY{oper=I.FMR, fb=fs, ft=fd, Rc=false}]
24      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp}} =      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp}} =
25          [I.ST{sz=I.Double, rs=fs, ra=base, d=disp, mem=mem}]          [I.STF{st=I.STFD, fs=fs, ra=base, d=disp, mem=mem}]
26      | fmove{src=I.Displace{base, disp}, dst=I.FDirect ft} =      | fmove{src=I.Displace{base, disp}, dst=I.FDirect ft} =
27          [I.L{sz=I.Double, rt=ft, ra=base, d=disp, mem=mem}]          [I.LF{ld=I.LFD, ft=ft, ra=base, d=disp, mem=mem}]
28      | fmove _ = error "fmove"      | fmove _ = error "fmove"
29    
30    val shuffle = Shuffle.shuffle {mvInstr=move, ea=I.Direct}    val shuffle = Shuffle.shuffle {mvInstr=move, ea=I.Direct}

Legend:
Removed from v.410  
changed lines
  Added in v.411

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