long calls in thumb mode
andy parker
andy.parker@oxsemi.com
Mon Jul 30 04:54:00 GMT 2001
Hi there,
I have an application running on an embedded arm7tdmi and I've got a
problem compiling code using gcc 3.0 for thumb mode operation and
supporting long calls to functions.
In order to improve the execution speed I have recently relocated some
of the executable into RAM. This has meant that I have to use the
-mcalls-long switch on gcc because my RAM area is some 700 MB above the
ROM area in my address map.
I have successfully compiled and linked the code running in arm mode.
However, when I try to compile and link the same code for the arm7 in
thumb mode, I get the following compiler error:
threadtest.cxx: In function `int C_Entry()':
threadtest.cxx:72: Unrecognizable insn:
(call_insn 14 351 19 (parallel[
(call (mem:SI (symbol_ref:SI ("^_Z10staticInitv")) 0)
(const_int 0 [0x0]))
(use (const_int 1 [0x1]))
(clobber (reg:SI 14 lr))
] ) -1 (nil)
(expr_list:REG_UNUSED (reg:SI 14 lr)
(expr_list:REG_EH_REGION (const_int 0 [0x0])
(nil)))
(nil))
threadtest.cxx:72: Internal compiler error in extract_insn, at recog.c:2210
Previous builds, targeting all the code into ROM were successful in
both Arm and Thumb modes, so I suspect that there's something strange
happening with the combined -mcalls-long and -mthumb switches to the
compiler.
Has anyone out there experienced anything like this before ?
Am I doing something obviously wrong ?
Many thanks,
Andy
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
More information about the crossgcc
mailing list