Skip TRUNCATE operators in const pool addresses for v850 short switch tables

From-SVN: r45326
This commit is contained in:
Nick Clifton 2001-08-31 17:10:57 +00:00
parent ef7112de26
commit 73a697d96e

View File

@ -1248,6 +1248,18 @@ do { \
#undef USER_LABEL_PREFIX #undef USER_LABEL_PREFIX
#define USER_LABEL_PREFIX "_" #define USER_LABEL_PREFIX "_"
/* When ASM_OUTPUT_SHORT is used to emit the offsets for a switch
table it can encounter (TRUNCATE:HI (MINUS:SI (LABEL_REF:SI) (LABEL_REF:SI))).
output_addr_const will normally barf at this, but it is OK to omit
the truncate and just emit the difference of the two labels. The
.hword directive will automatically handle the truncation for us. */
#define OUTPUT_ADDR_CONST_EXTRA(FILE, X, FAIL) \
if (GET_CODE (x) == TRUNCATE) \
return output_addr_const (FILE, XEXP (X, 0)); \
else \
goto FAIL;
/* This is how to output an assembler line defining a `double' constant. /* This is how to output an assembler line defining a `double' constant.
It is .double or .float, depending. */ It is .double or .float, depending. */