summaryrefslogtreecommitdiff
path: root/rts/Libdw.c
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2015-11-23 12:45:47 +0100
committerBen Gamari <ben@smart-cactus.org>2015-11-23 15:21:57 +0100
commit70ee6389ca6be37f369395f100e609e9f16a7200 (patch)
tree9bfe5b43a4bbedc15ec9acc78098dfc57baaf9bc /rts/Libdw.c
parentdbad0d5d8dc1fa616065a49f5175adafb4f36080 (diff)
downloadhaskell-70ee6389ca6be37f369395f100e609e9f16a7200.tar.gz
Libdw: Fix initial register collection on i386
RIP-relative addressing isn't available on i386.
Diffstat (limited to 'rts/Libdw.c')
-rw-r--r--rts/Libdw.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/rts/Libdw.c b/rts/Libdw.c
index 1415fe6fdf..61fefbd9b9 100644
--- a/rts/Libdw.c
+++ b/rts/Libdw.c
@@ -312,7 +312,8 @@ static bool set_initial_registers(Dwfl_Thread *thread,
"movl %%ebp, 0x14(%0)\n\t"
"movl %%esp, 0x18(%0)\n\t"
"movl %%edi, 0x1c(%0)\n\t"
- "lea 0(%%eip), %%eax\n\t"
+ "here:\n\t"
+ "movl here, %%eax\n\t"
"movl %%eax, 0x20(%0)\n\t"
: /* no output */
:"r" (&regs[0]) /* input */