resolve merge conflicts
This commit is contained in:
parent
f48728536a
commit
b0dc17edf5
171
external/bsd/pcc/dist/pcc/cc/ccom/ccom.1
vendored
171
external/bsd/pcc/dist/pcc/cc/ccom/ccom.1
vendored
@ -1,5 +1,5 @@
|
|||||||
.\" Id: ccom.1,v 1.24 2011/11/14 16:46:17 plunky Exp
|
.\" Id: ccom.1,v 1.27 2012/03/22 21:09:41 plunky Exp
|
||||||
.\" $NetBSD: ccom.1,v 1.5 2012/01/11 20:46:48 plunky Exp $
|
.\" $NetBSD: ccom.1,v 1.6 2012/03/26 14:30:46 plunky Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2007 Jeremy C. Reed <reed@reedmedia.net>
|
.\" Copyright (c) 2007 Jeremy C. Reed <reed@reedmedia.net>
|
||||||
.\"
|
.\"
|
||||||
@ -16,7 +16,7 @@
|
|||||||
.\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
.\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||||
.\" THIS SOFTWARE.
|
.\" THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd November 14, 2011
|
.Dd March 22, 2012
|
||||||
.Dt CCOM 1
|
.Dt CCOM 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -222,7 +222,7 @@ Do dead code elimination.
|
|||||||
Delete redundant jumps and dead code.
|
Delete redundant jumps and dead code.
|
||||||
.It Sy gnu89
|
.It Sy gnu89
|
||||||
.It Sy gnu99
|
.It Sy gnu99
|
||||||
Use gcc semantics rather than C99 for some things.
|
Use GNU C semantics rather than C99 for some things.
|
||||||
Currently only inline.
|
Currently only inline.
|
||||||
.It Sy inline
|
.It Sy inline
|
||||||
Replace calls to functions marked with an inline specifier with a copy
|
Replace calls to functions marked with an inline specifier with a copy
|
||||||
@ -254,6 +254,8 @@ Code printout
|
|||||||
Trees when entering pass2
|
Trees when entering pass2
|
||||||
.It Sy f
|
.It Sy f
|
||||||
Instruction matcher, may provide much output
|
Instruction matcher, may provide much output
|
||||||
|
.It Sy g
|
||||||
|
Print flow graphs
|
||||||
.It Sy n
|
.It Sy n
|
||||||
Memory allocation
|
Memory allocation
|
||||||
.It Sy o
|
.It Sy o
|
||||||
@ -270,6 +272,167 @@ Sethi-Ullman computations
|
|||||||
Target-specific flag, used in machine-dependent code
|
Target-specific flag, used in machine-dependent code
|
||||||
.El
|
.El
|
||||||
.El
|
.El
|
||||||
|
.Sh PRAGMAS
|
||||||
|
Input lines starting with a
|
||||||
|
.Dq #pragma
|
||||||
|
directive can be used to modify behaviour of
|
||||||
|
.Nm
|
||||||
|
during compilation.
|
||||||
|
All tokens up to the first unescaped newline are considered part
|
||||||
|
of the pragma command, with the following operations being recognized:
|
||||||
|
.Bl -tag
|
||||||
|
.It Sy STDC
|
||||||
|
Standard C99 operator follows.
|
||||||
|
Currently no C99 operations are implemented, and any directives starting
|
||||||
|
with this token will be silently ignored.
|
||||||
|
.It Sy GCC diagnostic Ar effect Qq Ar option
|
||||||
|
GNU C compatibility.
|
||||||
|
Alter the effects of compiler diagnostics.
|
||||||
|
The required
|
||||||
|
.Ar effect
|
||||||
|
should be stated as
|
||||||
|
.Sy warning ,
|
||||||
|
.Sy error
|
||||||
|
or
|
||||||
|
.Sy ignored ,
|
||||||
|
followed by the compiler diagnostic
|
||||||
|
.Ar option
|
||||||
|
in double quotes.
|
||||||
|
For example, to force unknown pragmas to always generate an error,
|
||||||
|
a standard header might include
|
||||||
|
.Bd -literal -offset 2n
|
||||||
|
#pragma GCC diagnostic error "-Wunknown-pragmas"
|
||||||
|
.Ed
|
||||||
|
.It Sy GCC poison Ar identifier ...
|
||||||
|
GNU C compatibility.
|
||||||
|
Cause an error if any of the following
|
||||||
|
.Ar identifier Ns s
|
||||||
|
subsequently appear in the code
|
||||||
|
.Pq but not in any macro expansions .
|
||||||
|
Currently not implemented.
|
||||||
|
.It Sy GCC visibility
|
||||||
|
GNU C compatibility.
|
||||||
|
Currently not implemented.
|
||||||
|
.It Sy pack Ns Pq Op Ar n
|
||||||
|
Set the default maximum alignment for structures and unions, such that
|
||||||
|
members will have their natural alignment requirements clamped at this
|
||||||
|
value and may be stored misaligned.
|
||||||
|
If
|
||||||
|
.Ar n
|
||||||
|
is not given, the alignment is reset to the target default.
|
||||||
|
.It Sy pack Ns Pq Sy push Ns Op , Ar n
|
||||||
|
Push the current pack setting onto an internal stack then, if
|
||||||
|
.Ar n
|
||||||
|
is given, change the default alignment for structures and unions.
|
||||||
|
Currently not implemented.
|
||||||
|
.It Sy pack Ns Pq Sy pop
|
||||||
|
Change the pack setting to the most recently pushed value, and remove
|
||||||
|
that setting from the stack.
|
||||||
|
Currently not implemented.
|
||||||
|
.It Sy packed Op Ar n
|
||||||
|
Set the maximum alignment for the structure or union defined
|
||||||
|
in the current statement.
|
||||||
|
If
|
||||||
|
.Ar n
|
||||||
|
is not given, the default value of 1 is used.
|
||||||
|
.Pq Currently this works except Ar n is not used
|
||||||
|
.It Sy aligned Op Ar n
|
||||||
|
Set the minimum alignment for the structure or union defined
|
||||||
|
in the current statement.
|
||||||
|
.It Sy rename Ar name
|
||||||
|
Provide an alternative
|
||||||
|
.Ar name
|
||||||
|
which will be used to reference the object declared in the current statement.
|
||||||
|
.It Sy weak Ar name Ns Op = Ns Ar alias
|
||||||
|
Mark
|
||||||
|
.Ar name
|
||||||
|
as a weak rather than a global symbol, to allow its definition to be
|
||||||
|
overridden at link time.
|
||||||
|
If an
|
||||||
|
.Ar alias
|
||||||
|
is given, this will be used as the default value of
|
||||||
|
.Ar name.
|
||||||
|
.It Sy ident
|
||||||
|
Currently not implemented.
|
||||||
|
.El
|
||||||
|
.Lp
|
||||||
|
and the following target-specific operations are handled by
|
||||||
|
machine-dependent code:
|
||||||
|
.Bl -tag
|
||||||
|
.It Sy tls
|
||||||
|
For AMD64 and i386 targets, the variable declared in the current statement
|
||||||
|
will be referenced via the
|
||||||
|
.Dq thread-local storage
|
||||||
|
mechanism.
|
||||||
|
.It Sy init
|
||||||
|
For AMD64, ARM, HPPA, i386, MIPS and PowerPC targets, when the current statement is a
|
||||||
|
function declaration, generate a reference in the
|
||||||
|
.Sy .ctors
|
||||||
|
section, enabling library code to call the function prior to entering
|
||||||
|
.Fn main .
|
||||||
|
.It Sy fini
|
||||||
|
For AMD64, ARM, HPPA, i386, MIPS and PowerPC targets, when the current statement is a
|
||||||
|
function declaration, generate a reference in the
|
||||||
|
.Sy .dtors
|
||||||
|
section, enabling library code to call the function when
|
||||||
|
.Fn main
|
||||||
|
returns or the
|
||||||
|
.Fn exit
|
||||||
|
function is called.
|
||||||
|
.It Sy section Ar name
|
||||||
|
For AMD64, ARM, HPPA and i386 targets, place the subsequent code in the named
|
||||||
|
section.
|
||||||
|
.Pq This is currently broken .
|
||||||
|
.It Sy alias Ar name
|
||||||
|
For AMD64, HPPA and i386 targets, emit assembler instructions providing an
|
||||||
|
alias for the symbol defined by the current statement.
|
||||||
|
.It Sy stdcall
|
||||||
|
For i386 targets, enable
|
||||||
|
.Dq stdcall
|
||||||
|
semantics during code generation, where function arguments are passed on
|
||||||
|
the stack in right-to-left order, and the callee is responsible for adjusting
|
||||||
|
the stack pointer before returning.
|
||||||
|
Any function result is passed in the EAX register.
|
||||||
|
On win32, the function name is postfixed with an
|
||||||
|
.Dq @
|
||||||
|
and the size of the stack adjustment.
|
||||||
|
.It Sy cdecl
|
||||||
|
For i386 targets, enable
|
||||||
|
.Dq cdecl
|
||||||
|
semantics during code generation, where function arguments are passed on
|
||||||
|
the stack in right-to-left order, and the caller is responsible for cleaning
|
||||||
|
up the stack after the function returns.
|
||||||
|
Any function result is passed in the EAX register.
|
||||||
|
This is the default.
|
||||||
|
.It Sy fastcall
|
||||||
|
For i386-win32 targets, enable
|
||||||
|
.Dq fastcall
|
||||||
|
semantics during code generation.
|
||||||
|
.Po
|
||||||
|
Currently this is equivalent to
|
||||||
|
.Sy stdcall ,
|
||||||
|
which is likely wrong
|
||||||
|
.Pc .
|
||||||
|
.It Sy dllimport
|
||||||
|
For i386-win32 targets, references to the external symbol defined by
|
||||||
|
the current statement will be made via indirect access through a
|
||||||
|
location identified by the symbol name prefixed with
|
||||||
|
.Dq __imp_ .
|
||||||
|
.It Sy dllexport
|
||||||
|
For i386-win32 targets, the external symbol declared by the current
|
||||||
|
statement will be exported as an indirect reference to be
|
||||||
|
accessed with
|
||||||
|
.Sy dllimport .
|
||||||
|
The global locator will be the symbol name prefixed with
|
||||||
|
.Dq __imp_ .
|
||||||
|
Currently this is not completely implemented.
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
Any unknown
|
||||||
|
.Dq #pragma
|
||||||
|
directives will be ignored unless the
|
||||||
|
.Fl Wunknown-pragmas
|
||||||
|
diagnostic is in effect.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr as 1 ,
|
.Xr as 1 ,
|
||||||
.Xr cpp 1 ,
|
.Xr cpp 1 ,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Id: gcc_compat.c,v 1.81 2011/07/27 13:41:44 ragge Exp */
|
/* Id: gcc_compat.c,v 1.83 2012/03/22 18:04:41 plunky Exp */
|
||||||
/* $NetBSD: gcc_compat.c,v 1.2 2012/03/12 09:09:40 plunky Exp $ */
|
/* $NetBSD: gcc_compat.c,v 1.3 2012/03/26 14:30:46 plunky Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004 Anders Magnusson (ragge@ludd.luth.se).
|
* Copyright (c) 2004 Anders Magnusson (ragge@ludd.luth.se).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -514,7 +514,8 @@ gcc_tcattrfix(NODE *p)
|
|||||||
int
|
int
|
||||||
pragmas_gcc(char *t)
|
pragmas_gcc(char *t)
|
||||||
{
|
{
|
||||||
int ign, warn, err, i, u;
|
char u;
|
||||||
|
int ign, warn, err, i;
|
||||||
extern bittype warnary[], werrary[];
|
extern bittype warnary[], werrary[];
|
||||||
extern char *flagstr[], *pragstore;
|
extern char *flagstr[], *pragstore;
|
||||||
|
|
||||||
|
9
external/bsd/pcc/dist/pcc/cc/ccom/pass1.h
vendored
9
external/bsd/pcc/dist/pcc/cc/ccom/pass1.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/* Id: pass1.h,v 1.235 2011/08/14 14:52:29 ragge Exp */
|
/* Id: pass1.h,v 1.237 2012/03/22 18:51:40 plunky Exp */
|
||||||
/* $NetBSD: pass1.h,v 1.2 2012/03/12 09:09:40 plunky Exp $ */
|
/* $NetBSD: pass1.h,v 1.3 2012/03/26 14:30:46 plunky Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
|
* Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
|
||||||
*
|
*
|
||||||
@ -169,7 +169,6 @@ int mygenswitch(int, TWORD, struct swents **, int);
|
|||||||
extern int blevel;
|
extern int blevel;
|
||||||
extern int instruct, got_type;
|
extern int instruct, got_type;
|
||||||
extern int oldstyle;
|
extern int oldstyle;
|
||||||
extern int oflag;
|
|
||||||
|
|
||||||
extern int lineno, nerrors;
|
extern int lineno, nerrors;
|
||||||
|
|
||||||
@ -183,8 +182,8 @@ extern OFFSZ inoff;
|
|||||||
extern int reached;
|
extern int reached;
|
||||||
extern int isinlining;
|
extern int isinlining;
|
||||||
extern int xinline, xgnu89, xgnu99;
|
extern int xinline, xgnu89, xgnu99;
|
||||||
|
extern int bdebug, ddebug, edebug, idebug, ndebug;
|
||||||
extern int sdebug, idebug, pdebug;
|
extern int odebug, pdebug, sdebug, tdebug, xdebug;
|
||||||
|
|
||||||
/* various labels */
|
/* various labels */
|
||||||
extern int brklab;
|
extern int brklab;
|
||||||
|
26
external/bsd/pcc/dist/pcc/cc/ccom/pftn.c
vendored
26
external/bsd/pcc/dist/pcc/cc/ccom/pftn.c
vendored
@ -1,5 +1,5 @@
|
|||||||
/* Id: pftn.c,v 1.339 2011/08/31 18:02:24 plunky Exp */
|
/* Id: pftn.c,v 1.342 2012/03/22 18:51:40 plunky Exp */
|
||||||
/* $NetBSD: pftn.c,v 1.7 2011/09/01 12:55:29 plunky Exp $ */
|
/* $NetBSD: pftn.c,v 1.8 2012/03/26 14:30:46 plunky Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2003 Anders Magnusson (ragge@ludd.luth.se).
|
* Copyright (c) 2003 Anders Magnusson (ragge@ludd.luth.se).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -131,8 +131,6 @@ static void lcommadd(struct symtab *sp);
|
|||||||
static NODE *mkcmplx(NODE *p, TWORD dt);
|
static NODE *mkcmplx(NODE *p, TWORD dt);
|
||||||
extern int fun_inline;
|
extern int fun_inline;
|
||||||
|
|
||||||
int ddebug = 0;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Declaration of an identifier. Handles redeclarations, hiding,
|
* Declaration of an identifier. Handles redeclarations, hiding,
|
||||||
* incomplete types and forward declarations.
|
* incomplete types and forward declarations.
|
||||||
@ -1992,6 +1990,10 @@ arglist(NODE *n)
|
|||||||
if (w->n_right->n_op == ELLIPSIS)
|
if (w->n_right->n_op == ELLIPSIS)
|
||||||
continue;
|
continue;
|
||||||
ty = w->n_right->n_type;
|
ty = w->n_right->n_type;
|
||||||
|
if (ty == ENUMTY) {
|
||||||
|
uerror("arg %d enum undeclared", cnt);
|
||||||
|
ty = w->n_right->n_type = INT;
|
||||||
|
}
|
||||||
if (BTYPE(ty) == STRTY || BTYPE(ty) == UNIONTY)
|
if (BTYPE(ty) == STRTY || BTYPE(ty) == UNIONTY)
|
||||||
num++;
|
num++;
|
||||||
while (ISFTN(ty) == 0 && ISARY(ty) == 0 && ty > BTMASK)
|
while (ISFTN(ty) == 0 && ISARY(ty) == 0 && ty > BTMASK)
|
||||||
@ -2001,6 +2003,10 @@ arglist(NODE *n)
|
|||||||
}
|
}
|
||||||
cnt++;
|
cnt++;
|
||||||
ty = w->n_type;
|
ty = w->n_type;
|
||||||
|
if (ty == ENUMTY) {
|
||||||
|
uerror("arg %d enum undeclared", cnt);
|
||||||
|
ty = w->n_type = INT;
|
||||||
|
}
|
||||||
if (BTYPE(ty) == STRTY || BTYPE(ty) == UNIONTY)
|
if (BTYPE(ty) == STRTY || BTYPE(ty) == UNIONTY)
|
||||||
num++;
|
num++;
|
||||||
while (ISFTN(ty) == 0 && ISARY(ty) == 0 && ty > BTMASK)
|
while (ISFTN(ty) == 0 && ISARY(ty) == 0 && ty > BTMASK)
|
||||||
@ -2168,7 +2174,10 @@ alprint(union arglist *al, int in)
|
|||||||
printf(" dim %d ", al->df->ddim);
|
printf(" dim %d ", al->df->ddim);
|
||||||
} else if (ISFTN(t)) {
|
} else if (ISFTN(t)) {
|
||||||
al++;
|
al++;
|
||||||
alprint(al->df->dfun, in+1);
|
if (al->df->dfun) {
|
||||||
|
printf("\n");
|
||||||
|
alprint(al->df->dfun, in+1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t = DECREF(t);
|
t = DECREF(t);
|
||||||
}
|
}
|
||||||
@ -2183,6 +2192,7 @@ alprint(union arglist *al, int in)
|
|||||||
printf("end arglist\n");
|
printf("end arglist\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
suemeq(struct attr *s1, struct attr *s2)
|
suemeq(struct attr *s1, struct attr *s2)
|
||||||
{
|
{
|
||||||
@ -2976,9 +2986,9 @@ complinit()
|
|||||||
struct rstack *rp;
|
struct rstack *rp;
|
||||||
NODE *p, *q;
|
NODE *p, *q;
|
||||||
char *n[] = { "0f", "0d", "0l" };
|
char *n[] = { "0f", "0d", "0l" };
|
||||||
int i, odebug;
|
int i, d_debug;
|
||||||
|
|
||||||
odebug = ddebug;
|
d_debug = ddebug;
|
||||||
ddebug = 0;
|
ddebug = 0;
|
||||||
real = addname("__real");
|
real = addname("__real");
|
||||||
imag = addname("__imag");
|
imag = addname("__imag");
|
||||||
@ -2996,7 +3006,7 @@ complinit()
|
|||||||
nfree(q);
|
nfree(q);
|
||||||
}
|
}
|
||||||
nfree(p);
|
nfree(p);
|
||||||
ddebug = odebug;
|
ddebug = d_debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
10
external/bsd/pcc/dist/pcc/mip/common.c
vendored
10
external/bsd/pcc/dist/pcc/mip/common.c
vendored
@ -1,5 +1,5 @@
|
|||||||
/* Id: common.c,v 1.99 2011/11/14 11:52:13 plunky Exp */
|
/* Id: common.c,v 1.100 2012/03/22 18:51:40 plunky Exp */
|
||||||
/* $NetBSD: common.c,v 1.4 2012/01/11 20:46:48 plunky Exp $ */
|
/* $NetBSD: common.c,v 1.5 2012/03/26 14:30:47 plunky Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2003 Anders Magnusson (ragge@ludd.luth.se).
|
* Copyright (c) 2003 Anders Magnusson (ragge@ludd.luth.se).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -263,14 +263,14 @@ talloc()
|
|||||||
freelink = p->next;
|
freelink = p->next;
|
||||||
if (p->n_op != FREE)
|
if (p->n_op != FREE)
|
||||||
cerror("node not FREE: %p", p);
|
cerror("node not FREE: %p", p);
|
||||||
if (nflag)
|
if (ndebug)
|
||||||
printf("alloc node %p from freelist\n", p);
|
printf("alloc node %p from freelist\n", p);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = permalloc(sizeof(NODE));
|
p = permalloc(sizeof(NODE));
|
||||||
p->n_op = FREE;
|
p->n_op = FREE;
|
||||||
if (nflag)
|
if (ndebug)
|
||||||
printf("alloc node %p from memory\n", p);
|
printf("alloc node %p from memory\n", p);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
@ -351,7 +351,7 @@ nfree(NODE *p)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (nflag)
|
if (ndebug)
|
||||||
printf("freeing node %p\n", p);
|
printf("freeing node %p\n", p);
|
||||||
p->n_op = FREE;
|
p->n_op = FREE;
|
||||||
p->next = freelink;
|
p->next = freelink;
|
||||||
|
Loading…
Reference in New Issue
Block a user