X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdriver%2Fmangler%2Fghc-asm.lprl;h=cd142dbad32184f472ecb2371aab1730d2acf38d;hb=4302b12e6fd876a190ce6091e6ce14dbeb15bc00;hp=b95cad8b2a1c66bbdecc7665ed63f4c08870dc55;hpb=59177a1b536b8a40924d8efa5520fb664447f92a;p=ghc-hetmet.git diff --git a/ghc/driver/mangler/ghc-asm.lprl b/ghc/driver/mangler/ghc-asm.lprl index b95cad8..cd142db 100644 --- a/ghc/driver/mangler/ghc-asm.lprl +++ b/ghc/driver/mangler/ghc-asm.lprl @@ -332,7 +332,8 @@ sub init_TARGET_STUFF { $T_DOT_WORD = '\.(long|short|byte|fill|space)'; $T_DOT_GLOBAL = '\.globl'; $T_HDR_toc = "\.toc\n"; - $T_HDR_literal = "\t\.const\n\t\.align 4\n"; # align for SSE + $T_HDR_literal16= "\t\.literal8\n\t\.align 4\n"; + $T_HDR_literal = "\t\.const\n\t\.align 4\n"; $T_HDR_misc = "\t\.text\n\t\.align 2\n"; $T_HDR_data = "\t\.data\n\t\.align 2\n"; $T_HDR_rodata = "\t\.const\n\t\.align 2\n"; @@ -1211,8 +1212,9 @@ sub mangle_asm { # HACK: try to detect 16-byte constants and align them # on a 16-byte boundary. x86_64 sometimes needs 128-bit - # aligned constants. - if ( $TargetPlatform =~ /^x86_64/ ) { + # aligned constants, and so does Darwin/x86. + if ( $TargetPlatform =~ /^x86_64/ + || $TargetPlatform =~ /^i386-apple-darwin/ ) { $z = $chk[$i]; if ($z =~ /(\.long.*\n.*\.long.*\n.*\.long.*\n.*\.long|\.quad.*\n.*\.quad)/) { print OUTASM $T_HDR_literal16;