[coldfire-gnu-discuss] insn does not satisfy its constraints
Boyce, Jeffrey A CAR
Jeffrey.A.Boyce at carrier.utc.com
Mon Aug 22 20:24:09 UTC 2011
Maxim,
Thanks, that allowed me to get past that error and much further into the build.
I'm now getting several assembler errors when trying to build libkaffe_la-locks. For example:
locks.s: Assembler messages:
locks.s:71: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `cas.l %d0,%d1,(%a2)' ignored
I haven't had time to dig into these, but do you have any thoughts?
Thanks again,
Jeff
-----Original Message-----
From: Maxim Kuvyrkov [mailto:maxim at codesourcery.com]
Sent: Monday, August 22, 2011 3:06 PM
To: Boyce, Jeffrey A CAR
Cc: coldfire-gnu-discuss at codesourcery.com
Subject: Re: [coldfire-gnu-discuss] insn does not satisfy its constraints
Jeff,
I realized that I didn't give you the pointers to fix the code. To make code compile (and work) for FPU-less ColdFire, such as MCF544xx families, you need to condition the references to FPU registers in Kaffe's md.h file. You can use builtin compiler macros for that:
#if !defined (__mcoldfire__) || defined (__mcffpu__)
<FPU stuff>
#else
<no-FPU stuff>
#endif
Regards,
--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics
On Aug 23, 2011, at 4:28 AM, Maxim Kuvyrkov wrote:
> Jeff,
>
> This appears to be a bug in the source code rather than in the compiler. The sysdepCallMethod() function explicitly refers to the FP0 register via 'register double f0d asm ("fp0")' statement, and this causes the compiler to fail when compiling for FPU-less ColdFire target.
>
> Regards,
>
> --
> Maxim Kuvyrkov
> CodeSourcery / Mentor Graphics
>
> On Aug 23, 2011, at 12:21 AM, Boyce, Jeffrey A CAR wrote:
>
>> Maxim,
>>
>> Please see attached.
>>
>>
>> Thanks,
>>
>> Jeff
>>
>>
>> -----Original Message-----
>> From: Maxim Kuvyrkov [mailto:maxim at codesourcery.com]
>> Sent: Sunday, August 21, 2011 2:45 AM
>> To: Boyce, Jeffrey A CAR
>> Cc: coldfire-gnu-discuss at codesourcery.com
>> Subject: Re: [coldfire-gnu-discuss] insn does not satisfy its constraints
>>
>> Jeffrey,
>>
>> Please attach the preprocessed source file so that we can reproduce the problem on our side. You can get the preprocessed example by adding -save-temps to the command line -- the preprocessed source will be saved in a .i file.
>>
>> It seems something causes the compiler to generate code that uses a floating point register for a soft-fp target.
>>
>> Thank you,
>>
>> --
>> Maxim Kuvyrkov
>> CodeSourcery / Mentor Graphics
>>
>> On Aug 18, 2011, at 8:32 AM, Boyce, Jeffrey A CAR wrote:
>>
>>> <<methodcalls.c>> Hello,
>>>
>>> I'm getting the following compiler error when attempting to compile Kaffe 1.1.8 for Coldfire (54418):
>>>
>>> methodcalls.c: In function 'engine_callMethod':
>>> methodcalls.c:225:1: error: insn does not satisfy its constraints:
>>> (insn 599 398 400 47 ../../../config/md.h:99 (set (reg:DF 0 %d0)
>>> (reg:DF 16 %fp0)) 52 {movdf_cf_soft} (nil))
>>> methodcalls.c:225:1: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403
>>> Please submit a full bug report,
>>> with preprocessed source if appropriate.
>>> See <https://support.codesourcery.com/GNUToolchain/> for instructions.
>>>
>>> Methodcalls.c is attached. This happens using both 4.4.1 and 4.5.2 (2011.03-98) versions of the compilers. CFLAGS are as follows:
>>>
>>> -mcpu=54418 -msoft-float -march=isac -Wall -W -Wextra -fno-strict-aliasing -fno-omit-frame-pointer -O1 -pthread
>>>
>>> Any ideas what could be causing this error?
>>>
>>>
>>> Thanks,
>>>
>>>
>>> Jeff
>>>
>>> <methodcalls.c>
>>
>> <methodcalls.i>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: locks.s
Type: application/octet-stream
Size: 23656 bytes
Desc: locks.s
URL: <http://sourcerytools.com/pipermail/coldfire-gnu-discuss/attachments/20110822/08dfcba8/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: locks.c
Type: application/octet-stream
Size: 14100 bytes
Desc: locks.c
URL: <http://sourcerytools.com/pipermail/coldfire-gnu-discuss/attachments/20110822/08dfcba8/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: locks.i
Type: application/octet-stream
Size: 293431 bytes
Desc: locks.i
URL: <http://sourcerytools.com/pipermail/coldfire-gnu-discuss/attachments/20110822/08dfcba8/attachment-0002.obj>
More information about the coldfire-gnu-discuss
mailing list