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 /MLRISC/trunk/amd64/instructions/amd64Props.sml
ViewVC logotype

Diff of /MLRISC/trunk/amd64/instructions/amd64Props.sml

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

revision 2782, Sat Sep 22 19:05:34 2007 UTC revision 2783, Sat Sep 22 21:58:59 2007 UTC
# Line 225  Line 225 
225                * do potentially it may define *and* use                * do potentially it may define *and* use
226                *)                *)
227               | I.CMOV {src, dst,...} => ([dst], operandAcc(src, [dst]))               | I.CMOV {src, dst,...} => ([dst], operandAcc(src, [dst]))
              | I.CMOVQ {src, dst,...} => ([dst], operandAcc(src, [dst]))  
228               | _ => ([], [])               | _ => ([], [])
229              (* end case *))              (* end case *))
230          in          in
# Line 296  Line 295 
295      (* determine the bit width of an instruction *)      (* determine the bit width of an instruction *)
296      fun szOfInstr instr = (case instr      fun szOfInstr instr = (case instr
297          of I.JCC _ => 32          of I.JCC _ => 32
298             (* NOTE: CMOV encodes operand length in its operands! *)
299             | I.CMOV {src=I.Direct (sz, _), ...} => sz
300           | I.MOVE {mvOp, ...} =>           | I.MOVE {mvOp, ...} =>
301             (case mvOp             (case mvOp
302               of ( I.MOVQ | I.MOVSWQ | I.MOVZWQ | I.MOVSBQ |               of ( I.MOVQ | I.MOVSWQ | I.MOVZWQ | I.MOVSBQ |
# Line 305  Line 306 
306                | I.MOVW => 16                | I.MOVW => 16
307                | I.MOVB => 8                | I.MOVB => 8
308             (* esac *))             (* esac *))
309           | ( I.CALL _ | I.LEAL _ | I.CMPL _ | I.TESTL _ | I.CMOV _ | I.MUL3 _ )           | ( I.CALL _ | I.LEAL _ | I.CMPL _ | I.TESTL _ | I.MUL3 _ )
310               => 32               => 32
311           | ( I.CALLQ _ | I.LEAQ _ | I.CMPQ _ | I.TESTQ _ | I.CMOVQ _ | I.MULQ3 _ )           | ( I.CALLQ _ | I.LEAQ _ | I.CMPQ _ | I.TESTQ _ | I.MULQ3 _ | I.CMOV _)
312               => 64               => 64
313           | ( I.CMPW _ | I.TESTW _ ) => 16           | ( I.CMPW _ | I.TESTW _ ) => 16
314           | ( I.CMPB _ | I.TESTB _ ) => 8           | ( I.CMPB _ | I.TESTB _ ) => 8

Legend:
Removed from v.2782  
changed lines
  Added in v.2783

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