summaryrefslogtreecommitdiff
path: root/msim/load.c
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-10-01 18:20:50 -0400
committerFreya Murphy <freya@freyacat.org>2024-10-01 18:20:50 -0400
commit12e098b6823b7d688434bc69729216b2268b1852 (patch)
tree51385c1183ecb4caed550dfeea514512c4589aed /msim/load.c
parentdont require phdr to link (diff)
downloadmips-12e098b6823b7d688434bc69729216b2268b1852.tar.gz
mips-12e098b6823b7d688434bc69729216b2268b1852.tar.bz2
mips-12e098b6823b7d688434bc69729216b2268b1852.zip
fix sign extension, support branch delay slot
Diffstat (limited to '')
-rw-r--r--msim/load.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/msim/load.c b/msim/load.c
index 77b62ed..a4029cf 100644
--- a/msim/load.c
+++ b/msim/load.c
@@ -52,12 +52,15 @@ static int load_ehdr(struct simulator *sim, struct load_state *state)
res |= assert_ehdr(&baseline.e_##name, \
&ehdr.e_##name, size) \
+ // ignore abi ver
+ ehdr.e_ident[EI_ABIVERSION] = 0x00;
+
int res = 0;
EHDR_ASSERT(ident, EI_NIDENT);
EHDR_ASSERT(type, sizeof(Elf32_Half));
EHDR_ASSERT(machine, sizeof(Elf32_Half));
EHDR_ASSERT(version, sizeof(Elf32_Word));
- EHDR_ASSERT(flags, sizeof(Elf32_Word));
+ // EHDR_ASSERT(flags, sizeof(Elf32_Word));
EHDR_ASSERT(ehsize, sizeof(Elf32_Half));
EHDR_ASSERT(phentsize, sizeof(Elf32_Half));
EHDR_ASSERT(shentsize, sizeof(Elf32_Half));