[GHC] #10383: AArch64: get GHC Calling convention working
GHC
ghc-devs at haskell.org
Wed Jun 3 04:28:14 UTC 2015
#10383: AArch64: get GHC Calling convention working
----------------------------------------+----------------------------------
Reporter: erikd | Owner: erikd
Type: feature request | Status: new
Priority: normal | Milestone: 7.12.1
Component: Compiler | Version: 7.11
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: aarch64
Type of failure: Building GHC failed | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Revisions:
----------------------------------------+----------------------------------
Comment (by erikd):
With the help of @rwbarton got the disassembly around the crash site:
{{{
(gdb) disass 0x0000007fb3dac244
Dump of assembler code for function stg_ap_p_fast$def:
0x0000007fb3dac1d8 <+0>: mov x24, x20
0x0000007fb3dac1dc <+4>: and x8, x22, #0x7
0x0000007fb3dac1e0 <+8>: cmp x8, #0x1
0x0000007fb3dac1e4 <+12>: b.ne 0x7fb3dac1f8
<stg_ap_p_fast$def+32>
0x0000007fb3dac1e8 <+16>: ldr x8, [x22,#-1]
0x0000007fb3dac1ec <+20>: mov x20, x24
0x0000007fb3dac1f0 <+24>: blr x8
0x0000007fb3dac1f4 <+28>: ret
0x0000007fb3dac1f8 <+32>: sub x20, x24, #0x10
0x0000007fb3dac1fc <+36>: cmp x20, x28
0x0000007fb3dac200 <+40>: b.cs 0x7fb3dac220
<stg_ap_p_fast$def+72>
0x0000007fb3dac204 <+44>: str x23, [x24,#-8]
0x0000007fb3dac208 <+48>: adrp x8, 0x7fb3dc0000
0x0000007fb3dac20c <+52>: ldr x8, [x8,#424]
0x0000007fb3dac210 <+56>: str x8, [x24,#-16]!
0x0000007fb3dac214 <+60>: mov x20, x24
0x0000007fb3dac218 <+64>: bl 0x7fb3da32a8
<__stg_gc_enter_1$def>
0x0000007fb3dac21c <+68>: ret
0x0000007fb3dac220 <+72>: and x22, x22, #0xfffffffffffffff8
0x0000007fb3dac224 <+76>: adrp x25, 0x7fb3dbf000
0x0000007fb3dac228 <+80>: ldr x25, [x25,#1584]
0x0000007fb3dac22c <+84>: ldr x26, [x22]
0x0000007fb3dac230 <+88>: ldr w8, [x25,#224]
0x0000007fb3dac234 <+92>: cbz w8, 0x7fb3dac244
<stg_ap_p_fast$def+108>
0x0000007fb3dac238 <+96>: adrp x0, 0x7fb3dbe000 <cIL_str$def>
0x0000007fb3dac23c <+100>: add x0, x0, #0x20
0x0000007fb3dac240 <+104>: bl 0x7fb3d7439c <debugBelch>
=> 0x0000007fb3dac244 <+108>: ldrsw x26, [x26,#-8]
0x0000007fb3dac248 <+112>: ldr w8, [x25,#224]
}}}
which shows the crash on the instruction `ldrsw x26, [x26,#-8]`:
{{{
(gdb) info registers
x0 0x0 0
x1 0x0 0
x2 0x1 1
x3 0x0 0
x4 0x0 0
x5 0x0 0
x6 0xffffffbb 4294967227
x7 0x0 0
x8 0x40 64
x9 0x0 0
x10 0xffffffff 4294967295
x11 0x1 1
x12 0x7fb4591428 548486583336
x13 0x12 18
x14 0x7fb3a09fff 548474494975
x15 0x2 2
x16 0x7fb3dc0250 548478386768
x17 0x7fb3c329f4 548476758516
x18 0x7fffffa790 549755791248
x19 0x7fb3dc4998 548478405016
x20 0x7fb3a051c8 548474474952
x21 0x7fb3a092b0 548474491568
x22 0x7fb3dc4998 548478405016
x23 0x7fb3a09291 548474491537
x24 0x7fb3a051d8 548474474968
x25 0x7fb3dc4578 548478403960
x26 0x0 0
x27 0x0 0
x28 0x7fb3a050c0 548474474688
x29 0x7fffffead0 549755808464
x30 0x7fb3dac244 548478304836
sp 0x7fffffaa30 0x7fffffaa30
pc 0x7fb3dac244 0x7fb3dac244 <stg_ap_p_fast$def+108>
cpsr 0x60000000 1610612736
fpsr 0x0 0
fpcr 0x0 0
}}}
and register `x26` is `0x0`.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10383#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list