limit check bug
Matthew Fluet
fluet@cs.cornell.edu
Wed, 13 Feb 2002 17:16:24 -0500 (EST)
> 1. If bytesAllocated <= LIMIT_SLOP, use
>
> frontier <= limit
>
> 2. Otherwise
>
> a. If the program doesn't use signals, use
>
> bytesAllocated <= (limit + LIMIT_SLOP) - frontier
>
> b If the program uses signals, use
>
> frontier <= limit
> and bytesAllocated <= (limit + LIMIT_SLOP) - frontier
>
> BTW, I will add a new field to gcState so that we have both limit and
> limit + LIMIT_SLOP available.
Looks fine to me; let me know if you want me to make the changes to the
x86-codgen. The (b) case will be a little tricky, because you have to
build your own if statements in assembly.
BTW, the x86-codegen does everything unsigned, as witnessed by the
AE,A,B,BE condition codes (instead of L,LE,GE,G).