Commit 307b599c by Matt Kraai Committed by Matt Kraai

flags.h (g_switch_value): Change to an unsigned HOST_WIDE_INT.

	* flags.h (g_switch_value): Change to an unsigned
	HOST_WIDE_INT.
	* toplev.c (g_switch_value): Likewise.

	* config/alpha/alpha.c (small_symbolic_operand): Remove
	g_switch_value cast.
	(alpha_in_small_data_p): Cast size to an unsigned
	HOST_WIDE_INT.

	* config/frv/frv.c (frv_in_small_data_p): Cast size to an
	unsigned HOST_WIDE_INT.
	* config/frv/frv.h (g_switch_value, g_switch_set): Remove.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.

	* config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
	unsigned HOST_WIDE_INT.
	(m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
	* config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
	(ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.

	* config/rs6000/rs6000.c (rs6000_file_start): Use
	HOST_WIDE_INT_PRINT_UNSIGNED.
	(small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
	(rs6000_elf_in_small_data_p): Cast size to unsigned
	HOST_WIDE_INT.
	* config/rs6000/sysv4.h (g_switch_value, g_switch_set):
	Remove.
	(SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
	g_switch_set.
	(ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
	g_switch_value cast.

From-SVN: r66945
parent 48ef54fb
2003-05-18 Matt Kraai <kraai@alumni.cmu.edu>
* flags.h (g_switch_value): Change to an unsigned
HOST_WIDE_INT.
* toplev.c (g_switch_value): Likewise.
* config/alpha/alpha.c (small_symbolic_operand): Remove
g_switch_value cast.
(alpha_in_small_data_p): Cast size to an unsigned
HOST_WIDE_INT.
* config/frv/frv.c (frv_in_small_data_p): Cast size to an
unsigned HOST_WIDE_INT.
* config/frv/frv.h (g_switch_value, g_switch_set): Remove.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.
* config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
unsigned HOST_WIDE_INT.
(m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
* config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
(ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.
* config/rs6000/rs6000.c (rs6000_file_start): Use
HOST_WIDE_INT_PRINT_UNSIGNED.
(small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
(rs6000_elf_in_small_data_p): Cast size to unsigned
HOST_WIDE_INT.
* config/rs6000/sysv4.h (g_switch_value, g_switch_set):
Remove.
(SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
g_switch_set.
(ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
g_switch_value cast.
2003-05-18 Roger Sayle <roger@eyesopen.com> 2003-05-18 Roger Sayle <roger@eyesopen.com>
Zack Weinberg <zack@codesourcery.com> Zack Weinberg <zack@codesourcery.com>
......
...@@ -1166,7 +1166,7 @@ small_symbolic_operand (op, mode) ...@@ -1166,7 +1166,7 @@ small_symbolic_operand (op, mode)
/* ??? There's no encode_section_info equivalent for the rtl /* ??? There's no encode_section_info equivalent for the rtl
constant pool, so SYMBOL_FLAG_SMALL never gets set. */ constant pool, so SYMBOL_FLAG_SMALL never gets set. */
if (CONSTANT_POOL_ADDRESS_P (op)) if (CONSTANT_POOL_ADDRESS_P (op))
return GET_MODE_SIZE (get_pool_mode (op)) <= (unsigned) g_switch_value; return GET_MODE_SIZE (get_pool_mode (op)) <= g_switch_value;
return (SYMBOL_REF_LOCAL_P (op) return (SYMBOL_REF_LOCAL_P (op)
&& SYMBOL_REF_SMALL_P (op) && SYMBOL_REF_SMALL_P (op)
...@@ -1891,7 +1891,7 @@ alpha_in_small_data_p (exp) ...@@ -1891,7 +1891,7 @@ alpha_in_small_data_p (exp)
/* If this is an incomplete type with size 0, then we can't put it /* If this is an incomplete type with size 0, then we can't put it
in sdata because it might be too big when completed. */ in sdata because it might be too big when completed. */
if (size > 0 && size <= g_switch_value) if (size > 0 && (unsigned HOST_WIDE_INT) size <= g_switch_value)
return true; return true;
} }
......
...@@ -9714,7 +9714,7 @@ frv_in_small_data_p (decl) ...@@ -9714,7 +9714,7 @@ frv_in_small_data_p (decl)
return false; return false;
size = int_size_in_bytes (TREE_TYPE (decl)); size = int_size_in_bytes (TREE_TYPE (decl));
if (size > 0 && size <= g_switch_value) if (size > 0 && (unsigned HOST_WIDE_INT) size <= g_switch_value)
return true; return true;
/* If we already know which section the decl should be in, see if /* If we already know which section the decl should be in, see if
......
...@@ -554,9 +554,6 @@ extern int target_flags; ...@@ -554,9 +554,6 @@ extern int target_flags;
#define SDATA_DEFAULT_SIZE 8 #define SDATA_DEFAULT_SIZE 8
#endif #endif
extern int g_switch_value; /* value of the -G xx switch */
extern int g_switch_set; /* whether -G xx was passed. */
/* Storage Layout */ /* Storage Layout */
...@@ -2783,6 +2780,8 @@ extern int size_directive_output; ...@@ -2783,6 +2780,8 @@ extern int size_directive_output;
#undef ASM_OUTPUT_ALIGNED_DECL_LOCAL #undef ASM_OUTPUT_ALIGNED_DECL_LOCAL
#define ASM_OUTPUT_ALIGNED_DECL_LOCAL(STREAM, DECL, NAME, SIZE, ALIGN) \ #define ASM_OUTPUT_ALIGNED_DECL_LOCAL(STREAM, DECL, NAME, SIZE, ALIGN) \
do { \ do { \
extern unsigned HOST_WIDE_INT g_switch_value; \
\
if ((SIZE) > 0 && (SIZE) <= g_switch_value) \ if ((SIZE) > 0 && (SIZE) <= g_switch_value) \
sbss_section (); \ sbss_section (); \
else \ else \
......
...@@ -433,7 +433,7 @@ m32r_in_small_data_p (decl) ...@@ -433,7 +433,7 @@ m32r_in_small_data_p (decl)
{ {
int size = int_size_in_bytes (TREE_TYPE (decl)); int size = int_size_in_bytes (TREE_TYPE (decl));
if (size > 0 && size <= g_switch_value) if (size > 0 && (unsigned HOST_WIDE_INT) size <= g_switch_value)
return true; return true;
} }
} }
...@@ -2208,7 +2208,8 @@ m32r_asm_file_start (file) ...@@ -2208,7 +2208,8 @@ m32r_asm_file_start (file)
FILE * file; FILE * file;
{ {
if (flag_verbose_asm) if (flag_verbose_asm)
fprintf (file, "%s M32R/D special options: -G %d\n", fprintf (file,
"%s M32R/D special options: -G " HOST_WIDE_INT_PRINT_UNSIGNED "\n",
ASM_COMMENT_START, g_switch_value); ASM_COMMENT_START, g_switch_value);
} }
......
...@@ -350,9 +350,6 @@ extern enum m32r_model m32r_model; ...@@ -350,9 +350,6 @@ extern enum m32r_model m32r_model;
#define SDATA_DEFAULT_SIZE 8 #define SDATA_DEFAULT_SIZE 8
#endif #endif
extern int g_switch_value; /* value of the -G xx switch */
extern int g_switch_set; /* whether -G xx was passed. */
enum m32r_sdata { M32R_SDATA_NONE, M32R_SDATA_SDATA, M32R_SDATA_USE }; enum m32r_sdata { M32R_SDATA_NONE, M32R_SDATA_SDATA, M32R_SDATA_USE };
extern enum m32r_sdata m32r_sdata; extern enum m32r_sdata m32r_sdata;
...@@ -1690,6 +1687,8 @@ extern char m32r_punct_chars[256]; ...@@ -1690,6 +1687,8 @@ extern char m32r_punct_chars[256];
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
do \ do \
{ \ { \
extern unsigned HOST_WIDE_INT g_switch_value; \
\
if (! TARGET_SDATA_NONE \ if (! TARGET_SDATA_NONE \
&& (SIZE) > 0 && (SIZE) <= g_switch_value) \ && (SIZE) > 0 && (SIZE) <= g_switch_value) \
fprintf ((FILE), "%s", SCOMMON_ASM_OP); \ fprintf ((FILE), "%s", SCOMMON_ASM_OP); \
......
...@@ -950,7 +950,8 @@ rs6000_file_start (file, default_cpu) ...@@ -950,7 +950,8 @@ rs6000_file_start (file, default_cpu)
if (rs6000_sdata && g_switch_value) if (rs6000_sdata && g_switch_value)
{ {
fprintf (file, "%s -G %d", start, g_switch_value); fprintf (file, "%s -G " HOST_WIDE_INT_PRINT_UNSIGNED, start,
g_switch_value);
start = ""; start = "";
} }
#endif #endif
...@@ -2254,7 +2255,7 @@ small_data_operand (op, mode) ...@@ -2254,7 +2255,7 @@ small_data_operand (op, mode)
/* We have to be careful here, because it is the referenced address /* We have to be careful here, because it is the referenced address
that must be 32k from _SDA_BASE_, not just the symbol. */ that must be 32k from _SDA_BASE_, not just the symbol. */
summand = INTVAL (XEXP (sum, 1)); summand = INTVAL (XEXP (sum, 1));
if (summand < 0 || summand > g_switch_value) if (summand < 0 || (unsigned HOST_WIDE_INT) summand > g_switch_value)
return 0; return 0;
sym_ref = XEXP (sum, 0); sym_ref = XEXP (sum, 0);
...@@ -13452,7 +13453,7 @@ rs6000_elf_in_small_data_p (decl) ...@@ -13452,7 +13453,7 @@ rs6000_elf_in_small_data_p (decl)
HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (decl)); HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (decl));
if (size > 0 if (size > 0
&& size <= g_switch_value && (unsigned HOST_WIDE_INT) size <= g_switch_value
/* If it's not public, and we're not going to reference it there, /* If it's not public, and we're not going to reference it there,
there's no need to put it in the small data section. */ there's no need to put it in the small data section. */
&& (rs6000_sdata != SDATA_DATA || TREE_PUBLIC (decl))) && (rs6000_sdata != SDATA_DATA || TREE_PUBLIC (decl)))
......
...@@ -89,11 +89,6 @@ extern const char *rs6000_tls_size_string; /* For -mtls-size= */ ...@@ -89,11 +89,6 @@ extern const char *rs6000_tls_size_string; /* For -mtls-size= */
{ "tls-size=", &rs6000_tls_size_string, \ { "tls-size=", &rs6000_tls_size_string, \
N_("Specify bit size of immediate TLS offsets"), 0 } N_("Specify bit size of immediate TLS offsets"), 0 }
/* Max # of bytes for variables to automatically be put into the .sdata
or .sdata2 sections. */
extern int g_switch_value; /* Value of the -G xx switch. */
extern int g_switch_set; /* Whether -G xx was passed. */
#define SDATA_DEFAULT_SIZE 8 #define SDATA_DEFAULT_SIZE 8
/* Note, V.4 no longer uses a normal TOC, so make -mfull-toc, be just /* Note, V.4 no longer uses a normal TOC, so make -mfull-toc, be just
...@@ -171,6 +166,9 @@ extern int g_switch_set; /* Whether -G xx was passed. */ ...@@ -171,6 +166,9 @@ extern int g_switch_set; /* Whether -G xx was passed. */
#define SUBTARGET_OVERRIDE_OPTIONS \ #define SUBTARGET_OVERRIDE_OPTIONS \
do { \ do { \
extern unsigned HOST_WIDE_INT g_switch_value; \
extern int g_switch_set; \
\
if (!g_switch_set) \ if (!g_switch_set) \
g_switch_value = SDATA_DEFAULT_SIZE; \ g_switch_value = SDATA_DEFAULT_SIZE; \
\ \
...@@ -665,8 +663,10 @@ extern int rs6000_pic_labelno; ...@@ -665,8 +663,10 @@ extern int rs6000_pic_labelno;
#undef ASM_OUTPUT_ALIGNED_LOCAL #undef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \ #define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
do { \ do { \
extern unsigned HOST_WIDE_INT g_switch_value; \
\
if (rs6000_sdata != SDATA_NONE && (SIZE) > 0 \ if (rs6000_sdata != SDATA_NONE && (SIZE) > 0 \
&& (SIZE) <= (unsigned HOST_WIDE_INT)g_switch_value) \ && (SIZE) <= g_switch_value) \
{ \ { \
sbss_section (); \ sbss_section (); \
ASM_OUTPUT_ALIGN (FILE, exact_log2 (ALIGN / BITS_PER_UNIT)); \ ASM_OUTPUT_ALIGN (FILE, exact_log2 (ALIGN / BITS_PER_UNIT)); \
......
...@@ -586,7 +586,7 @@ extern int frame_pointer_needed; ...@@ -586,7 +586,7 @@ extern int frame_pointer_needed;
extern int flag_trapv; extern int flag_trapv;
/* Value of the -G xx switch, and whether it was passed or not. */ /* Value of the -G xx switch, and whether it was passed or not. */
extern int g_switch_value; extern unsigned HOST_WIDE_INT g_switch_value;
extern int g_switch_set; extern int g_switch_set;
/* Values of the -falign-* flags: how much to align labels in code. /* Values of the -falign-* flags: how much to align labels in code.
......
...@@ -329,7 +329,7 @@ enum graph_dump_types graph_dump_format; ...@@ -329,7 +329,7 @@ enum graph_dump_types graph_dump_format;
char *asm_file_name; char *asm_file_name;
/* Value of the -G xx switch, and whether it was passed or not. */ /* Value of the -G xx switch, and whether it was passed or not. */
int g_switch_value; unsigned HOST_WIDE_INT g_switch_value;
int g_switch_set; int g_switch_set;
/* Type(s) of debugging information we are producing (if any). /* Type(s) of debugging information we are producing (if any).
......
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