Loader: Identify sections based on virtual addresses, and set the LoadAddrMask correctly for x86.
--HG-- extra : convert_revision : efa6cf42f7e69074c645dfcac335a3edf0941389
This commit is contained in:
parent
f6e5b92d63
commit
ac27bc7878
2 changed files with 5 additions and 5 deletions
|
@ -136,7 +136,7 @@ namespace X86ISA
|
|||
|
||||
StaticInstPtr decodeInst(ExtMachInst);
|
||||
|
||||
const Addr LoadAddrMask = ULL(0xffffffffff);
|
||||
const Addr LoadAddrMask = ULL(-1);
|
||||
};
|
||||
|
||||
#endif // __ARCH_X86_ISATRAITS_HH__
|
||||
|
|
|
@ -270,13 +270,13 @@ ElfObject::ElfObject(const string &_filename, int _fd,
|
|||
}
|
||||
|
||||
// Check to see if this is the text or data segment
|
||||
if (phdr.p_paddr <= textSecStart &&
|
||||
phdr.p_paddr + phdr.p_filesz > textSecStart) {
|
||||
if (phdr.p_vaddr <= textSecStart &&
|
||||
phdr.p_vaddr + phdr.p_filesz > textSecStart) {
|
||||
text.baseAddr = phdr.p_paddr;
|
||||
text.size = phdr.p_filesz;
|
||||
text.fileImage = fileData + phdr.p_offset;
|
||||
} else if (phdr.p_paddr <= dataSecStart &&
|
||||
phdr.p_paddr + phdr.p_filesz > dataSecStart) {
|
||||
} else if (phdr.p_vaddr <= dataSecStart &&
|
||||
phdr.p_vaddr + phdr.p_filesz > dataSecStart) {
|
||||
data.baseAddr = phdr.p_paddr;
|
||||
data.size = phdr.p_filesz;
|
||||
data.fileImage = fileData + phdr.p_offset;
|
||||
|
|
Loading…
Reference in a new issue