Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Changeset 1289:4a5eea0334e5

Show
Ignore:
Timestamp:
05/02/09 10:39:26 (3 years ago)
Author:
Benjamin Kramer <benny.kra@gmail.com>
branch:
default
Message:

Add runtime support for darwin x86_64

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • runtime/internal/eh.d

    r898 r1289  
    1919version(X86_64) { 
    2020    version(linux) version=X86_UNWIND; 
     21    version(darwin) version=X86_UNWIND; 
    2122    version(solaris) version=X86_UNWIND; 
    2223} 
  • runtime/internal/memory.d

    r1151 r1289  
    121121    { 
    122122        // darwin has a fixed stack bottom 
    123         return cast(void*) 0xc0000000; 
     123        version(X86_64) 
     124            return cast(void*) 0x7fff5fc00000; 
     125        else 
     126            return cast(void*) 0xc0000000; 
    124127    } 
    125128    else version( solaris ) 
     
    530533            uint sizeofcmds; 
    531534            uint flags; 
     535            version(X86_64) 
     536                uint reserved; 
    532537        } 
    533538 
     
    536541            char[16] sectname; 
    537542            char[16] segname; 
    538             uint addr; 
    539             uint size; 
     543            version(X86_64) 
     544            { 
     545                ulong addr; 
     546                ulong size; 
     547            } 
     548            else 
     549            { 
     550                uint addr; 
     551                uint size; 
     552            } 
    540553            uint offset; 
    541554            uint align_; 
     
    545558            uint reserved1; 
    546559            uint reserved2; 
     560            version(X86_64) 
     561                uint reserved3; 
    547562        } 
    548563 
    549564        alias extern (C) void function (mach_header* mh, ptrdiff_t vmaddr_slide) DyldFuncPointer; 
    550565 
    551         extern (C) /*const*/ section* getsectbynamefromheader(/*const*/ mach_header* mhp, /*const*/ char* segname, /*const*/ char* sectname); 
     566        version(X86_64) 
     567            extern (C) /*const*/ section* getsectbynamefromheader_64(/*const*/ mach_header* mhp, /*const*/ char* segname, /*const*/ char* sectname); 
     568        else 
     569            extern (C) /*const*/ section* getsectbynamefromheader(/*const*/ mach_header* mhp, /*const*/ char* segname, /*const*/ char* sectname); 
    552570        extern (C) void _dyld_register_func_for_add_image(DyldFuncPointer func); 
    553571        extern (C) void _dyld_register_func_for_remove_image(DyldFuncPointer func); 
     
    563581            foreach (s ; GC_dyld_sections) 
    564582            { 
    565                 sec = getsectbynamefromheader(hdr, s.segment, s.section); 
     583                version(X86_64) 
     584                    sec = getsectbynamefromheader_64(hdr, s.segment, s.section); 
     585                else 
     586                    sec = getsectbynamefromheader(hdr, s.segment, s.section); 
    566587 
    567588                if (sec == null || sec.size == 0) 
     
    583604            foreach (s ; GC_dyld_sections) 
    584605            { 
    585                 sec = getsectbynamefromheader(hdr, s.segment, s.section); 
     606                version(X86_64) 
     607                    sec = getsectbynamefromheader_64(hdr, s.segment, s.section); 
     608                else 
     609                    sec = getsectbynamefromheader(hdr, s.segment, s.section); 
    586610 
    587611                if (sec == null || sec.size == 0) 
Copyright © 2008, LDC Development Team.