GCC 4.2.0 boostrap problems on FreeBSD/ia64

Maxim Kuvyrkov mkuvyrkov@ispras.ru
Mon May 14 08:57:00 GMT 2007


Alexander Kabaev wrote:
> On Sun, 13 May 2007 10:53:44 +0200
> Andreas Schwab <schwab@suse.de> wrote:
> 
>> Alexander Kabaev <kabaev@gmail.com> writes:
>>
>>> The instruction below appears to be the problematic one, but I
>>> cannot tell why:
>>>
>>> [MMI]  st8 [r16]=r17
>> This insn looks completely benign, I'd rather it's the next insn that
>> is the problem:
>>
>>         chk.a.clr r14, .L1063
>>
>> This is a speculation check (see
>> <http://download.intel.com/design/Itanium/manuals/24531905.pdf> for
>> the Itanium Instruction Set Descriptions).  The insn checks the
>> result of a preceding advanced load and branches to the label if the
>> check failed. The branching behaviour of the insn may be
>> unimplemented, and would have to be emulated in the kernel, but
>> apparently FreeBSD doesn't support it.

As a workaround you can supply '-mno-sched-ar-in-data-spec' switch to 
the compiler which will turn of data speculations that require chk.a 
instructions to check them.

Am I right that you are using Itanium1 machine for compilation?  I 
understand that Itanium2 should not have this issue as it supports 
chk.[as] instructions in hardware.

Considering the long term solution I will post a patch that will turn 
off speculations requiring chk.[as] instruction for Itanium1.

Can you please file a PR in the bugzilla if you haven't done so yet?


Thanks,

Maxim



More information about the Gcc mailing list