Commit 5d304e47 by Andreas Krebbel Committed by Andreas Krebbel

s390-protos.h (s390_label_align): New prototype.

2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390-protos.h (s390_label_align): New prototype.
	* config/s390/s390.c (s390_label_align): New function.
	* config/s390/s390.h (LABEL_ALIGN): New target macro definition.

From-SVN: r170821
parent 9b4166b2
2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390-protos.h (s390_label_align): New prototype.
* config/s390/s390.c (s390_label_align): New function.
* config/s390/s390.h (LABEL_ALIGN): New target macro definition.
2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/47755
......
......@@ -101,6 +101,7 @@ extern void s390_split_access_reg (rtx, rtx *, rtx *);
extern void print_operand_address (FILE *, rtx);
extern void print_operand (FILE *, rtx, int);
extern void s390_output_pool_entry (rtx, enum machine_mode, unsigned int);
extern int s390_label_align (rtx);
extern int s390_agen_dep_p (rtx, rtx);
extern rtx s390_load_got (void);
extern rtx s390_get_thread_pointer (void);
......
......@@ -384,6 +384,32 @@ struct GTY(()) machine_function
bytes on a z10 (or higher) CPU. */
#define PREDICT_DISTANCE (TARGET_Z10 ? 384 : 2048)
/* Return the alignment for LABEL. We default to the -falign-labels
value except for the literal pool base label. */
int
s390_label_align (rtx label)
{
rtx prev_insn = prev_active_insn (label);
if (prev_insn == NULL_RTX)
goto old;
prev_insn = single_set (prev_insn);
if (prev_insn == NULL_RTX)
goto old;
prev_insn = SET_SRC (prev_insn);
/* Don't align literal pool base labels. */
if (GET_CODE (prev_insn) == UNSPEC
&& XINT (prev_insn, 1) == UNSPEC_MAIN_BASE)
return 0;
old:
return align_labels_log;
}
static enum machine_mode
s390_libgcc_cmp_return_mode (void)
{
......
......@@ -870,6 +870,9 @@ do { \
/* The LOCAL_LABEL_PREFIX variable is used by dbxelf.h. */
#define LOCAL_LABEL_PREFIX "."
#define LABEL_ALIGN(LABEL) \
s390_label_align (LABEL)
/* How to refer to registers in assembler output. This sequence is
indexed by compiler's hard-register-number (see above). */
#define REGISTER_NAMES \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment