|
|
|
--- !ditz.rubyforge.org,2008-03-06/issue
|
|
|
|
title: implement sanity limits for temp regs, constants, and inner funcs
|
|
|
|
desc: |-
|
|
|
|
The current compiler cannot handle temp reg or const overflows. For instance,
|
|
|
|
if a constant number is above 255, it cannot be used with the three operand
|
|
|
|
bytecode instructions but must be coerced into a temporary register first.
|
|
|
|
|
|
|
|
The first step is to ensure no overflows occur, i.e. the compiler refuses to
|
|
|
|
emit invalid code. Later, better constant / temporary register 8-bit overflow
|
|
|
|
handling can be implemented.
|
|
|
|
type: :task
|
|
|
|
component: duk
|
|
|
|
release: v0.2
|
|
|
|
reporter: sva <sami.vaarala@poplatek.fi>
|
|
|
|
status: :closed
|
|
|
|
disposition: :fixed
|
|
|
|
creation_time: 2013-02-26 12:47:20.878984 Z
|
|
|
|
references: []
|
|
|
|
|
|
|
|
id: 6f72bf0fef73cc5c4e4578ef439d0d2ae730d2a0
|
|
|
|
log_events:
|
|
|
|
- - 2013-02-26 12:48:13.690994 Z
|
|
|
|
- sva <sami.vaarala@poplatek.fi>
|
|
|
|
- created
|
|
|
|
- |-
|
|
|
|
Before this fix, test-dev-bug-const-overflow.js caused a valgrind caused
|
|
|
|
a (justified) valgrind whine, when constant numbers went over 8 bits and
|
|
|
|
caused invalid opcodes to be emitted (constant accesses are then confused
|
|
|
|
with register accesses).
|
|
|
|
- - 2013-02-26 14:03:39.192399 Z
|
|
|
|
- sva <sami.vaarala@poplatek.fi>
|
|
|
|
- closed with disposition fixed
|
|
|
|
- ""
|