Issue created by Sebastian Huber: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5770



The TX3904 carries the R3900 core, which has no coprocessor 1. The ABI
flags of the BSP name the processor and leave the floating point ABI at
the default of the compiler, which is hard float. The start code writes
a pattern to two floating point registers and reads it back. It clears
the coprocessor enable when the read-back fails. So the BSP detects the
absence of the unit at run time and builds as if the unit were there.

Every floating point operation of an executable therefore needs an
instruction which the processor does not carry. `_CPU_Context_switch()`
stores twelve of them on every switch. The GDB simulator executes the
instruction whatever the board option, so the test suite passes.

`-msoft-float` is the fix, and the compiler carries a soft float
multilib for this ISA level. The change is not free. It adds four
failures to the release build of the BSP. `psxfenv01` fails because the
C library leaves the floating point environment unimplemented, and
`dl07`, `dl08` and `dl09` report 80 unresolved symbols, because the
loadable object needs the soft float helpers of the compiler runtime.
Both of them need a decision of their own, so this issue stays open.

Found by the specification driven validation of the context switch. The
floating point checks of it report nothing on this BSP, because the
exception path stores no floating point register while the coprocessor
enable is clear. This description was created with Claude Code
assistance.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5770
You're receiving this email because of your account on gitlab.rtems.org. 
Unsubscribe from this thread: 
https://gitlab.rtems.org/-/namespace/49/sent_notifications/5-5tcaksxvztj5lbitu7t0sezmv-1d/unsubscribe
 | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | 
Help: https://gitlab.rtems.org/help


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to