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/SMLNJ/src/MLRISC/x86/instructions/x86Props.sml
ViewVC logotype

Diff of /sml/branches/SMLNJ/src/MLRISC/x86/instructions/x86Props.sml

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

revision 411, Fri Sep 3 00:25:03 1999 UTC revision 429, Wed Sep 8 09:47:00 1999 UTC
# Line 56  Line 56 
56    *=====================================================================*)    *=====================================================================*)
57    fun branchTargets(I.JMP(_, [])) = [ESCAPES]    fun branchTargets(I.JMP(_, [])) = [ESCAPES]
58      | branchTargets(I.JMP(_, labs)) = map LABELLED labs      | branchTargets(I.JMP(_, labs)) = map LABELLED labs
59        | branchTargets(I.RET _) = [ESCAPES]
60      | branchTargets(I.JCC{opnd=I.ImmedLabel(LE.LABEL(lab)), ...}) =      | branchTargets(I.JCC{opnd=I.ImmedLabel(LE.LABEL(lab)), ...}) =
61          [FALLTHROUGH, LABELLED lab]          [FALLTHROUGH, LABELLED lab]
62      | branchTargets(I.ANNOTATION{i,...}) = branchTargets i      | branchTargets(I.ANNOTATION{i,...}) = branchTargets i
# Line 64  Line 65 
65    fun jump label = I.JMP (I.ImmedLabel(LE.LABEL label), [label])    fun jump label = I.JMP (I.ImmedLabel(LE.LABEL label), [label])
66    
67    exception NotImplemented    exception NotImplemented
68    fun setTargets _ = raise NotImplemented    fun setTargets(I.JMP(I.ImmedLabel _,_),[l]) = jump l
69        | setTargets(I.JMP(opnd,_),_) = error "setTargets"
70        | setTargets(I.JCC{cond,opnd=I.ImmedLabel _},[f,t]) =
71            I.JCC{cond=cond,opnd=I.ImmedLabel(LE.LABEL t)}
72        | setTargets(I.JCC _,_) = error "setTargets"
73        | setTargets(I.ANNOTATION{i,a},l) = I.ANNOTATION{i=setTargets(i,l),a=a}
74        | setTargets(i,_) = i
75    fun negateConditional _ = raise NotImplemented    fun negateConditional _ = raise NotImplemented
76    
77    val immedRange={lo= ~1073741824, hi=1073741823}    val immedRange={lo= ~1073741824, hi=1073741823}
# Line 152  Line 159 
159        | I.FBINARY{src, ...}   => ([], operandUse src)        | I.FBINARY{src, ...}   => ([], operandUse src)
160        | I.FNSTSW              => ([C.eax], [])        | I.FNSTSW              => ([C.eax], [])
161        | I.SAHF                => ([], [C.eax])        | I.SAHF                => ([], [C.eax])
162          | I.ANNOTATION{a=BasicAnnotations.DEFUSER(d,u),...} => (d,u)
163        | I.ANNOTATION{i,...}   => defUseR i        | I.ANNOTATION{i,...}   => defUseR i
164        | _                     => ([], [])        | _                     => ([], [])
165    end (* defUseR *)    end (* defUseR *)
# Line 167  Line 175 
175        | I.FBINARY{dst, src, ...}=> (operand dst, operand dst @ operand src)        | I.FBINARY{dst, src, ...}=> (operand dst, operand dst @ operand src)
176        | I.FCOPY{dst, src, tmp=SOME(I.FDirect f), ...}  => (f::dst, src)        | I.FCOPY{dst, src, tmp=SOME(I.FDirect f), ...}  => (f::dst, src)
177        | I.FCOPY{dst, src, ...}  => (dst, src)        | I.FCOPY{dst, src, ...}  => (dst, src)
178          | I.ANNOTATION{a=BasicAnnotations.DEFUSEF(d,u),...} => (d,u)
179        | I.ANNOTATION{i,...}   => defUseF i        | I.ANNOTATION{i,...}   => defUseF i
180        | _  => ([], [])        | _  => ([], [])
181    end    end

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

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