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/sparc/instructions/sparcProps.sml
 [smlnj] / sml / trunk / src / MLRISC / sparc / instructions / sparcProps.sml

# Diff of /sml/trunk/src/MLRISC/sparc/instructions/sparcProps.sml

revision 1081, Thu Feb 21 15:28:03 2002 UTC revision 1082, Thu Feb 21 18:50:56 2002 UTC
# Line 1  Line 1
1    (* sparcProps.sml
2     *
3     * COPYRIGHT (c) 2002 Bell Labs, Lucent Technologies
4     *)
5
6  functor SparcProps  functor SparcProps
7    (structure SparcInstr : SPARCINSTR    (structure SparcInstr : SPARCINSTR
8     structure MLTreeEval : MLTREE_EVAL where T = SparcInstr.T     structure MLTreeEval : MLTREE_EVAL where T = SparcInstr.T
# Line 123  Line 128
128    fun revP I.PT = I.PN    fun revP I.PT = I.PN
129      | revP I.PN = I.PT      | revP I.PN = I.PT
130
131    fun negateConditional(I.INSTR(I.Bicc{b,a,label,nop})) =    fun negateConditional (I.INSTR(I.Bicc{b,a,nop,...}), lab) =
132           I.bicc{b=revCond b,a=a,label=label,nop=nop}           I.bicc{b=revCond b,a=a,label=lab,nop=nop}
133      | negateConditional(I.INSTR(I.FBfcc{b,a,label,nop})) =      | negateConditional (I.INSTR(I.FBfcc{b,a,nop,...}), lab) =
134           I.fbfcc{b=revFcond b,a=a,label=label,nop=nop}           I.fbfcc{b=revFcond b,a=a,label=lab,nop=nop}
135      | negateConditional(I.INSTR(I.BR{p,r,rcond,a,label,nop})) =      | negateConditional (I.INSTR(I.BR{p,r,rcond,a,nop,...}), lab) =
136           I.br{p=revP p,a=a,r=r,rcond=revRcond rcond,label=label,nop=nop}           I.br{p=revP p,a=a,r=r,rcond=revRcond rcond,label=lab,nop=nop}
137      | negateConditional(I.INSTR(I.BP{b,cc,p,a,label,nop})) =      | negateConditional (I.INSTR(I.BP{b,cc,p,a,nop,...}), lab) =
138           I.bp{p=revP p,a=a,b=revCond b,cc=cc,label=label,nop=nop}           I.bp{p=revP p,a=a,b=revCond b,cc=cc,label=lab,nop=nop}
139      | negateConditional(I.ANNOTATION{i,a}) =      | negateConditional (I.ANNOTATION{i,a}, lab) =
140           I.ANNOTATION{i=negateConditional i,a=a}           I.ANNOTATION{i=negateConditional(i, lab), a=a}
141      | negateConditional _ = raise NegateConditional      | negateConditional _ = raise NegateConditional
142
143    fun jump label = I.bicc{b=I.BA,a=true,label=label,nop=true}    fun jump label = I.bicc{b=I.BA,a=true,label=label,nop=true}

Legend:
 Removed from v.1081 changed lines Added in v.1082