This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
ARM, Maverick Crunch and C++ exceptions
- From: wojciech dot wisniewski at op dot pl
- To: binutils at sourceware dot org
- Date: Mon, 25 Feb 2008 16:23:08 +0100
- Subject: ARM, Maverick Crunch and C++ exceptions
Hello,
I've tried to compile some C++ program with ARM-targetted gcc that emits instructions for Maverick Crunch FPU (it's gcc-4.1.2 with patches from http://files.futaris.org/gcc/crunch.tar.bz2). There are assembler errors:
/tmp/cc3KDFf1.s: Assembler messages:
/tmp/cc3KDFf1.s:51145: Error: register expected
/tmp/cc3KDFf1.s:66883: Error: register expected
/tmp/cc3KDFf1.s:66886: Error: register expected
/tmp/cc3KDFf1.s:66889: Error: register expected
The same program compiles and works perfectly when compiling with
When I've looked at gcc's assembly output I've found this:
line 51145:
.save {mv4}
cfstrd mvd4, [sp, #-8]!
line 66883:
.save {mv6}
cfstrd mvd6, [sp, #-8]!
line 66886:
.save {mv5}
cfstrd mvd5, [sp, #-8]!
line 66889:
.save {mv4}
cfstrd mvd4, [sp, #-8]!
It seems that as can't expand .save macro with Maverick register as argument. I've looked also at gas/config/tc-arm.c file in binutils and I've found that there are "s_arm_unwind_save_core", "s_arm_unwind_save_fpa",
"s_arm_unwind_save_vfp_armv6", "s_arm_unwind_save_vfp",
"s_arm_unwind_save_mmxwr", "s_arm_unwind_save_mmxwcg" functions
but there is no "s_arm_unwind_save_maverick" function. It seems that there is no support for exceptions and Maverick at all. Is it a bug or (mis)feature?
Wojciech Wisniewski