Loader: Identify sections based on virtual addresses, and set the LoadAddrMask correctly for x86.

--HG--
extra : convert_revision : efa6cf42f7e69074c645dfcac335a3edf0941389
This commit is contained in:
Gabe Black 2007-10-12 20:10:10 -07:00
parent f6e5b92d63
commit ac27bc7878
2 changed files with 5 additions and 5 deletions

View file

@ -136,7 +136,7 @@ namespace X86ISA
StaticInstPtr decodeInst(ExtMachInst);
const Addr LoadAddrMask = ULL(0xffffffffff);
const Addr LoadAddrMask = ULL(-1);
};
#endif // __ARCH_X86_ISATRAITS_HH__

View file

@ -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;