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