Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Tracker SCM

SCM Repository

[smlnj] Diff of /sml/trunk/src/MLRISC/x86/c-calls/ia32-svid.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/x86/c-calls/ia32-svid.sml

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

revision 1333, Thu May 22 17:12:13 2003 UTC revision 1334, Thu May 22 22:46:30 2003 UTC
# Line 138  Line 138 
138      fun fstp (32, f) = T.EXT(ix(IX.FSTPS(f)))      fun fstp (32, f) = T.EXT(ix(IX.FSTPS(f)))
139        | fstp (64, f) = T.EXT(ix(IX.FSTPL(f)))        | fstp (64, f) = T.EXT(ix(IX.FSTPL(f)))
140        | fstp (80, f) = T.EXT(ix(IX.FSTPT(f)))        | fstp (80, f) = T.EXT(ix(IX.FSTPT(f)))
141          | fstp (sz, f) = error ("fstp(" ^ Int.toString sz ^ ",_)")
142    
143    (* Copy (result) registers into fresh temporaries *)    (* Copy (result) registers into fresh temporaries *)
144      fun copyOut([], results, stmts) = (results, stmts)      fun copyOut([], results, stmts) = (results, stmts)
# Line 206  Line 207 
207                    case Word.andb(Word.fromInt sz, 0w1)                    case Word.andb(Word.fromInt sz, 0w1)
208                     of 0w0 => stmts                     of 0w0 => stmts
209                      | 0w1 => bumpSp(1)::stmts                      | 0w1 => bumpSp(1)::stmts
210                        | _ => error ("pad16: sz=" ^ Int.toString sz)
211                    (*esac*)                    (*esac*)
212                  end                  end
213                  fun mkStructArgs(fields, rexp) = let                  fun mkStructArgs(fields, rexp) = let
# Line 274  Line 276 
276                                 of 32 => fst32(fexp)                                 of 32 => fst32(fexp)
277                                  | 64 => fst64(fexp)                                  | 64 => fst64(fexp)
278                                  | 80 => fst80(fexp)                                  | 80 => fst80(fexp)
279                                    | _ => error ("pushf: sz=" ^ Int.toString sz)
280                                 (*esac*)) @ stmts                                 (*esac*)) @ stmts
281                              fun pushb (rexp) = cont(PUSHB(rexp, stmts))                              fun pushb (rexp) = cont(PUSHB(rexp, stmts))
282                              fun pushw (rexp) = cont(PUSHW(rexp, stmts))                              fun pushw (rexp) = cont(PUSHW(rexp, stmts))
# Line 304  Line 307 
307                                   end                                   end
308                               | (Ty.C_STRUCT fields, ARGS rexps) =>                               | (Ty.C_STRUCT fields, ARGS rexps) =>
309                                    cont(pushStruct(fields, rexps, stmts))                                    cont(pushStruct(fields, rexps, stmts))
310                            end (* pushStruct *)                               | _ => error "pushStruct: ty<->arg mismatch"
311                              end
312                            | pushStruct (([], _::_, _) | (_::_, [], _)) =
313                                error "pushStruct"
314                        in                        in
315                          pushArgs(r1, r2,                          pushArgs(r1, r2,
316                            pad16(fields, pushStruct(fields, args, stmts)))                            pad16(fields, pushStruct(fields, args, stmts)))
# Line 361  Line 367 
367                  fun pad16 bytes = (case Word.andb(Word.fromInt sz, 0w1)                  fun pad16 bytes = (case Word.andb(Word.fromInt sz, 0w1)
368                         of 0w0 => sz                         of 0w0 => sz
369                          | 0w1 => sz+1                          | 0w1 => sz+1
370                            | _ => error ("argSz: " ^ Int.toString sz)
371                        (* end case *))                        (* end case *))
372                  in                  in
373                    pad16 sz + argsSz(rest)                    pad16 sz + argsSz(rest)

Legend:
Removed from v.1333  
changed lines
  Added in v.1334

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