Changeset View
Changeset View
Standalone View
Standalone View
head/contrib/elftoolchain/libdwarf/libdwarf_reloc.c
Show All 29 Lines | |||||
Dwarf_Unsigned | Dwarf_Unsigned | ||||
_dwarf_get_reloc_type(Dwarf_P_Debug dbg, int is64) | _dwarf_get_reloc_type(Dwarf_P_Debug dbg, int is64) | ||||
{ | { | ||||
assert(dbg != NULL); | assert(dbg != NULL); | ||||
switch (dbg->dbgp_isa) { | switch (dbg->dbgp_isa) { | ||||
case DW_ISA_AARCH64: | |||||
return (is64 ? R_AARCH64_ABS64 : R_AARCH64_ABS32); | |||||
case DW_ISA_X86: | case DW_ISA_X86: | ||||
return (R_386_32); | return (R_386_32); | ||||
case DW_ISA_X86_64: | case DW_ISA_X86_64: | ||||
return (is64 ? R_X86_64_64 : R_X86_64_32); | return (is64 ? R_X86_64_64 : R_X86_64_32); | ||||
case DW_ISA_SPARC: | case DW_ISA_SPARC: | ||||
return (is64 ? R_SPARC_UA64 : R_SPARC_UA32); | return (is64 ? R_SPARC_UA64 : R_SPARC_UA32); | ||||
case DW_ISA_PPC: | case DW_ISA_PPC: | ||||
return (R_PPC_ADDR32); | return (R_PPC_ADDR32); | ||||
Show All 10 Lines | |||||
} | } | ||||
int | int | ||||
_dwarf_get_reloc_size(Dwarf_Debug dbg, Dwarf_Unsigned rel_type) | _dwarf_get_reloc_size(Dwarf_Debug dbg, Dwarf_Unsigned rel_type) | ||||
{ | { | ||||
switch (dbg->dbg_machine) { | switch (dbg->dbg_machine) { | ||||
case EM_NONE: | case EM_NONE: | ||||
break; | |||||
case EM_AARCH64: | |||||
if (rel_type == R_AARCH64_ABS32) | |||||
return (4); | |||||
else if (rel_type == R_AARCH64_ABS64) | |||||
return (8); | |||||
break; | break; | ||||
case EM_ARM: | case EM_ARM: | ||||
if (rel_type == R_ARM_ABS32) | if (rel_type == R_ARM_ABS32) | ||||
return (4); | return (4); | ||||
break; | break; | ||||
case EM_386: | case EM_386: | ||||
if (rel_type == R_386_32) | if (rel_type == R_386_32) | ||||
return (4); | return (4); | ||||
▲ Show 20 Lines • Show All 405 Lines • Show Last 20 Lines |