X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FPositionIndependentCode.hs;h=e2db9da62d5a25105c0df80e671e52cd65f5b280;hb=9bbcd77cf9b66940058dbea1827db594e8ff6d7f;hp=523f305a6264a92bfaa8b1c2190d1cd5e27d3de5;hpb=28c556a5e0ed5c2687f19ec6ef8853b79ad65518;p=ghc-hetmet.git diff --git a/compiler/nativeGen/PositionIndependentCode.hs b/compiler/nativeGen/PositionIndependentCode.hs index 523f305..e2db9da 100644 --- a/compiler/nativeGen/PositionIndependentCode.hs +++ b/compiler/nativeGen/PositionIndependentCode.hs @@ -200,7 +200,7 @@ howToAccessLabel DataReference lbl | otherwise = AccessDirectly -#if x86_TARGET_ARCH || x86_64_TARGET_ARCH +#if i386_TARGET_ARCH || x86_64_TARGET_ARCH -- dyld code stubs don't work for tailcalls because the -- stack alignment is only right for regular calls. -- Therefore, we have to go via a symbol pointer: @@ -269,12 +269,12 @@ howToAccessLabel DataReference lbl -- (AccessDirectly, because we get an implicit symbol stub) -- and calling functions from PIC code on non-i386 platforms (via a symbol stub) -howToAccessLabel CallLabel lbl +howToAccessLabel CallReference lbl | labelDynamic lbl && not opt_PIC = AccessDirectly #if !i386_TARGET_ARCH | labelDynamic lbl && opt_PIC - = AccessViaSymbolStub + = AccessViaStub #endif howToAccessLabel _ lbl @@ -442,7 +442,7 @@ pprImportedSymbol importedLbl ptext SLIT("1:"), ptext SLIT("\tmovl L") <> pprCLabel_asm lbl <> ptext SLIT("$lazy_ptr-1b(%eax),%edx"), - ptext SLIT("\tjmp %edx"), + ptext SLIT("\tjmp *%edx"), ptext SLIT("L") <> pprCLabel_asm lbl <> ptext SLIT("$stub_binder:"), ptext SLIT("\tlea L") <> pprCLabel_asm lbl