mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 07:14:09 +08:00
Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole message in quotes.
* Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole message in quotes. Otherwise, IBM's make program treats the '#' as the start of a comment and ignores the remainder of the line. * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed upper case. * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC. * cexp.y (initialize_random_junk): Likewise. * cppfiles.c (find_include_file): Cast alloca return value. * cppinit.c (initialize_standard_includes): Likewise. * cpplib.c (cpp_define, cpp_undef): Likewise. * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT. * final.c (output_asm_insn): Allow for holes in EBCDIC. * fold-const.c (CHARMASK): New. (real_hex_to_f): Use it. * real.c (CHARMASK): New. (etoasc, asctoeg): Use it. (asctoeg): EBCDIC lower case characters preceed upper case. From-SVN: r33192
This commit is contained in:
parent
e13f6154af
commit
5f6d382330
@ -1,3 +1,38 @@
|
||||
2000-04-12 Dave Pitts <dpitts@cozx.com>
|
||||
|
||||
* Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
|
||||
message in quotes. Otherwise, IBM's make program treats the '#' as the
|
||||
start of a comment and ignores the remainder of the line.
|
||||
|
||||
* c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
|
||||
upper case.
|
||||
* cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
|
||||
* cexp.y (initialize_random_junk): Likewise.
|
||||
* cppfiles.c (find_include_file): Cast alloca return value.
|
||||
* cppinit.c (initialize_standard_includes): Likewise.
|
||||
* cpplib.c (cpp_define, cpp_undef): Likewise.
|
||||
* defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
|
||||
* final.c (output_asm_insn): Allow for holes in EBCDIC.
|
||||
* fold-const.c (CHARMASK): New.
|
||||
(real_hex_to_f): Use it.
|
||||
* real.c (CHARMASK): New.
|
||||
(etoasc, asctoeg): Use it.
|
||||
(asctoeg): EBCDIC lower case characters preceed upper case.
|
||||
|
||||
* i370.c (mvs_add_label): Change spacing for coding conventions.
|
||||
* i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
|
||||
outputing case vectors.
|
||||
(ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
|
||||
(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
|
||||
since vector in in the data CSECT.
|
||||
(ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. * i370.md (Many patterns): Put the length in the XL directives.
|
||||
(movdi): Put back STM and MVC in definition.
|
||||
(floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
|
||||
pattern using the TCA.
|
||||
* oe.h (CPP_SPEC): Added to allow trigraphs.
|
||||
* xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
|
||||
not support the "long long" type.
|
||||
|
||||
2000-04-16 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* config/mips/mips-protos.h (mips_legitimate_address_p): New
|
||||
@ -39,9 +74,9 @@
|
||||
|
||||
2004-04-16 Neil Booth <NeilB@earthling.net>
|
||||
|
||||
* cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
|
||||
* cpplib.c: Add new syntax flags to directive table, and
|
||||
supporting macros.
|
||||
* cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
|
||||
* cpplib.c: Add new syntax flags to directive table, and
|
||||
supporting macros.
|
||||
|
||||
2000-04-15 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
@ -225,8 +260,8 @@ Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
2000-04-14 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* fold-const.c (extract_muldiv): Don't distribute and widen
|
||||
multiply across plus for non-sizetype unsigned types.
|
||||
* fold-const.c (extract_muldiv): Don't distribute and widen
|
||||
multiply across plus for non-sizetype unsigned types.
|
||||
|
||||
2000-04-14 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
@ -254,7 +289,7 @@ Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||||
2000-04-13 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* config/mips/mips.c (expand_block_move): Pass alignment
|
||||
argument to move_by_pieces in bits, not bytes.
|
||||
argument to move_by_pieces in bits, not bytes.
|
||||
|
||||
* config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
|
||||
__pic__ for little endian.
|
||||
@ -357,8 +392,8 @@ Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com>
|
||||
|
||||
* calls.c (emit_library_call_value_1): Change 3rd arg to
|
||||
locate_and_pad_parm to disregard the setting of partial.
|
||||
* calls.c (emit_library_call_value_1): Change 3rd arg to
|
||||
locate_and_pad_parm to disregard the setting of partial.
|
||||
|
||||
Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
@ -3889,11 +3924,11 @@ Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
2000-01-27 Clinton Popetz <cpopetz@cygnus.com>
|
||||
|
||||
* rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
|
||||
reload_toc_labelno for non-prologue TOC reloads. Also, don't
|
||||
increment rs6000_pic_labelno here.
|
||||
(rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
|
||||
and increment rs6000_pic_labelno here.
|
||||
* rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
|
||||
reload_toc_labelno for non-prologue TOC reloads. Also, don't
|
||||
increment rs6000_pic_labelno here.
|
||||
(rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
|
||||
and increment rs6000_pic_labelno here.
|
||||
|
||||
2000-01-24 Geoffrey Keating <geoffk@cygnus.com>
|
||||
|
||||
@ -4072,29 +4107,29 @@ Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
2000-01-07 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* rs6000.c (processor_target_table): Add power3 as alias for 630.
|
||||
* aix43.h: Revert Aug 2 change.
|
||||
(HAS_INIT_SECTION): Define, not visible yet.
|
||||
(LD_INIT_SWITCH): Define, not visible yet.
|
||||
* t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
|
||||
* rs6000.c (processor_target_table): Add power3 as alias for 630.
|
||||
* aix43.h: Revert Aug 2 change.
|
||||
(HAS_INIT_SECTION): Define, not visible yet.
|
||||
(LD_INIT_SWITCH): Define, not visible yet.
|
||||
* t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
|
||||
|
||||
2000-01-04 Joel Sherrill (joel@OARcorp.com>
|
||||
|
||||
* config/rs6000/rtems.h: Include config/rtems.h.
|
||||
* config/rs6000/rtems.h: Include config/rtems.h.
|
||||
|
||||
2000-01-04 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* rs6000.h (HANDLE_PRAGMA_PACK): Define.
|
||||
(SLOW_UNALIGNED_ACCESS): Define.
|
||||
(CASE_VECTOR_MODE): Always use 32-bit offsets.
|
||||
(ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
|
||||
(EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
|
||||
(toc_section): Likewise and .toc pseudo-op.
|
||||
(ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
|
||||
64-bit mode.
|
||||
(TEXT_SECTION_ASM_OP): Likewise.
|
||||
(ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
|
||||
32-bit offsets.
|
||||
* rs6000.h (HANDLE_PRAGMA_PACK): Define.
|
||||
(SLOW_UNALIGNED_ACCESS): Define.
|
||||
(CASE_VECTOR_MODE): Always use 32-bit offsets.
|
||||
(ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
|
||||
(EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
|
||||
(toc_section): Likewise and .toc pseudo-op.
|
||||
(ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
|
||||
64-bit mode.
|
||||
(TEXT_SECTION_ASM_OP): Likewise.
|
||||
(ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
|
||||
32-bit offsets.
|
||||
|
||||
1999-12-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
@ -4111,7 +4146,7 @@ Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
2000-01-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||
|
||||
* rs6000.h: Continue cleanup.
|
||||
* rs6000.h: Continue cleanup.
|
||||
* aix.h: Likewise.
|
||||
* lynx.h: Likewise.
|
||||
* netware.h: Likewise.
|
||||
|
@ -1360,7 +1360,7 @@ $(srcdir)/c-parse.y: c-parse.in
|
||||
$(srcdir)/c-gperf.h: c-parse.gperf
|
||||
gperf -L C -F ', 0, 0' -p -j1 -i 1 -g -o -t -G -N is_reserved_word \
|
||||
-k1,3,$$ $(srcdir)/c-parse.gperf >tmp-gperf.h || ( \
|
||||
echo "See " $(website)/cvs.html#generated_files >&2 ; \
|
||||
echo "See $(website)/cvs.html#generated_files" >&2 ; \
|
||||
exit 1 )
|
||||
$(SHELL) $(srcdir)/move-if-change tmp-gperf.h $(srcdir)/c-gperf.h
|
||||
|
||||
|
@ -1625,7 +1625,7 @@ yylex ()
|
||||
floatflag = AFTER_EXPON;
|
||||
break; /* start of exponent */
|
||||
}
|
||||
else if (c >= 'a')
|
||||
else if (c >= 'a' && c <= 'f')
|
||||
{
|
||||
c = c - 'a' + 10;
|
||||
}
|
||||
|
11
gcc/cccp.c
11
gcc/cccp.c
@ -10249,10 +10249,13 @@ initialize_char_syntax ()
|
||||
* refer to them.
|
||||
*/
|
||||
for (i = 'a'; i <= 'z'; i++) {
|
||||
is_idchar[TOUPPER(i)] = 1;
|
||||
is_idchar[i] = 1;
|
||||
is_idstart[TOUPPER(i)] = 1;
|
||||
is_idstart[i] = 1;
|
||||
/* SKIP EBCIDIC holes, char must be a valid low case char */
|
||||
if (ISLOWER(i)) {
|
||||
is_idchar[TOUPPER(i)] = 1;
|
||||
is_idchar[i] = 1;
|
||||
is_idstart[TOUPPER(i)] = 1;
|
||||
is_idstart[i] = 1;
|
||||
}
|
||||
}
|
||||
for (i = '0'; i <= '9'; i++)
|
||||
is_idchar[i] = 1;
|
||||
|
11
gcc/cexp.y
11
gcc/cexp.y
@ -1114,10 +1114,13 @@ initialize_random_junk ()
|
||||
* refer to them.
|
||||
*/
|
||||
for (i = 'a'; i <= 'z'; i++) {
|
||||
++is_idchar[TOUPPER(i)];
|
||||
++is_idchar[i];
|
||||
++is_idstart[TOUPPER(i)];
|
||||
++is_idstart[i];
|
||||
/* SKIP EBCIDIC holes, char must be a valid low case char */
|
||||
if (ISLOWER(i)) {
|
||||
++is_idchar[TOUPPER(i)];
|
||||
++is_idchar[i];
|
||||
++is_idstart[TOUPPER(i)];
|
||||
++is_idstart[i];
|
||||
}
|
||||
}
|
||||
for (i = '0'; i <= '9'; i++)
|
||||
++is_idchar[i];
|
||||
|
@ -284,7 +284,7 @@ find_include_file (pfile, fname, search_start, ihash, before)
|
||||
else
|
||||
{
|
||||
/* Search directory path, trying to open the file. */
|
||||
name = alloca (strlen (fname) + pfile->max_include_len
|
||||
name = (char *) alloca (strlen (fname) + pfile->max_include_len
|
||||
+ 2 + INCLUDE_LEN_FUDGE);
|
||||
do
|
||||
{
|
||||
|
@ -795,7 +795,7 @@ initialize_standard_includes (pfile)
|
||||
These have /usr/local/lib/gcc... replaced by specd_prefix. */
|
||||
if (specd_prefix != 0)
|
||||
{
|
||||
char *default_prefix = alloca (sizeof GCC_INCLUDE_DIR - 7);
|
||||
char *default_prefix = (char *) alloca (sizeof GCC_INCLUDE_DIR - 7);
|
||||
/* Remove the `include' from /usr/local/lib/gcc.../include.
|
||||
GCC_INCLUDE_DIR will always end in /include. */
|
||||
int default_len = sizeof GCC_INCLUDE_DIR - 8;
|
||||
|
@ -1705,7 +1705,7 @@ cpp_define (pfile, str)
|
||||
if (p)
|
||||
{
|
||||
count = strlen (str) + 2;
|
||||
buf = alloca (count);
|
||||
buf = (char *) alloca (count);
|
||||
memcpy (buf, str, count - 2);
|
||||
buf[p - str] = ' ';
|
||||
buf[count - 2] = '\n';
|
||||
@ -1714,7 +1714,7 @@ cpp_define (pfile, str)
|
||||
else
|
||||
{
|
||||
count = strlen (str) + 4;
|
||||
buf = alloca (count);
|
||||
buf = (char *) alloca (count);
|
||||
memcpy (buf, str, count - 4);
|
||||
strcpy (&buf[count-4], " 1\n");
|
||||
}
|
||||
@ -1734,7 +1734,7 @@ cpp_undef (pfile, macro)
|
||||
{
|
||||
/* Copy the string so we can append a newline. */
|
||||
size_t len = strlen (macro);
|
||||
char *buf = alloca (len + 2);
|
||||
char *buf = (char *) alloca (len + 2);
|
||||
memcpy (buf, macro, len);
|
||||
buf[len] = '\n';
|
||||
buf[len + 1] = '\0';
|
||||
|
@ -80,7 +80,7 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0)
|
||||
register int c = p[i]; \
|
||||
if (c == '\"' || c == '\\') \
|
||||
putc ('\\', asm_out_file); \
|
||||
if (c >= ' ' && c < 0177) \
|
||||
if (ISPRINT(c)) \
|
||||
putc (c, asm_out_file); \
|
||||
else \
|
||||
{ \
|
||||
|
@ -3457,8 +3457,7 @@ output_asm_insn (template, operands)
|
||||
Letters `acln' are implemented directly.
|
||||
Other letters are passed to `output_operand' so that
|
||||
the PRINT_OPERAND macro can define them. */
|
||||
else if ((*p >= 'a' && *p <= 'z')
|
||||
|| (*p >= 'A' && *p <= 'Z'))
|
||||
else if (ISLOWER(*p) || ISUPPER(*p))
|
||||
{
|
||||
int letter = *p++;
|
||||
c = atoi (p);
|
||||
|
@ -106,6 +106,14 @@ static int count_cond PARAMS ((tree, int));
|
||||
#define BRANCH_COST 1
|
||||
#endif
|
||||
|
||||
#if defined(HOST_EBCDIC)
|
||||
/* bit 8 is significant in EBCDIC */
|
||||
#define CHARMASK 0xff
|
||||
#else
|
||||
#define CHARMASK 0x7f
|
||||
#endif
|
||||
|
||||
|
||||
/* We know that A1 + B1 = SUM1, using 2's complement arithmetic and ignoring
|
||||
overflow. Suppose A, B and SUM have the same respective signs as A1, B1,
|
||||
and SUM1. Then this yields nonzero if overflow occurred during the
|
||||
@ -1091,8 +1099,8 @@ real_hex_to_f (s, mode)
|
||||
if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')
|
||||
|| (c >= 'a' && c <= 'f'))
|
||||
{
|
||||
k = c & 0x7f;
|
||||
if (k >= 'a')
|
||||
k = c & CHARMASK;
|
||||
if (k >= 'a' && k <= 'f')
|
||||
k = k - 'a' + 10;
|
||||
else if (k >= 'A')
|
||||
k = k - 'A' + 10;
|
||||
@ -1137,7 +1145,7 @@ real_hex_to_f (s, mode)
|
||||
The exponent field is a decimal integer. */
|
||||
while (ISDIGIT(*p))
|
||||
{
|
||||
k = (*p++ & 0x7f) - '0';
|
||||
k = (*p++ & CHARMASK) - '0';
|
||||
expon = 10 * expon + k;
|
||||
}
|
||||
|
||||
|
13
gcc/real.c
13
gcc/real.c
@ -337,6 +337,13 @@ do { \
|
||||
/* The exponent of 1.0 */
|
||||
#define EXONE (0x3fff)
|
||||
|
||||
#if defined(HOST_EBCDIC)
|
||||
/* bit 8 is significant in EBCDIC */
|
||||
#define CHARMASK 0xff
|
||||
#else
|
||||
#define CHARMASK 0x7f
|
||||
#endif
|
||||
|
||||
extern int extra_warnings;
|
||||
extern unsigned EMUSHORT ezero[], ehalf[], eone[], etwo[];
|
||||
extern unsigned EMUSHORT elog2[], esqrt2[];
|
||||
@ -4981,7 +4988,7 @@ etoasc (x, string, ndigs)
|
||||
/* Round up and propagate carry-outs */
|
||||
roun:
|
||||
--s;
|
||||
k = *s & 0x7f;
|
||||
k = *s & CHARMASK;
|
||||
/* Carry out to most significant digit? */
|
||||
if (k == '.')
|
||||
{
|
||||
@ -5142,7 +5149,7 @@ asctoeg (ss, y, oprec)
|
||||
nxtcom:
|
||||
if (*s >= '0' && *s <= '9')
|
||||
k = *s - '0';
|
||||
else if (*s >= 'a')
|
||||
else if (*s >= 'a' && *s <= 'f')
|
||||
k = 10 + *s - 'a';
|
||||
else
|
||||
k = 10 + *s - 'A';
|
||||
@ -5160,7 +5167,7 @@ asctoeg (ss, y, oprec)
|
||||
|| (*sp >= 'A' && *sp <= 'F'))))
|
||||
++sp;
|
||||
/* Check for syntax error */
|
||||
c = *sp & 0x7f;
|
||||
c = *sp & CHARMASK;
|
||||
if ((base != 10 || ((c != 'e') && (c != 'E')))
|
||||
&& (base != 16 || ((c != 'p') && (c != 'P')))
|
||||
&& (c != '\0')
|
||||
|
Loading…
Reference in New Issue
Block a user