Excuse me, i'm not good programming in c. A double is 8 bytes width. How does a function return anything other than 4 bytes (in eax register) if not in a pointer? I'm using sqlite from assembler.
It depends upon which CPU and calling convention you (and your compiler) are using.
For a Windows PC of recent vintage (with a 486 or newer CPU) a double would normally be returned in the floating point registers.
Since you are programming in assembler, I would guess that you are using some other type of CPU. You must have a C compiler to compile the SQLite source, so it should have a manual that explains its function calling conventions (i.e. which registers or stack areas are used for arguments and return values, which registers are preserved across function calls etc...).
If you can tell us what CPU and compiler you are using, we may be able to help.
Dennis Cote