summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorPaolo Capriotti <p.capriotti@gmail.com>2012-04-05 09:52:18 +0100
committerPaolo Capriotti <p.capriotti@gmail.com>2012-04-16 15:19:00 +0100
commit6dc22bfa9d0026c09abf94e44f04fb9e761d4e54 (patch)
tree29345b5e8523fb41bcbc1dc06d3fd10271fe0546 /compiler/codeGen
parente57d23d6f11c1262a096f2135e64a6a81d0ca938 (diff)
downloadhaskell-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