public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] x86_64: push <symoffs> creates wrong relocation
@ 2005-02-28 16:04 Jan Beulich
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2005-02-28 16:04 UTC (permalink / raw)
  To: binutils

[-- Attachment #1: Type: text/plain, Size: 911 bytes --]

A suffixless push (as would the the general case with Intel syntax) with
its
operand being the address of a symbol generated an unsigned
(zero-extend)
relocation rather than a signed (sign-extend) one.

Built and tested on x86_64-unknown-linux-gnu.

Jan

gas/
2005-02-28  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (output_imm): Also set sign flag for 64-bit
push
	immediates.

---
/home/jbeulich/src/binutils/mainline/2005-02-28/gas/config/tc-i386.c	2005-02-01
16:15:56.000000000 +0100
+++ 2005-02-28/gas/config/tc-i386.c	2005-02-28 15:16:27.055461488
+0100
@@ -3560,7 +3560,8 @@ output_imm (insn_start_frag, insn_start_
 	      int sign = 0;
 
 	      if ((i.types[n] & (Imm32S))
-		  && i.suffix == QWORD_MNEM_SUFFIX)
+		  && (i.suffix == QWORD_MNEM_SUFFIX
+		      || (!i.suffix && (i.tm.opcode_modifier &
No_lSuf))))
 		sign = 1;
 	      if (i.types[n] & (Imm8 | Imm8S | Imm16 | Imm64))
 		{


[-- Attachment #2: binutils-mainline-x86_64-push-symoffs.patch --]
[-- Type: text/plain, Size: 910 bytes --]

A suffixless push (as would the the general case with Intel syntax) with its
operand being the address of a symbol generated an unsigned (zero-extend)
relocation rather than a signed (sign-extend) one.

Built and tested on x86_64-unknown-linux-gnu.

Jan

gas/
2005-02-28  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (output_imm): Also set sign flag for 64-bit push
	immediates.

--- /home/jbeulich/src/binutils/mainline/2005-02-28/gas/config/tc-i386.c	2005-02-01 16:15:56.000000000 +0100
+++ 2005-02-28/gas/config/tc-i386.c	2005-02-28 15:16:27.055461488 +0100
@@ -3560,7 +3560,8 @@ output_imm (insn_start_frag, insn_start_
 	      int sign = 0;
 
 	      if ((i.types[n] & (Imm32S))
-		  && i.suffix == QWORD_MNEM_SUFFIX)
+		  && (i.suffix == QWORD_MNEM_SUFFIX
+		      || (!i.suffix && (i.tm.opcode_modifier & No_lSuf))))
 		sign = 1;
 	      if (i.types[n] & (Imm8 | Imm8S | Imm16 | Imm64))
 		{

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: push <symoffs> creates wrong relocation
  2005-04-04 10:13 ` Nick Clifton
@ 2005-04-04 13:23   ` Daniel Jacobowitz
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel Jacobowitz @ 2005-04-04 13:23 UTC (permalink / raw)
  To: Nick Clifton; +Cc: Jan Beulich, binutils

On Mon, Apr 04, 2005 at 11:10:32AM +0100, Nick Clifton wrote:
> Hi Jan,
> 
> >Now, should any of them (clearly not the .macro one) also go into 2.16? 
> >Thanks, Jan
> 
> This is up to Daniel,
> 
> I think that these two would be reasonable:
> 
>   2005-04-01  Jan Beulich  <jbeulich@novell.com>
> 
> 	* i386-dis.c (PNI_Fixup): Neither mwait nor monitor have any
> 	visible operands in Intel mode. The first operand of monitor is
> 	%rax in 64-bit mode.
> 
>   2005-04-01  Jan Beulich  <jbeulich@novell.com>
> 
> 	* i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
> 	easier future additions.

That's fine with me.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: push <symoffs> creates wrong relocation
       [not found] <s24d7def.036@emea1-mh.id2.novell.com>
@ 2005-04-04 10:13 ` Nick Clifton
  2005-04-04 13:23   ` Daniel Jacobowitz
  0 siblings, 1 reply; 5+ messages in thread
From: Nick Clifton @ 2005-04-04 10:13 UTC (permalink / raw)
  To: Jan Beulich, Daniel Jacobowitz; +Cc: binutils

Hi Jan,

> Now, should any of them (clearly not the .macro one) also go into 2.16? Thanks, Jan

This is up to Daniel,

I think that these two would be reasonable:

   2005-04-01  Jan Beulich  <jbeulich@novell.com>

	* i386-dis.c (PNI_Fixup): Neither mwait nor monitor have any
	visible operands in Intel mode. The first operand of monitor is
	%rax in 64-bit mode.

   2005-04-01  Jan Beulich  <jbeulich@novell.com>

	* i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
	easier future additions.

Cheers
   Nick

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: push <symoffs> creates wrong relocation
@ 2005-04-01 15:59 Jan Beulich
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2005-04-01 15:59 UTC (permalink / raw)
  To: nickc; +Cc: binutils

Nick - thanks for reviewing all this and the others you just sent me notification about. Now, should any of them (clearly not the .macro one) also go into 2.16? Thanks, Jan

>>> Nick Clifton <nickc@redhat.com> 01.04.05 16:32:29 >>>
Hi Jan,

> gas/
> 2005-02-28  Jan Beulich  <jbeulich@novell.com>
> 
> 	* config/tc-i386.c (output_imm): Also set sign flag for 64-bit
> push
> 	immediates.

Approved - please apply.

Cheers
  Nick
  


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: push <symoffs> creates wrong relocation
@ 2005-04-01 14:35 Nick Clifton
  0 siblings, 0 replies; 5+ messages in thread
From: Nick Clifton @ 2005-04-01 14:35 UTC (permalink / raw)
  To: JBeulich; +Cc: binutils

Hi Jan,

> gas/
> 2005-02-28  Jan Beulich  <jbeulich@novell.com>
> 
> 	* config/tc-i386.c (output_imm): Also set sign flag for 64-bit
> push
> 	immediates.

Approved - please apply.

Cheers
  Nick
  

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-04-04 13:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-28 16:04 [PATCH] x86_64: push <symoffs> creates wrong relocation Jan Beulich
2005-04-01 14:35 Nick Clifton
2005-04-01 15:59 Jan Beulich
     [not found] <s24d7def.036@emea1-mh.id2.novell.com>
2005-04-04 10:13 ` Nick Clifton
2005-04-04 13:23   ` Daniel Jacobowitz

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).