[commit: ghc] master: Support large SLIDE instructions. (6dc22bf)

Simon Peyton-Jones simonpj at microsoft.com
Wed Apr 18 11:09:12 CEST 2012


Paolo: 

Nice work.  This issue has been around a long time, and Simon tells me you have done a great job on it.  Thanks!

Simon

| -----Original Message-----
| From: cvs-ghc-bounces at haskell.org [mailto:cvs-ghc-bounces at haskell.org] On
| Behalf Of Paolo Capriotti
| Sent: 17 April 2012 19:04
| To: cvs-ghc at haskell.org
| Subject: [commit: ghc] master: Support large SLIDE instructions. (6dc22bf)
| 
| Repository : ssh://darcs.haskell.org//srv/darcs/ghc
| 
| On branch  : master
| 
| http://hackage.haskell.org/trac/ghc/changeset/6dc22bfa9d0026c09abf94e44f04fb9
| e761d4e54
| 
| >---------------------------------------------------------------
| 
| commit 6dc22bfa9d0026c09abf94e44f04fb9e761d4e54
| Author: Paolo Capriotti <p.capriotti at gmail.com>
| Date:   Thu Apr 5 09:52:18 2012 +0100
| 
|     Support large SLIDE instructions.
| 
|     The bytecode generator used to keep track of the stack depth with a
|     16-bit counter, which could overflow for very large BCOs, resulting in
|     incorrect bytecode.
| 
|     This commit switches to a word-sized counter, and eagerly panics
|     whenever an operand is too big, instead of truncating the result.
| 
|     This allows us to work around the 16-bit limitation in the case of SLIDE
|     instructions, since we can simply factor it into multiple SLIDEs with
|     smaller arguments.
| 
|  compiler/ghci/ByteCodeGen.lhs |  110 ++++++++++++++++++++++++---------------
| -
|  1 files changed, 66 insertions(+), 44 deletions(-)
| 
| 
| Diff suppressed because of size. To see it, use:
| 
|     git show 6dc22bfa9d0026c09abf94e44f04fb9e761d4e54
| 
| _______________________________________________
| Cvs-ghc mailing list
| Cvs-ghc at haskell.org
| http://www.haskell.org/mailman/listinfo/cvs-ghc





More information about the Cvs-ghc mailing list