This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC 4.2.0 boostrap problems on FreeBSD/ia64


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]