[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 01/61] include/hw/elf: Remove truncating signed casts
|
From: |
Richard Henderson |
|
Subject: |
[PATCH 01/61] include/hw/elf: Remove truncating signed casts |
|
Date: |
Wed, 18 Oct 2023 14:50:35 -0700 |
There's nothing about elf that specifically requires signed vs unsigned.
This is very much a target-specific preference.
In the meantime, casting low and high from uint64_t back to Elf_SWord
to uint64_t discards high bits that might have been set by translate_fn.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/hw/elf_ops.h | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h
index dffb0e73d2..0a5c258fe6 100644
--- a/include/hw/elf_ops.h
+++ b/include/hw/elf_ops.h
@@ -385,10 +385,11 @@ static ssize_t glue(load_elf, SZ)(const char *name, int
fd,
}
if (pflags) {
- *pflags = (elf_word)ehdr.e_flags;
+ *pflags = ehdr.e_flags;
+ }
+ if (pentry) {
+ *pentry = ehdr.e_entry;
}
- if (pentry)
- *pentry = (uint64_t)(elf_sword)ehdr.e_entry;
glue(load_symbols, SZ)(&ehdr, fd, must_swab, clear_lsb, sym_cb);
@@ -610,10 +611,12 @@ static ssize_t glue(load_elf, SZ)(const char *name, int
fd,
}
}
- if (lowaddr)
- *lowaddr = (uint64_t)(elf_sword)low;
- if (highaddr)
- *highaddr = (uint64_t)(elf_sword)high;
+ if (lowaddr) {
+ *lowaddr = low;
+ }
+ if (highaddr) {
+ *highaddr = high;
+ }
ret = total_size;
fail:
if (mapped_file) {
--
2.34.1
- [PATCH 00/61] target/hppa: Implement hppa64-cpu, Richard Henderson, 2023/10/18
- [PATCH 01/61] include/hw/elf: Remove truncating signed casts,
Richard Henderson <=
- [PATCH 02/61] target/hppa: Remove get_temp, Richard Henderson, 2023/10/18
- [PATCH 05/61] target/hppa: Fix hppa64 case in machine.c, Richard Henderson, 2023/10/18
- [PATCH 06/61] target/hppa: Fix load in do_load_32, Richard Henderson, 2023/10/18
- [PATCH 03/61] target/hppa: Remove get_temp_tl, Richard Henderson, 2023/10/18
- [PATCH 07/61] target/hppa: Truncate rotate count in trans_shrpw_sar, Richard Henderson, 2023/10/18
- [PATCH 08/61] target/hppa: Fix trans_ds for hppa64, Richard Henderson, 2023/10/18
- [PATCH 09/61] target/hppa: Fix do_add, do_sub for hppa64, Richard Henderson, 2023/10/18