Ticket #514: wrapper_darwin.2.patch

File wrapper_darwin.2.patch, 1.6 KB (added by stephane.lapie@…, 13 years ago)

loader/wrapper.S unified diff, allows build on Macbook

  • wrapper.S

    old new  
    1 .section .data
     1.data
    22.globl caller_return
    33caller_return:
    44        .long 0
    5 .globl report_entry
    6 report_entry:
     5.globl _report_entry
     6_report_entry:
    77        .long null_call
    8 .globl report_ret
    9 report_ret:     
     8.globl _report_ret
     9_report_ret:   
    1010        .long null_call
    11 .global wrapper_target
    12 wrapper_target:
     11.globl _wrapper_target
     12_wrapper_target:       
    1313        .long null_call
    1414
    15 .section .text
     15.text
    1616.globl null_call
    17         .type null_call, @function
    18         .balign 16,0x90
     17#       .type null_call, @function
     18        .p2align 4,0x90
    1919null_call:
    2020        ret
    21 .globl wrapper
    22         .type wrapper, @function
    23         .balign 16,0x90
    24 wrapper:
     21.globl _wrapper
     22#       .type wrapper, @function
     23        .p2align 4,0x90
     24_wrapper:
    2525        pusha                   # store registers (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI)
    2626        pushf                   # store flags
    2727       
     
    3939        push %eax
    4040        push %edx
    4141       
    42         call *report_entry      # report entry
     42        call *_report_entry     # report entry
    4343       
    4444        test %eax, %eax
    4545        jnz .Ldone
     
    5151        popl caller_return      # switch return addresses
    5252        pushl $.Lwrapper_return
    5353       
    54         jmp *wrapper_target     # wrapper_target should return at .Lwrapper_return
     54        jmp *_wrapper_target    # wrapper_target should return at .Lwrapper_return
    5555
    56         .balign 16, 0x90
     56        .p2align 4, 0x90
    5757.Lwrapper_return:       
    5858        pushl caller_return     # restore the original return address
    5959        pusha                   # more for reference sake here
     
    7373        push %eax
    7474        push %edx
    7575
    76         call *report_ret        # report the return information (same args)
     76        call *_report_ret       # report the return information (same args)
    7777.Ldone:
    7878
    7979        leave