mirror of
https://github.com/golang/go
synced 2024-10-04 08:21:22 -06:00
[dev.power64] cmd/9l: update header files for liblink
LGTM=rsc R=rsc, iant CC=golang-codereviews https://golang.org/cl/128720044
This commit is contained in:
parent
bcf7f61f83
commit
7c33e5078f
@ -281,7 +281,6 @@ void nullwarn(Node*, Node*);
|
|||||||
void sextern(Sym*, Node*, int32, int32);
|
void sextern(Sym*, Node*, int32, int32);
|
||||||
void gextern(Sym*, Node*, int32, int32);
|
void gextern(Sym*, Node*, int32, int32);
|
||||||
void outcode(void);
|
void outcode(void);
|
||||||
void ieeedtod(Ieee*, double);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* list
|
* list
|
||||||
|
@ -34,8 +34,7 @@
|
|||||||
#define NSYM 50
|
#define NSYM 50
|
||||||
#define NREG 32
|
#define NREG 32
|
||||||
|
|
||||||
#define NOPROF (1<<0)
|
#include "../ld/textflag.h"
|
||||||
#define DUPOK (1<<1)
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -43,14 +42,16 @@ enum
|
|||||||
REGSP = 1,
|
REGSP = 1,
|
||||||
REGSB = 2,
|
REGSB = 2,
|
||||||
REGRET = 3,
|
REGRET = 3,
|
||||||
REGARG = 3,
|
REGARG = -1, /* -1 disables passing the first argument in register */
|
||||||
REGMIN = 7, /* register variables allocated from here to REGMAX */
|
REGMIN = 7, /* register variables allocated from here to REGMAX */
|
||||||
|
REGENV = 11, /* environment variable for closures */
|
||||||
REGMAX = 27,
|
REGMAX = 27,
|
||||||
REGEXT = 30, /* external registers allocated from here down */
|
REGEXT = 30, /* external registers allocated from here down */
|
||||||
REGTMP = 31, /* used by the linker */
|
REGTMP = 31, /* used by the linker */
|
||||||
|
|
||||||
FREGRET = 0,
|
FREGRET = 0,
|
||||||
FREGMIN = 17, /* first register variable */
|
FREGMIN = 17, /* first register variable */
|
||||||
|
FREGMAX = 26, /* last register variable for 9g only */
|
||||||
FREGEXT = 26, /* first external register */
|
FREGEXT = 26, /* first external register */
|
||||||
FREGCVI = 27, /* floating conversion constant */
|
FREGCVI = 27, /* floating conversion constant */
|
||||||
FREGZERO = 28, /* both float and double */
|
FREGZERO = 28, /* both float and double */
|
||||||
@ -69,9 +70,66 @@ enum
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
BIG = 32768-8,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/* mark flags */
|
||||||
|
LABEL = 1<<0,
|
||||||
|
LEAF = 1<<1,
|
||||||
|
FLOAT = 1<<2,
|
||||||
|
BRANCH = 1<<3,
|
||||||
|
LOAD = 1<<4,
|
||||||
|
FCMP = 1<<5,
|
||||||
|
SYNC = 1<<6,
|
||||||
|
LIST = 1<<7,
|
||||||
|
FOLL = 1<<8,
|
||||||
|
NOSCHED = 1<<9,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
C_NONE,
|
||||||
|
C_REG,
|
||||||
|
C_FREG,
|
||||||
|
C_CREG,
|
||||||
|
C_SPR, /* special processor register */
|
||||||
|
C_ZCON,
|
||||||
|
C_SCON, /* 16 bit signed */
|
||||||
|
C_UCON, /* low 16 bits 0 */
|
||||||
|
C_ADDCON, /* -0x8000 <= v < 0 */
|
||||||
|
C_ANDCON, /* 0 < v <= 0xFFFF */
|
||||||
|
C_LCON, /* other 32 */
|
||||||
|
C_DCON, /* other 64 (could subdivide further) */
|
||||||
|
C_SACON,
|
||||||
|
C_SECON,
|
||||||
|
C_LACON,
|
||||||
|
C_LECON,
|
||||||
|
C_SBRA,
|
||||||
|
C_LBRA,
|
||||||
|
C_SAUTO,
|
||||||
|
C_LAUTO,
|
||||||
|
C_SEXT,
|
||||||
|
C_LEXT,
|
||||||
|
C_ZOREG,
|
||||||
|
C_SOREG,
|
||||||
|
C_LOREG,
|
||||||
|
C_FPSCR,
|
||||||
|
C_MSR,
|
||||||
|
C_XER,
|
||||||
|
C_LR,
|
||||||
|
C_CTR,
|
||||||
|
C_ANY,
|
||||||
|
C_GOK,
|
||||||
|
C_ADDR,
|
||||||
|
|
||||||
|
C_NCLASS, /* must be the last */
|
||||||
|
};
|
||||||
|
|
||||||
enum as
|
enum as
|
||||||
{
|
{
|
||||||
AXXX = 0,
|
AXXX,
|
||||||
AADD,
|
AADD,
|
||||||
AADDCC,
|
AADDCC,
|
||||||
AADDV,
|
AADDV,
|
||||||
@ -390,6 +448,17 @@ enum as
|
|||||||
/* more 64-bit operations */
|
/* more 64-bit operations */
|
||||||
AHRFID,
|
AHRFID,
|
||||||
|
|
||||||
|
AUNDEF,
|
||||||
|
AUSEFIELD,
|
||||||
|
ATYPE,
|
||||||
|
AFUNCDATA,
|
||||||
|
APCDATA,
|
||||||
|
ACHECKNIL,
|
||||||
|
AVARDEF,
|
||||||
|
AVARKILL,
|
||||||
|
ADUFFCOPY,
|
||||||
|
ADUFFZERO,
|
||||||
|
|
||||||
ALAST
|
ALAST
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -422,6 +491,11 @@ enum
|
|||||||
D_FILE1,
|
D_FILE1,
|
||||||
D_DCR, /* device control register */
|
D_DCR, /* device control register */
|
||||||
D_DCONST,
|
D_DCONST,
|
||||||
|
D_ADDR, // not used, use D_CONST with non-empty sym.
|
||||||
|
|
||||||
|
/* reg names for 9g OREGISTER */
|
||||||
|
D_R0 = 0, // type is D_REG
|
||||||
|
D_F0 = D_R0+NREG, // type is D_FREG
|
||||||
|
|
||||||
/* reg names iff type is D_SPR */
|
/* reg names iff type is D_SPR */
|
||||||
D_XER = 1,
|
D_XER = 1,
|
||||||
@ -433,16 +507,4 @@ enum
|
|||||||
/*
|
/*
|
||||||
* this is the ranlib header
|
* this is the ranlib header
|
||||||
*/
|
*/
|
||||||
#define SYMDEF "__.SYMDEF"
|
#define SYMDEF "__.GOSYMDEF"
|
||||||
|
|
||||||
/*
|
|
||||||
* this is the simulated IEEE floating point
|
|
||||||
*/
|
|
||||||
typedef struct ieee Ieee;
|
|
||||||
struct ieee
|
|
||||||
{
|
|
||||||
long l; /* contains ls-man 0xffffffff */
|
|
||||||
long h; /* contains sign 0x80000000
|
|
||||||
exp 0x7ff00000
|
|
||||||
ms-man 0x000fffff */
|
|
||||||
};
|
|
||||||
|
353
src/cmd/9l/l.h
353
src/cmd/9l/l.h
@ -30,102 +30,29 @@
|
|||||||
#include <u.h>
|
#include <u.h>
|
||||||
#include <libc.h>
|
#include <libc.h>
|
||||||
#include <bio.h>
|
#include <bio.h>
|
||||||
#include "../9c/9.out.h"
|
#include <link.h>
|
||||||
#include "../8l/elf.h"
|
#include "9.out.h"
|
||||||
|
|
||||||
#ifndef EXTERN
|
#ifndef EXTERN
|
||||||
#define EXTERN extern
|
#define EXTERN extern
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define LIBNAMELEN 300
|
enum
|
||||||
|
{
|
||||||
typedef struct Adr Adr;
|
thechar = '9',
|
||||||
typedef struct Sym Sym;
|
PtrSize = 8,
|
||||||
typedef struct Autom Auto;
|
IntSize = 8,
|
||||||
typedef struct Prog Prog;
|
RegSize = 8,
|
||||||
typedef struct Optab Optab;
|
MaxAlign = 32, // max data alignment
|
||||||
|
FuncAlign = 8
|
||||||
|
};
|
||||||
|
|
||||||
#define P ((Prog*)0)
|
#define P ((Prog*)0)
|
||||||
#define S ((Sym*)0)
|
#define S ((LSym*)0)
|
||||||
#define TNAME (curtext&&curtext->from.sym?curtext->from.sym->name:noname)
|
|
||||||
|
|
||||||
struct Adr
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
vlong u0offset;
|
|
||||||
char u0sval[NSNAME];
|
|
||||||
Ieee u0ieee;
|
|
||||||
}u0;
|
|
||||||
Sym *sym;
|
|
||||||
Auto *autom;
|
|
||||||
char type;
|
|
||||||
uchar reg;
|
|
||||||
char name;
|
|
||||||
char class;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define offset u0.u0offset
|
|
||||||
#define sval u0.u0sval
|
|
||||||
#define ieee u0.u0ieee
|
|
||||||
|
|
||||||
struct Prog
|
|
||||||
{
|
|
||||||
Adr from;
|
|
||||||
Adr from3; /* fma and rlwm */
|
|
||||||
Adr to;
|
|
||||||
Prog *forwd;
|
|
||||||
Prog *cond;
|
|
||||||
Prog *link;
|
|
||||||
vlong pc;
|
|
||||||
long regused;
|
|
||||||
short line;
|
|
||||||
short mark;
|
|
||||||
short optab; /* could be uchar */
|
|
||||||
short as;
|
|
||||||
char reg;
|
|
||||||
};
|
|
||||||
struct Sym
|
|
||||||
{
|
|
||||||
char *name;
|
|
||||||
short type;
|
|
||||||
short version;
|
|
||||||
short become;
|
|
||||||
short frame;
|
|
||||||
uchar subtype;
|
|
||||||
ushort file;
|
|
||||||
vlong value;
|
|
||||||
long sig;
|
|
||||||
Sym *link;
|
|
||||||
};
|
|
||||||
struct Autom
|
|
||||||
{
|
|
||||||
Sym *sym;
|
|
||||||
Auto *link;
|
|
||||||
vlong aoffset;
|
|
||||||
short type;
|
|
||||||
};
|
|
||||||
struct Optab
|
|
||||||
{
|
|
||||||
short as;
|
|
||||||
char a1;
|
|
||||||
char a2;
|
|
||||||
char a3;
|
|
||||||
char a4;
|
|
||||||
char type;
|
|
||||||
char size;
|
|
||||||
char param;
|
|
||||||
};
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Optab* start;
|
|
||||||
Optab* stop;
|
|
||||||
} oprange[ALAST];
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
FPCHIP = 1,
|
FPCHIP = 1,
|
||||||
BIG = 32768-8,
|
|
||||||
STRINGSZ = 200,
|
STRINGSZ = 200,
|
||||||
MAXIO = 8192,
|
MAXIO = 8192,
|
||||||
MAXHIST = 20, /* limit of path elements for history symbols */
|
MAXHIST = 20, /* limit of path elements for history symbols */
|
||||||
@ -135,250 +62,40 @@ enum
|
|||||||
MINSIZ = 64,
|
MINSIZ = 64,
|
||||||
NENT = 100,
|
NENT = 100,
|
||||||
NSCHED = 20,
|
NSCHED = 20,
|
||||||
|
MINLC = 4,
|
||||||
/* mark flags */
|
|
||||||
LABEL = 1<<0,
|
|
||||||
LEAF = 1<<1,
|
|
||||||
FLOAT = 1<<2,
|
|
||||||
BRANCH = 1<<3,
|
|
||||||
LOAD = 1<<4,
|
|
||||||
FCMP = 1<<5,
|
|
||||||
SYNC = 1<<6,
|
|
||||||
LIST = 1<<7,
|
|
||||||
FOLL = 1<<8,
|
|
||||||
NOSCHED = 1<<9,
|
|
||||||
|
|
||||||
STEXT = 1,
|
|
||||||
SDATA,
|
|
||||||
SBSS,
|
|
||||||
SDATA1,
|
|
||||||
SXREF,
|
|
||||||
SLEAF,
|
|
||||||
SFILE,
|
|
||||||
SCONST,
|
|
||||||
SUNDEF,
|
|
||||||
|
|
||||||
SIMPORT,
|
|
||||||
SEXPORT,
|
|
||||||
|
|
||||||
C_NONE = 0,
|
|
||||||
C_REG,
|
|
||||||
C_FREG,
|
|
||||||
C_CREG,
|
|
||||||
C_SPR, /* special processor register */
|
|
||||||
C_ZCON,
|
|
||||||
C_SCON, /* 16 bit signed */
|
|
||||||
C_UCON, /* low 16 bits 0 */
|
|
||||||
C_ADDCON, /* -0x8000 <= v < 0 */
|
|
||||||
C_ANDCON, /* 0 < v <= 0xFFFF */
|
|
||||||
C_LCON, /* other 32 */
|
|
||||||
C_DCON, /* other 64 (could subdivide further) */
|
|
||||||
C_SACON,
|
|
||||||
C_SECON,
|
|
||||||
C_LACON,
|
|
||||||
C_LECON,
|
|
||||||
C_SBRA,
|
|
||||||
C_LBRA,
|
|
||||||
C_SAUTO,
|
|
||||||
C_LAUTO,
|
|
||||||
C_SEXT,
|
|
||||||
C_LEXT,
|
|
||||||
C_ZOREG,
|
|
||||||
C_SOREG,
|
|
||||||
C_LOREG,
|
|
||||||
C_FPSCR,
|
|
||||||
C_MSR,
|
|
||||||
C_XER,
|
|
||||||
C_LR,
|
|
||||||
C_CTR,
|
|
||||||
C_ANY,
|
|
||||||
C_GOK,
|
|
||||||
C_ADDR,
|
|
||||||
|
|
||||||
C_NCLASS,
|
|
||||||
|
|
||||||
Roffset = 22, /* no. bits for offset in relocation address */
|
Roffset = 22, /* no. bits for offset in relocation address */
|
||||||
Rindex = 10 /* no. bits for index in relocation address */
|
Rindex = 10 /* no. bits for index in relocation address */
|
||||||
};
|
};
|
||||||
|
|
||||||
EXTERN union
|
EXTERN int32 autosize;
|
||||||
{
|
EXTERN LSym* datap;
|
||||||
struct
|
EXTERN int debug[128];
|
||||||
{
|
EXTERN int32 lcsize;
|
||||||
uchar obuf[MAXIO]; /* output buffer */
|
|
||||||
uchar ibuf[MAXIO]; /* input buffer */
|
|
||||||
} u;
|
|
||||||
char dbuf[1];
|
|
||||||
} buf;
|
|
||||||
|
|
||||||
#define cbuf u.obuf
|
|
||||||
#define xbuf u.ibuf
|
|
||||||
|
|
||||||
EXTERN long HEADR; /* length of header */
|
|
||||||
EXTERN int HEADTYPE; /* type of header */
|
|
||||||
EXTERN vlong INITDAT; /* data location */
|
|
||||||
EXTERN long INITRND; /* data round above text location */
|
|
||||||
EXTERN vlong INITTEXT; /* text location */
|
|
||||||
EXTERN long INITTEXTP; /* text location (physical) */
|
|
||||||
EXTERN char* INITENTRY; /* entry point */
|
|
||||||
EXTERN long autosize;
|
|
||||||
EXTERN Biobuf bso;
|
|
||||||
EXTERN long bsssize;
|
|
||||||
EXTERN int cbc;
|
|
||||||
EXTERN uchar* cbp;
|
|
||||||
EXTERN int cout;
|
|
||||||
EXTERN Auto* curauto;
|
|
||||||
EXTERN Auto* curhist;
|
|
||||||
EXTERN Prog* curp;
|
|
||||||
EXTERN Prog* curtext;
|
|
||||||
EXTERN Prog* datap;
|
|
||||||
EXTERN Prog* prog_movsw;
|
|
||||||
EXTERN Prog* prog_movdw;
|
|
||||||
EXTERN Prog* prog_movws;
|
|
||||||
EXTERN Prog* prog_movwd;
|
|
||||||
EXTERN vlong datsize;
|
|
||||||
EXTERN char debug[128];
|
|
||||||
EXTERN Prog* firstp;
|
|
||||||
EXTERN uchar fnuxi8[8];
|
|
||||||
EXTERN uchar fnuxi4[4];
|
|
||||||
EXTERN Sym* hash[NHASH];
|
|
||||||
EXTERN Sym* histfrog[MAXHIST];
|
|
||||||
EXTERN int histfrogp;
|
|
||||||
EXTERN int histgen;
|
|
||||||
EXTERN char* library[50];
|
|
||||||
EXTERN char* libraryobj[50];
|
|
||||||
EXTERN int libraryp;
|
|
||||||
EXTERN int xrefresolv;
|
|
||||||
EXTERN char* hunk;
|
|
||||||
EXTERN uchar inuxi1[1];
|
|
||||||
EXTERN uchar inuxi2[2];
|
|
||||||
EXTERN uchar inuxi4[4];
|
|
||||||
EXTERN uchar inuxi8[8];
|
|
||||||
EXTERN Prog* lastp;
|
|
||||||
EXTERN long lcsize;
|
|
||||||
EXTERN char literal[32];
|
EXTERN char literal[32];
|
||||||
EXTERN int nerrors;
|
EXTERN int nerrors;
|
||||||
EXTERN long nhunk;
|
|
||||||
EXTERN char* noname;
|
|
||||||
EXTERN vlong instoffset;
|
EXTERN vlong instoffset;
|
||||||
EXTERN char* outfile;
|
EXTERN char* rpath;
|
||||||
EXTERN vlong pc;
|
EXTERN vlong pc;
|
||||||
EXTERN int r0iszero;
|
EXTERN int32 symsize;
|
||||||
EXTERN long symsize;
|
EXTERN int32 staticgen;
|
||||||
EXTERN long staticgen;
|
EXTERN Prog* lastp;
|
||||||
EXTERN Prog* textp;
|
|
||||||
EXTERN vlong textsize;
|
EXTERN vlong textsize;
|
||||||
EXTERN long tothunk;
|
|
||||||
EXTERN char xcmp[C_NCLASS][C_NCLASS];
|
|
||||||
EXTERN int version;
|
|
||||||
EXTERN Prog zprg;
|
|
||||||
EXTERN int dtype;
|
|
||||||
|
|
||||||
EXTERN int doexp, dlm;
|
|
||||||
EXTERN int imports, nimports;
|
|
||||||
EXTERN int exports, nexports, allexport;
|
|
||||||
EXTERN char* EXPTAB;
|
|
||||||
EXTERN Prog undefp;
|
|
||||||
|
|
||||||
#define UP (&undefp)
|
|
||||||
|
|
||||||
extern Optab optab[];
|
|
||||||
extern char* anames[];
|
|
||||||
extern char* cnames[];
|
|
||||||
|
|
||||||
int Aconv(Fmt*);
|
|
||||||
int Dconv(Fmt*);
|
|
||||||
int Nconv(Fmt*);
|
|
||||||
int Pconv(Fmt*);
|
|
||||||
int Sconv(Fmt*);
|
|
||||||
int Rconv(Fmt*);
|
|
||||||
int aclass(Adr*);
|
|
||||||
void addhist(long, int);
|
|
||||||
void histtoauto(void);
|
|
||||||
void addlibpath(char*);
|
|
||||||
void addnop(Prog*);
|
|
||||||
void append(Prog*, Prog*);
|
|
||||||
void asmb(void);
|
void asmb(void);
|
||||||
void asmdyn(void);
|
void adddynlib(char *lib);
|
||||||
void asmlc(void);
|
void adddynrel(LSym *s, Reloc *r);
|
||||||
int asmout(Prog*, Optab*, int);
|
void adddynsym(Link *ctxt, LSym *s);
|
||||||
void asmsym(void);
|
int archreloc(Reloc *r, LSym *s, vlong *val);
|
||||||
vlong atolwhex(char*);
|
|
||||||
Prog* brloop(Prog*);
|
|
||||||
void buildop(void);
|
|
||||||
void cflush(void);
|
|
||||||
void ckoff(Sym*, vlong);
|
|
||||||
int cmp(int, int);
|
|
||||||
void cput(long);
|
|
||||||
int compound(Prog*);
|
|
||||||
double cputime(void);
|
|
||||||
void datblk(long, long);
|
|
||||||
void diag(char*, ...);
|
|
||||||
void dodata(void);
|
|
||||||
void doprof1(void);
|
|
||||||
void doprof2(void);
|
|
||||||
void dynreloc(Sym*, long, int, int, int);
|
|
||||||
vlong entryvalue(void);
|
|
||||||
void errorexit(void);
|
|
||||||
void exchange(Prog*);
|
|
||||||
void export(void);
|
|
||||||
int fileexists(char*);
|
|
||||||
int find1(long, int);
|
|
||||||
char* findlib(char*);
|
|
||||||
void follow(void);
|
|
||||||
void gethunk(void);
|
|
||||||
double ieeedtod(Ieee*);
|
|
||||||
long ieeedtof(Ieee*);
|
|
||||||
void import(void);
|
|
||||||
int isint32(vlong);
|
|
||||||
int isuint32(uvlong);
|
|
||||||
int isnop(Prog*);
|
|
||||||
void ldobj(int, long, char*);
|
|
||||||
void loadlib(void);
|
|
||||||
void listinit(void);
|
void listinit(void);
|
||||||
void initmuldiv(void);
|
vlong rnd(vlong, int32);
|
||||||
Sym* lookup(char*, int);
|
|
||||||
void llput(vlong);
|
|
||||||
void llputl(vlong);
|
|
||||||
void lput(long);
|
|
||||||
void lputl(long);
|
|
||||||
void mkfwd(void);
|
|
||||||
void* mysbrk(ulong);
|
|
||||||
void names(void);
|
|
||||||
void nocache(Prog*);
|
|
||||||
void noops(void);
|
|
||||||
void nopout(Prog*);
|
|
||||||
void nuxiinit(void);
|
|
||||||
void objfile(char*);
|
|
||||||
int ocmp(void*, void*);
|
|
||||||
long opcode(int);
|
|
||||||
Optab* oplook(Prog*);
|
|
||||||
void patch(void);
|
|
||||||
void prasm(Prog*);
|
|
||||||
void prepend(Prog*, Prog*);
|
|
||||||
Prog* prg(void);
|
|
||||||
int pseudo(Prog*);
|
|
||||||
void putsymb(char*, int, vlong, int);
|
|
||||||
void readundefs(char*, int);
|
|
||||||
long regoff(Adr*);
|
|
||||||
int relinv(int);
|
|
||||||
vlong rnd(vlong, long);
|
|
||||||
void sched(Prog*, Prog*);
|
|
||||||
void span(void);
|
|
||||||
void strnput(char*, int);
|
|
||||||
void undef(void);
|
|
||||||
void undefsym(Sym*);
|
|
||||||
vlong vregoff(Adr*);
|
|
||||||
void wput(long);
|
|
||||||
void wputl(long);
|
|
||||||
void xdefine(char*, int, vlong);
|
|
||||||
void xfol(Prog*);
|
|
||||||
void zerosig(char*);
|
|
||||||
|
|
||||||
#pragma varargck type "D" Adr*
|
#define LPUT(a) (ctxt->arch->endian == BigEndian ? lputb(a):lputl(a))
|
||||||
#pragma varargck type "N" Adr*
|
#define WPUT(a) (ctxt->arch->endian == BigEndian ? wputb(a):wputl(a))
|
||||||
#pragma varargck type "P" Prog*
|
#define VPUT(a) (ctxt->arch->endian == BigEndian ? vputb(a):vputl(a))
|
||||||
#pragma varargck type "R" int
|
|
||||||
#pragma varargck type "A" int
|
/* Used by ../ld/dwarf.c */
|
||||||
#pragma varargck type "S" char*
|
enum
|
||||||
#pragma varargck argpos diag 1
|
{
|
||||||
|
DWARFREGSP = 1
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user