Stephen Williams <[EMAIL PROTECTED]> writes: > This has nothing to do with sign. The real problem here, now that I > look at it, is that there is apparently an 'x' or 'z' in a constant > memory address vector.
[EMAIL PROTECTED] said: > The %ix/load loads a negative memory index (-4). The actual memory > reference is supposed to yield 4'hx, since there is no mem[1]. This > is all correct, except that the vvp parser does not like negative > integers. I see your point. However, your workaround of changing unsigned longs to unsigned int is not really a fix. I see some potential issues here: 1) Thread index registers can hold *signed*long* values. However, 2) memory addresses are normalized and cannot be <0. In this case, it seems to me that the proper solution is to notice that the *constant* index is outside the range of the memory and elide the memory access completely. This fixes the problem *and* improves the performance of the generated code. There may come a time when the vvp parser needs to learn about signed numbers, at least for loading index registers, but this bug can be handled better without that sort of change. -- Steve Williams "The woods are lovely, dark and deep. steve at icarus.com But I have promises to keep, steve at picturel.com and lines to code before I sleep, http://www.picturel.com And lines to code before I sleep."
