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/hppaShuffle.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/hppa/instructions/hppaShuffle.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 11  Line 11 
11    val zeroR = Option.valOf(C.zeroReg CB.GP)    val zeroR = Option.valOf(C.zeroReg CB.GP)
12    
13    fun move{src=I.Direct rs, dst=I.Direct rt} =    fun move{src=I.Direct rs, dst=I.Direct rt} =
14         [I.ARITH{a=I.OR, r1=rs, r2=zeroR, t=rt}]         [I.arith{a=I.OR, r1=rs, r2=zeroR, t=rt}]
15      | move{src=I.Displace{base, disp}, dst=I.Direct rt} =      | move{src=I.Displace{base, disp}, dst=I.Direct rt} =
16         [I.LOADI{li=I.LDW, r=base, i=I.IMMED disp, t=rt, mem=mem}]         [I.loadi{li=I.LDW, r=base, i=I.IMMED disp, t=rt, mem=mem}]
17      | move{src=I.Direct rs, dst=I.Displace{base, disp}} =      | move{src=I.Direct rs, dst=I.Displace{base, disp}} =
18         [I.STORE{st=I.STW, b=base, d=I.IMMED disp, r=rs, mem=mem}]         [I.store{st=I.STW, b=base, d=I.IMMED disp, r=rs, mem=mem}]
19      | move _ = error "move"      | move _ = error "move"
20    
21    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =    fun fmove{src=I.FDirect fs, dst=I.FDirect fd} =
22          [I.FUNARY{fu=I.FCPY_D, f=fs, t=fd}]          [I.funary{fu=I.FCPY_D, f=fs, t=fd}]
23      | fmove{src=I.Displace{base, disp}, dst=I.FDirect ft} = let      | fmove{src=I.Displace{base, disp}, dst=I.FDirect ft} = let
24          val tmp = I.C.newCell CB.GP ()          val tmp = I.C.newCell CB.GP ()
25        in        in
26          [I.LDO{i=I.IMMED disp, b=base, t=tmp},          [I.ldo{i=I.IMMED disp, b=base, t=tmp},
27           I.FLOADX{flx=I.FLDDX, b=tmp, x=zeroR, t=ft, mem=mem}]           I.floadx{flx=I.FLDDX, b=tmp, x=zeroR, t=ft, mem=mem}]
28        end        end
29      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp}} = let      | fmove{src=I.FDirect fs, dst=I.Displace{base, disp}} = let
30          val tmp = I.C.newCell CB.GP ()          val tmp = I.C.newCell CB.GP ()
31        in        in
32          [I.LDO{i=I.IMMED disp, b=base, t=tmp},          [I.ldo{i=I.IMMED disp, b=base, t=tmp},
33           I.FSTOREX{fstx=I.FSTDX, b=tmp, x=zeroR, r=fs, mem=mem}]           I.fstorex{fstx=I.FSTDX, b=tmp, x=zeroR, r=fs, mem=mem}]
34        end        end
35      | fmove _ = error "move"      | fmove _ = error "move"
36    

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