aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-10-23 10:25:06 +0200
committerlemon <lsof@mailbox.org>2025-10-23 10:25:06 +0200
commitcb199f47ca31b079212fe4fd3987e5ba39b12273 (patch)
treef260f68971f607ee30234147e6a5ceb7c5a93b9e
parent6e7b3186952d5a0877312886747e95b1455db996 (diff)
isel: fix -fpic factoring out non-symbolic address operands
-rw-r--r--amd64/isel.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/amd64/isel.c b/amd64/isel.c
index 6041faf..7ff84e4 100644
--- a/amd64/isel.c
+++ b/amd64/isel.c
@@ -235,7 +235,7 @@ fuseaddr(union ref *r, struct block *blk, int *curi)
if (r->t != RTMP) return 0;
if (!aadd(&addr, *r)) return 0;
- if (ccopt.pic || (ccopt.pie && isaddrcon(addr.base) && addr.index.bits)) {
+ if (isaddrcon(addr.base) && (ccopt.pic || (ccopt.pie && addr.index.bits))) {
/* pic needs to load from GOT */
/* pie cannot encode RIP-relative address with index register */
/* first load symbol address into a temp register */