mark apple targets with a boolean
It is more natural to branch on a flag than have different function pointers for high-level passes.
This commit is contained in:
parent
a7e1602252
commit
b03a8970d7
8 changed files with 41 additions and 86 deletions
|
@ -67,5 +67,4 @@ void amd64_sysv_abi(Fn *);
|
|||
void amd64_isel(Fn *);
|
||||
|
||||
/* emit.c */
|
||||
void amd64_sysv_emitfn(Fn *, FILE *);
|
||||
void amd64_apple_emitfn(Fn *, FILE *);
|
||||
void amd64_emitfn(Fn *, FILE *);
|
||||
|
|
19
amd64/emit.c
19
amd64/emit.c
|
@ -538,8 +538,8 @@ framesz(Fn *fn)
|
|||
return 4*f + 8*o + 176*fn->vararg;
|
||||
}
|
||||
|
||||
static void
|
||||
emitfn(Fn *fn, FILE *f)
|
||||
void
|
||||
amd64_emitfn(Fn *fn, FILE *f)
|
||||
{
|
||||
static char *ctoa[] = {
|
||||
#define X(c, s) [c] = s,
|
||||
|
@ -620,17 +620,6 @@ emitfn(Fn *fn, FILE *f)
|
|||
}
|
||||
}
|
||||
id0 += fn->nblk;
|
||||
}
|
||||
|
||||
void
|
||||
amd64_sysv_emitfn(Fn *fn, FILE *f)
|
||||
{
|
||||
emitfn(fn, f);
|
||||
elf_emitfnfin(fn->name, f);
|
||||
}
|
||||
|
||||
void
|
||||
amd64_apple_emitfn(Fn *fn, FILE *f)
|
||||
{
|
||||
emitfn(fn, f);
|
||||
if (!T.apple)
|
||||
elf_emitfnfin(fn->name, f);
|
||||
}
|
||||
|
|
|
@ -27,10 +27,10 @@ amd64_memargs(int op)
|
|||
.abi0 = elimsb, \
|
||||
.abi1 = amd64_sysv_abi, \
|
||||
.isel = amd64_isel, \
|
||||
.emitfn = amd64_emitfn, \
|
||||
|
||||
Target T_amd64_sysv = {
|
||||
.name = "amd64_sysv",
|
||||
.emitfn = amd64_sysv_emitfn,
|
||||
.emitfin = elf_emitfin,
|
||||
.asloc = ".L",
|
||||
AMD64_COMMON
|
||||
|
@ -38,7 +38,7 @@ Target T_amd64_sysv = {
|
|||
|
||||
Target T_amd64_apple = {
|
||||
.name = "amd64_apple",
|
||||
.emitfn = amd64_apple_emitfn,
|
||||
.apple = 1,
|
||||
.emitfin = macho_emitfin,
|
||||
.asloc = "L",
|
||||
.assym = "_",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue