[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 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