Skip to content

Commit

Permalink
more obj refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
WalterBright committed Jul 13, 2012
1 parent ebc0ac3 commit b9afb03
Show file tree
Hide file tree
Showing 9 changed files with 166 additions and 160 deletions.
2 changes: 1 addition & 1 deletion src/backend/cdef.h
Expand Up @@ -528,7 +528,7 @@ typedef targ_uns targ_size_t; /* size_t for the target machine */
#endif

#define SYMDEB_CODEVIEW TARGET_WINDOS
#define SYMDEB_DWARF (TARGET_LINUX || TARGET_FREEBSD || TARGET_OPENBSD || TARGET_SOLARIS)
#define SYMDEB_DWARF (TARGET_LINUX || TARGET_FREEBSD || TARGET_OPENBSD || TARGET_SOLARIS || TARGET_OSX)

#define TOOLKIT_H

Expand Down
6 changes: 3 additions & 3 deletions src/backend/cod3.c
Expand Up @@ -1206,7 +1206,7 @@ void doswitch(block *b)
gen1(cx, 0x58 + DI); // L1: POP EDI

// ADD EDI,_GLOBAL_OFFSET_TABLE_+3
symbol *gotsym = elfobj_getGOTsym();
symbol *gotsym = Obj::getGOTsym();
cgot = gencs(CNIL,0x81,modregrm(3,0,DI),FLextern,gotsym);
cgot->Iflags = CFoff;
cgot->IEVoffset2 = 3;
Expand Down Expand Up @@ -1869,7 +1869,7 @@ code *cdgot(elem *e, regm_t *pretregs)
gen1(c, 0x58 + reg); // L1: POP reg

// ADD reg,_GLOBAL_OFFSET_TABLE_+3
symbol *gotsym = elfobj_getGOTsym();
symbol *gotsym = Obj::getGOTsym();
cgot = gencs(CNIL,0x81,modregrm(3,0,reg),FLextern,gotsym);
/* Because the 2:3 offset from L1: is hardcoded,
* this sequence of instructions must not
Expand Down Expand Up @@ -3596,7 +3596,7 @@ code *cod3_load_got()
gen1(c, 0x58 + BX); // L1: POP EBX

// ADD EBX,_GLOBAL_OFFSET_TABLE_+3
symbol *gotsym = elfobj_getGOTsym();
symbol *gotsym = Obj::getGOTsym();
cgot = gencs(CNIL,0x81,0xC3,FLextern,gotsym);
cgot->Iflags = CFoff;
cgot->IEVoffset2 = 3;
Expand Down
14 changes: 7 additions & 7 deletions src/backend/dwarf.c
Expand Up @@ -73,9 +73,9 @@ static char __file__[] = __FILE__; // for tassert.h
int dwarf_getsegment(const char *name, int align)
{
#if ELFOBJ
return elf_getsegment(name, NULL, SHT_PROGDEF, 0, align * 4);
return ElfObj::getsegment(name, NULL, SHT_PROGDEF, 0, align * 4);
#elif MACHOBJ
return mach_getsegment(name, "__DWARF", align * 2, S_ATTR_DEBUG);
return MachObj::getsegment(name, "__DWARF", align * 2, S_ATTR_DEBUG);
#else
assert(0);
return 0;
Expand All @@ -89,9 +89,9 @@ int dwarf_getsegment(const char *name, int align)
void dwarf_addrel(int seg, targ_size_t offset, int targseg, targ_size_t val = 0)
{
#if ELFOBJ
elf_addrel(seg, offset, I64 ? R_X86_64_32 : RI_TYPE_SYM32, MAP_SEG2SYMIDX(targseg), val);
ElfObj::addrel(seg, offset, I64 ? R_X86_64_32 : RI_TYPE_SYM32, MAP_SEG2SYMIDX(targseg), val);
#elif MACHOBJ
mach_addrel(seg, offset, NULL, targseg, RELaddr, val);
MachObj::addrel(seg, offset, NULL, targseg, RELaddr, val);
#else
assert(0);
#endif
Expand All @@ -100,9 +100,9 @@ void dwarf_addrel(int seg, targ_size_t offset, int targseg, targ_size_t val = 0)
void dwarf_addrel64(int seg, targ_size_t offset, int targseg, targ_size_t val)
{
#if ELFOBJ
elf_addrel(seg, offset, R_X86_64_64, MAP_SEG2SYMIDX(targseg), val);
ElfObj::addrel(seg, offset, R_X86_64_64, MAP_SEG2SYMIDX(targseg), val);
#elif MACHOBJ
mach_addrel(seg, offset, NULL, targseg, RELaddr, val);
MachObj::addrel(seg, offset, NULL, targseg, RELaddr, val);
#else
assert(0);
#endif
Expand Down Expand Up @@ -672,7 +672,7 @@ void dwarf_initfile(const char *filename)
break;
}
#endif
//infobuf->write32(elf_addstr(debug_str_buf, cwd)); // DW_AT_comp_dir as DW_FORM_strp, doesn't work on some systems
//infobuf->write32(Obj::addstr(debug_str_buf, cwd)); // DW_AT_comp_dir as DW_FORM_strp, doesn't work on some systems
infobuf->writeString(cwd); // DW_AT_comp_dir as DW_FORM_string
free(cwd);

Expand Down
4 changes: 2 additions & 2 deletions src/backend/el.c
Expand Up @@ -1260,7 +1260,7 @@ elem *el_picvar(symbol *s)

if (I64)
{
elfobj_refGOTsym();
Obj::refGOTsym();
switch (s->Sclass)
{
case SCstatic:
Expand Down Expand Up @@ -1480,7 +1480,7 @@ elem * el_var(symbol *s)
* In the future, we should figure out a way to optimize to the 'var' version.
*/
if (I64)
elfobj_refGOTsym();
Obj::refGOTsym();
elem *e1 = el_calloc();
e1->EV.sp.Vsym = s;
if (s->Sclass == SCstatic || s->Sclass == SClocstat)
Expand Down

0 comments on commit b9afb03

Please sign in to comment.