ARM GCC compiler issue

Tim Rowledge tim at sumeru.stanford.edu
Mon Feb 25 23:37:28 UTC 2002


"Ohshima, Yoshiki" <Yoshiki.Ohshima at disney.com> is claimed by the authorities to have written:

>   Hello,
> 
>   Thank you for everyone for the suggestions.
> 
>   I've created a separate .c file, which I call interp-f.c,
> for the following functions
> 
> 	double loadFloatOrIntFrom(int floatOrInt);
> 	int primitiveFloatAddtoArg(int rcvrOop, int argOop);
> 	int primitiveFloatDividebyArg(int rcvrOop, int argOop);
> 	int primitiveFloatEqualtoArg(int rcvrOop, int argOop);
> 	int primitiveFloatGreaterthanArg(int rcvrOop, int argOop);
> 	int primitiveFloatLessthanArg(int rcvrOop, int argOop);
> 	int primitiveFloatMultiplybyArg(int rcvrOop, int argOop);
> 	int primitiveFloatSubtractfromArg(int rcvrOop, int argOop);
Excellent idea. If you could zip it up with whichever .h files etc it
needs and send me a copy I can pass it on when discussing this bug with
People Who Seem To Know. Much quicker and simpler than the entire vm
codebase.


>   Then, I tried to replace "mvfd f4, f0" lines in assembly
> with "mov r0, r0" (the mnemonic in gcc generated asm is
> "mvfd").  The executable doesn't crash with "illegal
> instruction" but doesn't run correctly either.
This might be a case of changing too many instances of the movfd - I'm
guessing that some of them need to be there and others don't. 
The basic explanation that has been passed to me is that the FP emulator
is not properly setup when the instruction is issued and that the Acorn
FP code was able to cope by some miracle. Since then (about early last
year I think?) a 'new improved' FP emulator has been released that
doesn't work. So much for improved....

tim
-- 
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Strange OpCodes: FD: Failsafe Disarmed




More information about the Squeak-dev mailing list