public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Kai Tietz <Kai.Tietz@onevision.com>
To: Jan Hubicka <hubicka@ucw.cz>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: PING: PING: patch: ICE in legitimize_pic_address for x86_64 mingw  target
Date: Wed, 01 Aug 2007 09:03:00 -0000	[thread overview]
Message-ID: <OF5F052C5E.76BC7621-ONC125732A.0030FCD2-C125732A.0031C395@onevision.de> (raw)
In-Reply-To: <20070731213647.GA28848@atrey.karlin.mff.cuni.cz>

Hi Jan,

Jan Hubicka wrote on 31.07.2007 23:36:47:

> > Hi,
> > 
> > there is an ICE for __declspec(dllimport) imported variables. The 
checking 
> > of pic seems to be to early in legitimize_address. The check for 
> > TARGET_DLLIMPORT_DECL_ATTRIBUTES should be done infront AFAICS. I 
> > bootstraped it for x86_64-pc-mingw32 and i686-pc-mignew32 and it seems 
to 
> > work fine for me.
> > I tested this patch for i686-pc-cygwin and x86_64-pc-mingw32 and I saw 
no 
> > regressions.
> 
> Hi,
> the patch looks fine, however I think you need to check range of
> CONST_INT operand:
>       if (GET_CODE (x) == CONST
>           && GET_CODE (XEXP (x, 0)) == PLUS
>      && GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF
>      && SYMBOL_REF_DLLIMPORT_P (XEXP (XEXP (x, 0), 0)))
> 
> so the offset won't end up exceeding 32bit encoding. Does Windows ABI
> guarantee some constant value?  (GCC can generate constant offset that
> points off the symbol's object memory area itself when simplifying more
> complex memory references)
AFAIK there are no quaranteed constant values beside the gs/fs-segment 
area in the 64-bit ABI of MS.
So I think the case described by you won't occure, but may I missed 
something.
The MS ABI defines base relocations 64-bit wide. There is no 32-bit base 
relocation for this target. They have to be PC-relative. But this target 
defines PC-relative relocations with 8, 32, and 64 bit width. So I don't 
expect problems there.

Cheers,
 i.A. Kai Tietz

|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

------------------------------------------------------------------------------------------
  OneVision Software Entwicklungs GmbH & Co. KG
  Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
  Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
  Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
  Handelsregister: HRA 6744, Amtsgericht Regensburg
  Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
  Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
  Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer: 
Ulrike Döhler, Manuela Kluger


  reply	other threads:[~2007-08-01  9:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-30 11:19 Kai Tietz
2007-07-31 21:44 ` Jan Hubicka
2007-08-01  9:03   ` Kai Tietz [this message]
2007-08-01 10:00     ` Jan Hubicka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=OF5F052C5E.76BC7621-ONC125732A.0030FCD2-C125732A.0031C395@onevision.de \
    --to=kai.tietz@onevision.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hubicka@ucw.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).