Context switching for VFP registers on Cortex-A8 board.

Thomas Kim at
Tue Dec 2 10:29:33 UTC 2014

Dear Sir,

I attached memcpy() object dump file in cxx_throw.exe.

As I check disassembly code of memcpy, register {d0-d7} are used for vst or
vld instruction.

Therefore, I am guessing VFP registers' range for context switching is not
{d8-d15}, but, {d0-d7}.

Please advise me.

Best Regards,
Thomas Kim

2014-12-02 19:16 GMT+09:00 Thomas Kim < at>:

> Dear  Sir.
> I completed to port RTEMS on Cortex-A8 board using below option.
>   CPU_CFLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon
> -mfloat-abi=softfp
> At this time, RTEMS sample example(ticker.exe) is working very well.
> Because there is a problem for executing C++ exception example using
> "-mfloat-abi=softfp", I changed below option.
>   CPU_CFLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard
> After I rebuild RTEMS using "-mfloat-abi=hard", I am tring to test both
> ticker.exe and cxx_throw.exe.
> But, both examples are crashed in mount() function of
> rtems_filesystem_initialize().
> In detailly, memcpy() of alloc_mount_table_entry() is called, exception is
> ocurred.
> I am guessing that the context switching for NEON/VFP registers by thread
> dispatcher is not correct.
> As I know in current RTEMS source,NEON/VFP registers({d8-d15}  only) are
> saved and restored.
> Is it correct feature ?
> Best Regards,
> Thomas Kim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cxx_throw.dump
Type: application/octet-stream
Size: 13720 bytes
Desc: not available
URL: <>

More information about the users mailing list