Board index » cppbuilder » private floatingpoint routines

private floatingpoint routines


2006-01-19 07:10:45 PM
cppbuilder18
Hi,
I wrote my own floating point routines, due to that the emulation library of
borland C5.02 is not useable on my embedded system (SC13 of beck-ipc)
running multiply tasks. it works fine but when i set de compiler to "no
floating point" i get the error;
Error: (1,1):Undefined symbol FIDRQQ in module common\fpsingle.c
Error: (1,1):Undefined symbol FIWRQQ in module common\fpsingle.c
In my functions the float is infact a dword, for convertting the float
datatype to dword i use memcpy(), i expect that FIDRQQ() and FIWRQQ() are
specific to the float datatype.
1. Where are the functions for ?
2. Can i create emulation functions for these two ?
3. And how do i do this ?, or is there some example code for it ?
Kind regards,
Marc Bertens
 
 

Re:private floatingpoint routines

Marc Bertens wrote:
Quote
when i set de compiler to "no floating point" i get the error;
Error: (1,1):Undefined symbol FIDRQQ in module common\fpsingle.c
In case you haven't seen these...
vmlinux.org/~jakov/community.borland.com/16618.html
Quote
Error: (1,1):Undefined symbol FIWRQQ in module common\fpsingle.c
vmlinux.org/~jakov/community.borland.com/18001.html
Further Google-ing shows FP_init.asm code where those values are
defined for _Emu_ which is set opposite of FP87
public FIDRQQ ; wait, esc
public FIARQQ ; wait, DS:
public FICRQQ ; wait, CS:
public FIERQQ ; wait, ES:
public FISRQQ ; wait, SS:
public FIWRQQ ; nop, wait
public FJARQQ ; Esc nn ->DS:nn
public FJCRQQ ; Esc nn ->CS:nn
public FJSRQQ ; Esc nn ->ES:nn
; Use full emulator if _Emu_ is true.
if _Emu_
FIDRQQ equ 05C32h
FIARQQ equ 0FE32h
FICRQQ equ 00E32h
FIERQQ equ 01632h
FISRQQ equ 00632h
FIWRQQ equ 0A23Dh
FJARQQ equ 04000h
FJCRQQ equ 0C000h
FJSRQQ equ 08000h
else
FIDRQQ equ 00000h
FIARQQ equ 00000h
FICRQQ equ 00000h
FIERQQ equ 00000h
FISRQQ equ 00000h
FIWRQQ equ 00000h
FJARQQ equ 00000h
FJCRQQ equ 00000h
FJSRQQ equ 00000h
endif
So it looks like the FIxxQQ are waits for the FP to complete.