[Vm-dev] gcc -Wall -pedantic (was: sweep failed to find exact
end of memory)
tim Rowledge
tim at rowledge.org
Wed Apr 25 18:06:12 UTC 2007
On 25-Apr-07, at 9:48 AM, Andreas Raab wrote:
>
> A related issue: It bothers me greatly how complex all of this
> stuff has become. The whole 32/64bit conversion (oopForPointer:
> etc) and now pointer comparisons (no longer using < or >) makes me
> wonder of how sustainable this is. Even I can't recall all the
> rules that have to be followed to write clean 32/64/2GB barrier
> code. I wish we had a way of getting back to a set of simpler
> rules... any ideas anyone?
It's partly because of having the slang code runnable in the
simulator. All the oops are integers and so we obviously have to
convert them in the generated code if we want pointers. Would using
some of the CPointer etc classes help? It would mean changing the
simulator a bit to cope of course but if it means we can generate
better VM code it is probably worth it. It's a long time since the
basci code was written and it may be time to attempt a substantial
rewrite. Machines have changed a lot in 10 years. Perhaps the at-
cache isn't valuable anymore?
I have a feeling (not looked seriously at the code in ages, so excuse
vagueness) that some of the complexity also stems from the work to
support mixed 32 & 64 bitness. You can't just cast when you need to
add/subtract otBase or whatever. If this facility is not needed then
there may well be some simplifications possible.
tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Attitudes are contagious. Mine might kill you
More information about the Vm-dev
mailing list