1. 28 Sep, 2009 1 commit
  2. 26 Sep, 2009 1 commit
  3. 29 Sep, 2009 1 commit
  4. 28 Sep, 2009 1 commit
  5. 27 Sep, 2009 5 commits
  6. 28 Sep, 2009 2 commits
    • Simon Marlow's avatar
      emitRetUT: cope with arguments overlapping with results (#3546) · fd274ffd
      Simon Marlow authored
      In decodeFloat_Int# we have the C-- code:
      
          mp_tmp1  = Sp - WDS(1);
          mp_tmp_w = Sp - WDS(2);
          
          /* arguments: F1 = Float# */
          arg = F1;
          
          /* Perform the operation */
          foreign "C" __decodeFloat_Int(mp_tmp1 "ptr", mp_tmp_w "ptr", arg) [];
          
          /* returns: (Int# (mantissa), Int# (exponent)) */
          RET_NN(W_[mp_tmp1], W_[mp_tmp_w]);
      
      Which all looks quite reasonable.  The problem is that RET_NN() might
      assign the results to the stack (with an unregisterised back end), and
      in this case the arguments to RET_NN() refer to the same stack slots
      that will be assigned to.
      
      The code generator should do the right thing here, but it wasn't - it
      was assuming that it could assign the results sequentially.  A 1-line
      fix to use emitSimultaneously rather than emitStmts (plus comments).
      fd274ffd
    • Simon Marlow's avatar
      b07f975a
  7. 25 Sep, 2009 1 commit
    • Simon Marlow's avatar
      Add a way to generate tracing events programmatically · 5407ad8e
      Simon Marlow authored
      added:
      
       primop  TraceEventOp "traceEvent#" GenPrimOp
         Addr# -> State# s -> State# s
         { Emits an event via the RTS tracing framework.  The contents
           of the event is the zero-terminated byte string passed as the first
           argument.  The event will be emitted either to the .eventlog file,
           or to stderr, depending on the runtime RTS flags. }
      
      and added the required RTS functionality to support it.  Also a bit of
      refactoring in the RTS tracing code.
      5407ad8e
  8. 27 Sep, 2009 1 commit
  9. 25 Sep, 2009 1 commit
  10. 27 Sep, 2009 3 commits
  11. 26 Sep, 2009 1 commit
  12. 24 Sep, 2009 1 commit
  13. 21 Sep, 2009 1 commit
  14. 24 Sep, 2009 2 commits
  15. 23 Sep, 2009 8 commits
  16. 20 Sep, 2009 1 commit
  17. 22 Sep, 2009 3 commits
  18. 21 Sep, 2009 6 commits