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

Diff of /sml/trunk/src/MLRISC/x86/instructions/x86Props.sml

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

revision 795, Fri Mar 2 19:10:50 2001 UTC revision 796, Tue Mar 6 00:04:33 2001 UTC
# Line 15  Line 15 
15    fun error msg = MLRiscErrorMsg.error("X86Props",msg)    fun error msg = MLRiscErrorMsg.error("X86Props",msg)
16    
17    datatype kind = IK_JUMP | IK_NOP | IK_INSTR | IK_COPY | IK_CALL    datatype kind = IK_JUMP | IK_NOP | IK_INSTR | IK_COPY | IK_CALL
18                  | IK_PHI | IK_SOURCE | IK_SINK                  | IK_CALL_WITH_CUTS | IK_PHI | IK_SOURCE | IK_SINK
19    datatype target = LABELLED of Label.label | FALLTHROUGH | ESCAPES    datatype target = LABELLED of Label.label | FALLTHROUGH | ESCAPES
20   (*========================================================================   (*========================================================================
21    *  Instruction Kinds    *  Instruction Kinds
# Line 24  Line 24 
24      | instrKind (I.JCC _) = IK_JUMP      | instrKind (I.JCC _) = IK_JUMP
25      | instrKind (I.COPY _) = IK_COPY      | instrKind (I.COPY _) = IK_COPY
26      | instrKind (I.FCOPY _) = IK_COPY      | instrKind (I.FCOPY _) = IK_COPY
27        | instrKind (I.CALL{cutsTo=_::_,...}) = IK_CALL_WITH_CUTS
28      | instrKind (I.CALL _) = IK_CALL      | instrKind (I.CALL _) = IK_CALL
29      | instrKind (I.PHI _)    = IK_PHI      | instrKind (I.PHI _)    = IK_PHI
30      | instrKind (I.SOURCE _) = IK_SOURCE      | instrKind (I.SOURCE _) = IK_SOURCE
# Line 75  Line 76 
76      | branchTargets(I.RET _) = [ESCAPES]      | branchTargets(I.RET _) = [ESCAPES]
77      | branchTargets(I.JCC{opnd=I.ImmedLabel(T.LABEL(lab)), ...}) =      | branchTargets(I.JCC{opnd=I.ImmedLabel(T.LABEL(lab)), ...}) =
78          [FALLTHROUGH, LABELLED lab]          [FALLTHROUGH, LABELLED lab]
79        | branchTargets(I.CALL{cutsTo, ...}) = FALLTHROUGH :: map LABELLED cutsTo
80      | branchTargets(I.ANNOTATION{i,...}) = branchTargets i      | branchTargets(I.ANNOTATION{i,...}) = branchTargets i
81      | branchTargets _ = error "branchTargets"      | branchTargets _ = error "branchTargets"
82    
# Line 170  Line 172 
172      case instr      case instr
173       of I.JMP(opnd, _)        => ([], operandUse opnd)       of I.JMP(opnd, _)        => ([], operandUse opnd)
174        | I.JCC{opnd, ...}      => ([], operandUse opnd)        | I.JCC{opnd, ...}      => ([], operandUse opnd)
175        | I.CALL(opnd,defs,uses,_)=>        | I.CALL{opnd,defs,uses,...} =>
176             (C.getReg defs, operandAcc(opnd, C.getReg uses))             (C.getReg defs, operandAcc(opnd, C.getReg uses))
177        | I.MOVE{src, dst=I.Direct r, ...} => ([r], operandUse src)        | I.MOVE{src, dst=I.Direct r, ...} => ([r], operandUse src)
178        | I.MOVE{src, dst=I.MemReg r, ...} => ([r], operandUse src)        | I.MOVE{src, dst=I.MemReg r, ...} => ([r], operandUse src)
# Line 261  Line 263 
263        | I.FLDS opnd             => ([], operand opnd)        | I.FLDS opnd             => ([], operand opnd)
264        | I.FUCOM opnd            => ([], operand opnd)        | I.FUCOM opnd            => ([], operand opnd)
265        | I.FUCOMP opnd           => ([], operand opnd)        | I.FUCOMP opnd           => ([], operand opnd)
266        | I.CALL(_, defs, uses,_) => (C.getFreg defs, C.getFreg uses)        | I.CALL{defs, uses, ...} => (C.getFreg defs, C.getFreg uses)
267        | I.FBINARY{dst, src, ...}=> (operand dst, operand dst @ operand src)        | I.FBINARY{dst, src, ...}=> (operand dst, operand dst @ operand src)
268        | I.FCOPY{dst, src, tmp=SOME(I.FDirect f), ...}  => (f::dst, src)        | I.FCOPY{dst, src, tmp=SOME(I.FDirect f), ...}  => (f::dst, src)
269        | I.FCOPY{dst, src, tmp=SOME(I.FPR f), ...}  => (f::dst, src)        | I.FCOPY{dst, src, tmp=SOME(I.FPR f), ...}  => (f::dst, src)

Legend:
Removed from v.795  
changed lines
  Added in v.796

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