xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2. (ASM_OUTPUT_ALIGNED_LOCAL): New. From-SVN: r195660
This commit is contained in:
parent
bed8d8a692
commit
14d52b9093
|
@ -1,3 +1,8 @@
|
||||||
|
2013-02-01 David Edelsohn <dje.gcc@gmail.com>
|
||||||
|
|
||||||
|
* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
|
||||||
|
(ASM_OUTPUT_ALIGNED_LOCAL): New.
|
||||||
|
|
||||||
2013-02-01 Richard Biener <rguenther@suse.de>
|
2013-02-01 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/56113
|
PR tree-optimization/56113
|
||||||
|
|
|
@ -283,7 +283,7 @@
|
||||||
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
|
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
|
||||||
if ((ALIGN) > 32) \
|
if ((ALIGN) > 32) \
|
||||||
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", (SIZE), \
|
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", (SIZE), \
|
||||||
exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
|
floor_log2 ((ALIGN) / BITS_PER_UNIT)); \
|
||||||
else if ((SIZE) > 4) \
|
else if ((SIZE) > 4) \
|
||||||
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",3\n", (SIZE)); \
|
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",3\n", (SIZE)); \
|
||||||
else \
|
else \
|
||||||
|
@ -292,12 +292,30 @@
|
||||||
|
|
||||||
/* This says how to output an assembler line
|
/* This says how to output an assembler line
|
||||||
to define a local common symbol.
|
to define a local common symbol.
|
||||||
Alignment cannot be specified, but we can try to maintain
|
The assembler in AIX 6.1 and later supports an alignment argument.
|
||||||
|
For earlier releases of AIX, we try to maintain
|
||||||
alignment after preceding TOC section if it was aligned
|
alignment after preceding TOC section if it was aligned
|
||||||
for 64-bit mode. */
|
for 64-bit mode. */
|
||||||
|
|
||||||
#define LOCAL_COMMON_ASM_OP "\t.lcomm "
|
#define LOCAL_COMMON_ASM_OP "\t.lcomm "
|
||||||
|
|
||||||
|
#if TARGET_AIX_VERSION >= 61
|
||||||
|
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
|
||||||
|
do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
|
||||||
|
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
|
||||||
|
if ((ALIGN) > 32) \
|
||||||
|
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%s,%u\n", \
|
||||||
|
(SIZE), xcoff_bss_section_name, \
|
||||||
|
floor_log2 ((ALIGN) / BITS_PER_UNIT)); \
|
||||||
|
else if ((SIZE) > 4) \
|
||||||
|
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%s,3\n", \
|
||||||
|
(SIZE), xcoff_bss_section_name); \
|
||||||
|
else \
|
||||||
|
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%s\n", \
|
||||||
|
(SIZE), xcoff_bss_section_name); \
|
||||||
|
} while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
|
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
|
||||||
do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
|
do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
|
||||||
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
|
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
|
||||||
|
|
Loading…
Reference in New Issue