ARM Linux Squeak (was "Linux on the Compaq iPAQ H3600")

Tim Rowledge tim at sumeru.stanford.edu
Thu Jun 29 17:18:35 UTC 2000


In message <395AF988.E142AAD5 at NetJam.ORG> you wrote:

> 	On my machine the problem is that there aren't ARM register definitions
> in sqGnu.h. In particular, the C compiler barfed at gnu-interp.c:4308,
> because the currentBytecode register (CB_REG) wasn't defined. Everything
> was groovy after I inserted the following just before sqGnu.h:125:
> 
> ***
> 
> #if defined(__arm__)
> # define IP_REG asm("%0")
> # define SP_REG asm("$1")
> # define CB_REG asm("$2")
I'm a little surprised that worked, but you can't argue with success. I
always used to just define them as nulls so the compiler wouldn't
squawk to loudly. I did experiment a little a looooong time ago with
actually using the global registers and it seemed to make very little
difference. The choice of register and the state of mind of the compiler
would probably be crucial to the effect; I remember when Eliot & manage
to persuade Acorn to add global registers to their compiler (in, um,
'88?) it immediately made BHH go 40% faster on the contemporary Acorn
machines. Of course, the ARM had no cache at all in those days, which
would make an even bigger difference.

tim

-- 
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Strange OpCodes: PBF: Pay Bus Fare





More information about the Squeak-dev mailing list