Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
WalterBright committed Jul 29, 2011
1 parent 132620e commit dead485
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions src/backend/out.c
Expand Up @@ -104,7 +104,6 @@ void outdata(symbol *s)
targ_size_t offset;
int flags;
tym_t ty;
int tls;

symbol_debug(s);
#ifdef DEBUG
Expand All @@ -118,6 +117,9 @@ void outdata(symbol *s)

dtstart = s->Sdt;
s->Sdt = NULL; // it will be free'd
#if OMFOBJ
int tls = 0;
#endif
#if SCPP && TARGET_WINDOS
if (eecontext.EEcompile)
{ s->Sfl = (s->ty() & mTYfar) ? FLfardata : FLextern;
Expand All @@ -126,7 +128,6 @@ void outdata(symbol *s)
}
#endif
datasize = 0;
tls = 0;
ty = s->ty();
if (ty & mTYexport && config.wflags & WFexpdef && s->Sclass != SCstatic)
obj_export(s,0); // export data definition
Expand Down Expand Up @@ -198,7 +199,9 @@ void outdata(symbol *s)
break;
#endif
case mTYcs:
#if OMFOBJ
seg = cseg;
#endif
Coffset = align(datasize,Coffset);
s->Soffset = Coffset;
Coffset += datasize;
Expand All @@ -216,15 +219,15 @@ void outdata(symbol *s)
s->Soffset = TDoffset;
TDoffset += datasize;
pseg->SDoffset = TDoffset;
#endif
seg = pseg->SDseg;
s->Sfl = FLtlsdata;
tls = 1;
#endif
s->Sfl = FLtlsdata;
break;
}
default:
#if ELFOBJ || MACHOBJ
seg = elf_data_start(s,datasize,UDATA);
elf_data_start(s,datasize,UDATA);
obj_lidata(s->Sseg,s->Soffset,datasize);
#else
seg = UDATA;
Expand Down Expand Up @@ -308,7 +311,9 @@ void outdata(symbol *s)
break;
case mTYthread:
s->Sfl = FLtlsdata;
#if OMFOBJ
tls = 1;
#endif
break;

default:
Expand Down Expand Up @@ -342,10 +347,10 @@ void outdata(symbol *s)
targ_size_t TDoffset = pseg->SDoffset;
TDoffset = align(datasize,TDoffset);
s->Soffset = TDoffset;
tls = 1;
#endif
seg = pseg->SDseg;
s->Sfl = FLtlsdata;
tls = 1;
break;
}
case mTYnear:
Expand Down Expand Up @@ -452,7 +457,7 @@ void outdata(symbol *s)
}
#if ELFOBJ || MACHOBJ
Offset(seg) = offset;
#else
#elif OMFOBJ
if (seg == DATA)
Doffset = offset;
else if (seg == cseg)
Expand All @@ -461,6 +466,8 @@ void outdata(symbol *s)
{
obj_tlsseg()->SDoffset = offset;
}
#else
#error "obj format?"
#endif
#if SCPP
out_extdef(s);
Expand Down Expand Up @@ -914,8 +921,10 @@ STATIC void writefunc2(symbol *sfunc)
unsigned nsymbols;
SYMIDX si;
int anyasm;
#if OMFOBJ
int csegsave;
targ_size_t coffsetsave;
#endif
func_t *f = sfunc->Sfunc;
tym_t tyf;

Expand Down Expand Up @@ -1206,8 +1215,10 @@ STATIC void writefunc2(symbol *sfunc)
#if TX86
if (symbol_iscomdat(sfunc))
{
#if OMFOBJ
csegsave = cseg;
coffsetsave = Coffset;
#endif
obj_comdat(sfunc);
}
else
Expand Down

0 comments on commit dead485

Please sign in to comment.