diff options
| author | Paolo Capriotti <p.capriotti@gmail.com> | 2012-04-05 09:52:18 +0100 |
|---|---|---|
| committer | Paolo Capriotti <p.capriotti@gmail.com> | 2012-04-16 15:19:00 +0100 |
| commit | 6dc22bfa9d0026c09abf94e44f04fb9e761d4e54 (patch) | |
| tree | 29345b5e8523fb41bcbc1dc06d3fd10271fe0546 /compiler/codeGen | |
| parent | e57d23d6f11c1262a096f2135e64a6a81d0ca938 (diff) | |
| download | haskell-6dc22bfa9d0026c09abf94e44f04fb9e761d4e54.tar.gz | |
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.
Diffstat (limited to 'compiler/codeGen')
0 files changed, 0 insertions, 0 deletions
