Browse Source

Fix .dc.a for x32

gas/

	* config/tc-i386.c (x86_address_bytes): New.
	* config/tc-i386.h (TC_ADDRESS_BYTES): Likewise.
	(x86_address_bytes): Likewise.

gas/testsuite/

	* gas/i386/ilp32/x86-64-dc_a.d: New.
	* gas/i386/ilp32/x86-64-dc_a.s: Likewise.
cygwin-64bit-branch
H.J. Lu 14 years ago
parent
commit
357d1bd8fd
  1. 6
      gas/ChangeLog
  2. 11
      gas/config/tc-i386.c
  3. 3
      gas/config/tc-i386.h
  4. 5
      gas/testsuite/ChangeLog
  5. 5
      gas/testsuite/gas/i386/ilp32/x86-64-dc_a.d
  6. 5
      gas/testsuite/gas/i386/ilp32/x86-64-dc_a.s

6
gas/ChangeLog

@ -1,3 +1,9 @@
2012-06-13 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (x86_address_bytes): New.
* config/tc-i386.h (TC_ADDRESS_BYTES): Likewise.
(x86_address_bytes): Likewise.
2012-06-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
PR gas/12698

11
gas/config/tc-i386.c

@ -6619,6 +6619,17 @@ x86_cons_fix_new (fragS *frag, unsigned int off, unsigned int len,
fix_new_exp (frag, off, len, exp, 0, r);
}
/* Export the ABI address size for use by TC_ADDRESS_BYTES for the
purpose of the `.dc.a' internal pseudo-op. */
int
x86_address_bytes (void)
{
if ((stdoutput->arch_info->mach & bfd_mach_x64_32))
return 4;
return stdoutput->arch_info->bits_per_address / 8;
}
#if !(defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (OBJ_MACH_O)) \
|| defined (LEX_AT)
# define lex_got(reloc, adjust, types) NULL

3
gas/config/tc-i386.h

@ -140,6 +140,9 @@ extern void x86_cons (expressionS *, int);
extern void x86_cons_fix_new
(fragS *, unsigned int, unsigned int, expressionS *);
#define TC_ADDRESS_BYTES x86_address_bytes
extern int x86_address_bytes (void);
#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */
#define NO_RELOC BFD_RELOC_NONE

5
gas/testsuite/ChangeLog

@ -1,3 +1,8 @@
2012-06-13 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/x86-64-dc_a.d: New.
* gas/i386/ilp32/x86-64-dc_a.s: Likewise.
2012-06-11 Andreas Schwab <schwab@linux-m68k.org>
* gas/ppc/e500mc.d: Update.

5
gas/testsuite/gas/i386/ilp32/x86-64-dc_a.d

@ -0,0 +1,5 @@
#nm: -n
#name: x86-64 (ILP32) .dc.a
0+ d foo
0+4 d bar

5
gas/testsuite/gas/i386/ilp32/x86-64-dc_a.s

@ -0,0 +1,5 @@
.data
foo:
.dc.a 0
bar:
.dc.a 0
Loading…
Cancel
Save