Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
4f90e4a0
Commit
4f90e4a0
authored
Feb 10, 1994
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
If __STDC__, include gstdarg and use ANSI form of varargs.
From-SVN: r6514
parent
6c1e2493
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
126 additions
and
54 deletions
+126
-54
gcc/bc-emit.c
+13
-6
gcc/calls.c
+35
-17
gcc/combine.c
+15
-5
gcc/emit-rtl.c
+22
-8
gcc/final.c
+17
-8
gcc/gcc.c
+24
-10
No files found.
gcc/bc-emit.c
View file @
4f90e4a0
/* Output bytecodes for GNU C-compiler.
Copyright (C) 1993 Free Software Foundation, Inc.
Copyright (C) 1993
, 1994
Free Software Foundation, Inc.
This file is part of GNU CC.
...
...
@@ -19,7 +19,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "config.h"
#ifdef __STDC__
#include "gstdarg.h"
#else
#include "gvarargs.h"
#endif
#include "machmode.h"
#include "rtl.h"
#include "real.h"
...
...
@@ -906,18 +910,21 @@ bc_emit_bytecode (bytecode)
of literal values in the call. First argument is the instruction, the
remaining arguments are literals of size HOST_WIDE_INT or smaller. */
void
bc_emit_instruction
(
va_alist
)
va_dcl
bc_emit_instruction
VPROTO
((
enum
bytecode_opcode
opcode
,
...))
{
va_list
arguments
;
#ifndef __STDC__
enum
bytecode_opcode
opcode
;
#endif
va_list
arguments
;
int
nliteral
,
instruction
;
VA_START
(
arguments
,
opcode
);
va_start
(
arguments
);
#ifndef __STDC__
opcode
=
va_arg
(
arguments
,
enum
bytecode_opcode
);
#endif
/* Emit instruction bytecode */
opcode
=
va_arg
(
arguments
,
enum
bytecode_opcode
);
bc_emit_bytecode
(
opcode
);
instruction
=
(
int
)
opcode
;
...
...
gcc/calls.c
View file @
4f90e4a0
...
...
@@ -22,7 +22,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "tree.h"
#include "flags.h"
#include "expr.h"
#ifdef __STDC__
#include "gstdarg.h"
#else
#include "gvarargs.h"
#endif
#include "insn-flags.h"
/* Decide whether a function's arguments should be processed
...
...
@@ -2069,19 +2073,22 @@ expand_call (exp, target, ignore)
move memory references across the non-const call. */
void
emit_library_call
(
va_alist
)
va_dcl
emit_library_call
VPROTO
((
rtx
orgfun
,
int
no_queue
,
enum
machine_mode
outmode
,
int
nargs
,
...))
{
#ifndef __STDC__
rtx
orgfun
;
int
no_queue
;
enum
machine_mode
outmode
;
int
nargs
;
#endif
va_list
p
;
/* Total size in bytes of all the stack-parms scanned so far. */
struct
args_size
args_size
;
/* Size of arguments before any adjustments (such as rounding). */
struct
args_size
original_args_size
;
register
int
argnum
;
enum
machine_mode
outmode
;
int
nargs
;
rtx
fun
;
rtx
orgfun
;
int
inc
;
int
count
;
rtx
argblock
=
0
;
...
...
@@ -2090,16 +2097,20 @@ emit_library_call (va_alist)
struct
args_size
offset
;
struct
args_size
size
;
};
struct
arg
*
argvec
;
int
old_inhibit_defer_pop
=
inhibit_defer_pop
;
int
no_queue
=
0
;
rtx
use_insns
;
/* library calls are never indirect calls. */
int
current_call_is_indirect
=
0
;
va_start
(
p
);
orgfun
=
fun
=
va_arg
(
p
,
rtx
);
VA_START
(
p
,
nargs
);
#ifndef __STDC__
orgfun
=
va_arg
(
p
,
rtx
);
no_queue
=
va_arg
(
p
,
int
);
outmode
=
va_arg
(
p
,
enum
machine_mode
);
nargs
=
va_arg
(
p
,
int
);
#endif
fun
=
orgfun
;
/* Copy all the libcall-arguments out of the varargs data
and into a vector ARGVEC.
...
...
@@ -2338,19 +2349,23 @@ emit_library_call (va_alist)
If VALUE is nonzero, VALUE is returned. */
rtx
emit_library_call_value
(
va_alist
)
va_dcl
emit_library_call_value
VPROTO
((
rtx
orgfun
,
rtx
value
,
int
no_queue
,
enum
machine_mode
outmode
,
int
nargs
,
...))
{
#ifndef __STDC__
rtx
orgfun
;
rtx
value
;
int
no_queue
;
enum
machine_mode
outmode
;
int
nargs
;
#endif
va_list
p
;
/* Total size in bytes of all the stack-parms scanned so far. */
struct
args_size
args_size
;
/* Size of arguments before any adjustments (such as rounding). */
struct
args_size
original_args_size
;
register
int
argnum
;
enum
machine_mode
outmode
;
int
nargs
;
rtx
fun
;
rtx
orgfun
;
int
inc
;
int
count
;
rtx
argblock
=
0
;
...
...
@@ -2359,21 +2374,24 @@ emit_library_call_value (va_alist)
struct
args_size
offset
;
struct
args_size
size
;
};
struct
arg
*
argvec
;
int
old_inhibit_defer_pop
=
inhibit_defer_pop
;
int
no_queue
=
0
;
rtx
use_insns
;
rtx
value
;
rtx
mem_value
=
0
;
int
pcc_struct_value
=
0
;
int
struct_value_size
=
0
;
/* library calls are never indirect calls. */
int
current_call_is_indirect
=
0
;
va_start
(
p
);
orgfun
=
fun
=
va_arg
(
p
,
rtx
);
VA_START
(
p
,
nargs
);
#ifndef __STDC__
orgfun
=
va_arg
(
p
,
rtx
);
value
=
va_arg
(
p
,
rtx
);
no_queue
=
va_arg
(
p
,
int
);
outmode
=
va_arg
(
p
,
enum
machine_mode
);
nargs
=
va_arg
(
p
,
int
);
#endif
fun
=
orgfun
;
/* If this kind of value comes back in memory,
decide where in memory it should come back. */
...
...
gcc/combine.c
View file @
4f90e4a0
...
...
@@ -74,7 +74,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
combine anyway. */
#include "config.h"
#ifdef __STDC__
#include "gstdarg.h"
#else
#include "gvarargs.h"
#endif
/* Must precede rtl.h for FFS. */
#include <stdio.h>
...
...
@@ -398,7 +402,8 @@ static rtx simplify_shift_const PROTO((rtx, enum rtx_code, enum machine_mode,
rtx
,
int
));
static
int
recog_for_combine
PROTO
((
rtx
*
,
rtx
,
rtx
*
));
static
rtx
gen_lowpart_for_combine
PROTO
((
enum
machine_mode
,
rtx
));
static
rtx
gen_rtx_combine
();
/* This is varargs. */
static
rtx
gen_rtx_combine
PROTO
((
enum
rtx_code
code
,
enum
machine_mode
mode
,
...));
static
rtx
gen_binary
PROTO
((
enum
rtx_code
,
enum
machine_mode
,
rtx
,
rtx
));
static
rtx
gen_unary
PROTO
((
enum
rtx_code
,
enum
machine_mode
,
rtx
));
...
...
@@ -8293,21 +8298,26 @@ gen_lowpart_for_combine (mode, x)
/*VARARGS2*/
static
rtx
gen_rtx_combine
(
va_alist
)
va_dcl
gen_rtx_combine
VPROTO
((
enum
rtx_code
code
,
enum
machine_mode
mode
,
...))
{
va_list
p
;
#ifndef __STDC__
enum
rtx_code
code
;
enum
machine_mode
mode
;
#endif
va_list
p
;
int
n_args
;
rtx
args
[
3
];
int
i
,
j
;
char
*
fmt
;
rtx
rt
;
va_start
(
p
);
VA_START
(
p
,
mode
);
#ifndef __STDC__
code
=
va_arg
(
p
,
enum
rtx_code
);
mode
=
va_arg
(
p
,
enum
machine_mode
);
#endif
n_args
=
GET_RTX_LENGTH
(
code
);
fmt
=
GET_RTX_FORMAT
(
code
);
...
...
gcc/emit-rtl.c
View file @
4f90e4a0
...
...
@@ -34,7 +34,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
is the kind of rtx's they make and what arguments they use. */
#include "config.h"
#ifdef __STDC__
#include "gstdarg.h"
#else
#include "gvarargs.h"
#endif
#include "rtl.h"
#include "tree.h"
#include "flags.h"
...
...
@@ -277,19 +281,23 @@ extern int max_stack_depth;
/*VARARGS2*/
rtx
gen_rtx
(
va_alist
)
va_dcl
gen_rtx
VPROTO
((
enum
rtx_code
code
,
enum
machine_mode
mode
,
...))
{
va_list
p
;
#ifndef __STDC__
enum
rtx_code
code
;
enum
machine_mode
mode
;
#endif
va_list
p
;
register
int
i
;
/* Array indices... */
register
char
*
fmt
;
/* Current rtx's format... */
register
rtx
rt_val
;
/* RTX to return to caller... */
va_start
(
p
);
VA_START
(
p
,
mode
);
#ifndef __STDC__
code
=
va_arg
(
p
,
enum
rtx_code
);
mode
=
va_arg
(
p
,
enum
machine_mode
);
#endif
if
(
code
==
CONST_INT
)
{
...
...
@@ -397,20 +405,26 @@ gen_rtx (va_alist)
/*VARARGS1*/
rtvec
gen_rtvec
(
va_alist
)
va_dcl
gen_rtvec
VPROTO
((
int
n
,
...))
{
int
n
,
i
;
#ifndef __STDC__
int
n
;
#endif
int
i
;
va_list
p
;
rtx
*
vector
;
va_start
(
p
);
VA_START
(
p
,
n
);
#ifndef __STDC__
n
=
va_arg
(
p
,
int
);
#endif
if
(
n
==
0
)
return
NULL_RTVEC
;
/* Don't allocate an empty rtvec... */
vector
=
(
rtx
*
)
alloca
(
n
*
sizeof
(
rtx
));
for
(
i
=
0
;
i
<
n
;
i
++
)
vector
[
i
]
=
va_arg
(
p
,
rtx
);
va_end
(
p
);
...
...
gcc/final.c
View file @
4f90e4a0
/* Convert RTL to assembler code and output it, for GNU compiler.
Copyright (C) 1987,
1988, 1989, 1992, 1993
Free Software Foundation, Inc.
Copyright (C) 1987,
88, 89, 92, 93, 1994
Free Software Foundation, Inc.
This file is part of GNU CC.
...
...
@@ -44,7 +44,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
FUNCTION_EPILOGUE. Those instructions never exist as rtl. */
#include "config.h"
#ifdef __STDC__
#include "gstdarg.h"
#else
#include "gvarargs.h"
#endif
#include "tree.h"
#include "rtl.h"
#include "regs.h"
...
...
@@ -2679,19 +2683,24 @@ output_addr_const (file, x)
We handle alternate assembler dialects here, just like output_asm_insn. */
void
asm_fprintf
(
va_alist
)
va_dcl
asm_fprintf
VPROTO
((
FILE
*
file
,
char
*
p
,
...))
{
va_list
argptr
;
#ifndef __STDC__
FILE
*
file
;
char
*
p
;
#endif
va_list
argptr
;
char
buf
[
10
];
char
*
p
,
*
q
,
c
;
char
*
q
,
c
;
int
i
;
va_start
(
argptr
);
VA_START
(
argptr
,
p
);
#ifndef __STDC__
file
=
va_arg
(
argptr
,
FILE
*
);
p
=
va_arg
(
argptr
,
char
*
);
#endif
file
=
va_arg
(
argptr
,
FILE
*
);
p
=
va_arg
(
argptr
,
char
*
);
buf
[
0
]
=
'%'
;
while
(
c
=
*
p
++
)
...
...
gcc/gcc.c
View file @
4f90e4a0
...
...
@@ -38,7 +38,11 @@ compilation is specified by a string called a "spec". */
#include "config.h"
#include "obstack.h"
#ifdef __STDC__
#include "gstdarg.h"
#else
#include "gvarargs.h"
#endif
#include <stdio.h>
#ifndef R_OK
...
...
@@ -4178,14 +4182,19 @@ fancy_abort ()
/* Output an error message and exit */
static
void
fatal
(
va_alist
)
va_dcl
fatal
VPROTO
((
char
*
format
,
...))
{
va_list
ap
;
#ifndef __STDC__
char
*
format
;
#endif
va_list
ap
;
VA_START
(
ap
,
format
);
#ifndef __STDC__
format
=
va_arg
(
ap
,
char
*
);
#endif
va_start
(
ap
);
format
=
va_arg
(
ap
,
char
*
);
fprintf
(
stderr
,
"%s: "
,
programname
);
vfprintf
(
stderr
,
format
,
ap
);
va_end
(
ap
);
...
...
@@ -4195,14 +4204,19 @@ fatal (va_alist)
}
static
void
error
(
va_alist
)
va_dcl
error
VPROTO
((
char
*
format
,
...))
{
va_list
ap
;
#ifndef __STDC__
char
*
format
;
#endif
va_list
ap
;
VA_START
(
ap
,
format
);
#ifndef __STDC__
format
=
va_arg
(
ap
,
char
*
);
#endif
va_start
(
ap
);
format
=
va_arg
(
ap
,
char
*
);
fprintf
(
stderr
,
"%s: "
,
programname
);
vfprintf
(
stderr
,
format
,
ap
);
va_end
(
ap
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment