That’s awesome — great work! Manuel
Luke Iannini <lukex...@gmail.com>: > Indeed, the float register stuff was a red herring — restoring it caused no > problems and all my tests are working great. So yahoo!! We've got ARM64 > support. > > I'll tidy up the patches and create a ticket for review and merge. > > Luke > > > On Tue, Aug 12, 2014 at 4:47 PM, Luke Iannini <lukex...@gmail.com> wrote: > Hi all, > Yahoo, happy news — I think I've got it. Studying enough of the > non-handwritten ASM that I was stepping through led me to make this change: > https://github.com/lukexi/ghc/commit/1140e11db07817fcfc12446c74cd5a2bcdf92781 > (I think disabling the floating point registers was just a red herring; I'll > confirm that next) > > And I can now call this fib code happily via the FFI: > fibs :: [Int] > fibs = 1:1:zipWith (+) fibs (tail fibs) > > foreign export ccall fib :: Int -> Int > fib :: Int -> Int > fib = (fibs !!) > > For posterity, more detail on the crashing case earlier (this is fixed now > with proper storage and updating of the frame pointer): > Calling fib(1) or fib(2) worked, but calling fib(3) triggered the crash. > This was the backtrace, where you can see the errant 0x0000000100f05110 frame > values. > (lldb) bt > * thread #1: tid = 0xac6ed, 0x0000000100f05110, queue = > 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, > address=0x100f05110) > frame #0: 0x0000000100f05110 > frame #1: 0x0000000100f05110 > * frame #2: 0x00000001000ffc9c HelloHaskell`-[SPJViewController > viewDidLoad](self=0x0000000144e0cf10, _cmd=0x0000000186ae429a) + 76 at > SPJViewController.m:22 > frame #3: 0x00000001862f8b70 UIKit`-[UIViewController loadViewIfRequired] > + 692 > frame #4: 0x00000001862f8880 UIKit`-[UIViewController view] + 32 > frame #5: 0x00000001862feeb0 UIKit`-[UIWindow > addRootViewControllerViewIfPossible] + 72 > frame #6: 0x00000001862fc6d4 UIKit`-[UIWindow _setHidden:forced:] + 296 > frame #7: 0x000000018636d2bc UIKit`-[UIWindow makeKeyAndVisible] + 56 > frame #8: 0x000000018657ff74 UIKit`-[UIApplication > _callInitializationDelegatesForMainScene:transitionContext:] + 2804 > frame #9: 0x00000001865824ec UIKit`-[UIApplication > _runWithMainScene:transitionContext:completion:] + 1480 > frame #10: 0x0000000186580b84 UIKit`-[UIApplication > workspaceDidEndTransaction:] + 184 > frame #11: 0x0000000189d846ac FrontBoardServices`__31-[FBSSerialQueue > performAsync:]_block_invoke + 28 > frame #12: 0x0000000181c7a360 > CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20 > frame #13: 0x0000000181c79468 CoreFoundation`__CFRunLoopDoBlocks + 312 > frame #14: 0x0000000181c77a8c CoreFoundation`__CFRunLoopRun + 1756 > frame #15: 0x0000000181ba5664 CoreFoundation`CFRunLoopRunSpecific + 396 > frame #16: 0x0000000186363140 UIKit`-[UIApplication _run] + 552 > frame #17: 0x000000018635e164 UIKit`UIApplicationMain + 1488 > frame #18: 0x0000000100100268 HelloHaskell`main(argc=1, > argv=0x000000016fd07a58) + 204 at main.m:24 > frame #19: 0x00000001921eea08 libdyld.dylib`start + 4 > > > > On Tue, Aug 12, 2014 at 11:24 AM, Karel Gardas <karel.gar...@centrum.cz> > wrote: > On 08/12/14 11:03 AM, Luke Iannini wrote: > It looks like it's jumping somewhere strange; lldb tells me it's to > 0x100e05110: .long 0x00000000 ; unknown opcode > 0x100e05114: .long 0x00000000 ; unknown opcode > 0x100e05118: .long 0x00000000 ; unknown opcode > 0x100e0511c: .long 0x00000000 ; unknown opcode > 0x100e05120: .long 0x00000000 ; unknown opcode > 0x100e05124: .long 0x00000000 ; unknown opcode > 0x100e05128: .long 0x00000000 ; unknown opcode > 0x100e0512c: .long 0x00000000 ; unknown opcode > > If I put a breakpoint on StgRun and step by instruction, I seem to make > it to about: > https://github.com/lukexi/ghc/blob/e99b7a41e64f3ddb9bb420c0d5583f0e302e321e/rts/StgCRun.c#L770 > (give or take a line) > > strange that it's in the middle of the stp isns block. Anyway, this looks > like a cpu exception doesn't it? You will need to find out the reg which > holds the "exception reason" value and then look on it in your debugger to > find out what's going wrong there. > > Karel > > > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs