Changeset 6782 for branches


Ignore:
Timestamp:
Jun 29, 2007, 1:02:36 AM (17 years ago)
Author:
Gary Byers
Message:

Dwarf nonsense for exception handling. Doesn't work yet.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ide-1.0/ccl/lisp-kernel/x86-spentry64.s

    r6779 r6782  
    38953895
    38963896_spentry(ffcall)
     3897LocalLabelPrefix[]ffcall:               
    38973898        /* Unbox %arg_z.  It's either a fixnum or macptr (or bignum) ;
    38983899          if not a fixnum, get the first word */
     
    39433944         __(movq %save2,%imm0)
    39443945        __endif
     3946LocalLabelPrefix[]ffcall_setup:
    39453947        __(addq $2*node_size,%rsp)
    39463948        __(movq %imm1,%r11)
     
    39513953        __(pop %r8)
    39523954        __(pop %r9)
     3955LocalLabelPrefix[]ffcall_setup_end:
     3956LocalLabelPrefix[]ffcall_call:
    39533957        __(call *%r11)
    3954         __ifdef([DARWIN])       
    3955         /* Handle exceptions, for ObjC 2.0 */
    3956         __(jmp LFFCallNoException)
    3957 LFFCallLandingPad:     
    3958         __(movq %rax,%save1)
    3959         __(cmpq $1,%rdx)
    3960         __(je 1f)
    3961         __(movq %rax,%rdi)
    3962         __(call *lisp_global(unwind_resume))
    3963 1:      __(movq %save1,%rdi)
    3964         __(call *lisp_global(objc2_begin_catch))
    3965         __(movq %rax,%save1)
    3966         __(call *lisp_global(objc2_end_catch))
    3967 LFFCallNoException:             
    3968         __endif
     3958LocalLabelPrefix[]ffcall_call_end:               
    39693959        __(movq %rbp,%rsp)
    39703960        __ifdef([DARWIN_GS_HACK])
     
    40154005        __(leave)
    40164006        __(ret)
     4007        __ifdef([DARWIN])       
     4008        /* Handle exceptions, for ObjC 2.0 */
     4009LocalLabelPrefix[]ffcallLandingPad:     
     4010        __(movq %rax,%save1)
     4011        __(cmpq $1,%rdx)
     4012        __(je 1f)
     4013        __(movq %rax,%rdi)
     4014LocalLabelPrefix[]ffcallUnwindResume:           
     4015        __(call *lisp_global(unwind_resume))
     4016LocalLabelPrefix[]ffcallUnwindResume_end:         
     40171:      __(movq %save1,%rdi)
     4018LocalLabelPrefix[]ffcallBeginCatch:             
     4019        __(call *lisp_global(objc2_begin_catch))
     4020LocalLabelPrefix[]ffcallBeginCatch_end:         
     4021        __(movq %rax,%save1)
     4022LocalLabelPrefix[]ffcallEndCatch:               
     4023        __(call *lisp_global(objc2_end_catch))
     4024LocalLabelPrefix[]ffcallEndCatch_end:           
     4025
     4026LocalLabelPrefix[]ffcall_end:   
     4027        __endif
     4028_endsubp(ffcall)
     4029
     4030        __ifdef([DARWIN])
     4031        .section __DATA,__gcc_except_tab
     4032GCC_except_table0:
     4033        .align 3
     4034LLSDA1:
     4035        .byte   0xff    /* @LPStart format (omit) */
     4036        .byte   0x0     /* @TType format (absolute) */
     4037        .byte   0x4d    /* uleb128 0x4d; @TType base offset */
     4038        .byte   0x3     /* call-site format (udata4) */
     4039        .byte   0x41    /* uleb128 0x41; Call-site table length */
     4040       
     4041        .long LocalLabelPrefix[]ffcall_setup-LocalLabelPrefix[]ffcall   /* region 0 start */
     4042        .long LocalLabelPrefix[]ffcall_setup_end-LocalLabelPrefix[]ffcall_setup /* length */
     4043        .long   0x0     /* landing pad */
     4044        .byte   0x0     /* uleb128 0x0; action */
    40174045       
     4046        .long LocalLabelPrefix[]ffcall_call-LocalLabelPrefix[]ffcall    /* region 1 start */
     4047        .long LocalLabelPrefix[]ffcall_call_end-LocalLabelPrefix[]ffcall_call   /* length */
     4048        .long LocalLabelPrefix[]ffcallLandingPad-LocalLabelPrefix[]ffcall       /* landing pad */
     4049        .byte   0x1     /* uleb128 0x1; action */
    40184050       
    4019 _endsubp(ffcall)
     4051        .long LocalLabelPrefix[]ffcallUnwindResume-LocalLabelPrefix[]ffcall     /* region 2 start */
     4052        .long LocalLabelPrefix[]ffcallUnwindResume_end-LocalLabelPrefix[]ffcallUnwindResume     /* length */
     4053        .long   0x0     /* landing pad */
     4054        .byte   0x0     /* uleb128 0x0; action */
     4055       
     4056        .long LocalLabelPrefix[]ffcallBeginCatch-LocalLabelPrefix[]ffcall       /* region 3 start */
     4057        .long LocalLabelPrefix[]ffcallBeginCatch_end-LocalLabelPrefix[]ffcallBeginCatch /* length */
     4058        .long 0 /* landing pad */
     4059        .byte   0x0     /* uleb128 0x0; action */
     4060       
     4061        .long LocalLabelPrefix[]ffcallEndCatch-LocalLabelPrefix[]ffcall
     4062        .long LocalLabelPrefix[]ffcallEndCatch_end-LocalLabelPrefix[]ffcallEndCatch     /* length */
     4063        .long   0x0     /* landing pad */
     4064        .byte   0x0     /* uleb128 0x0; action */
     4065        .byte   0x1     /* Action record table */
     4066        .byte   0x0
     4067        .align 3
     4068        .quad   0       /* _OBJC_EHTYPE_$_NSException */
     4069        .text
     4070        __endif
    40204071
    40214072_spentry(ffcall_return_registers)
     
    47634814        __(int $3)
    47644815_endsubp(unused_6)
    4765        
     4816
     4817        __ifdef([DARWIN])
     4818        .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
     4819EH_frame1:
     4820        .set L$set$12,LECIE1-LSCIE1
     4821        .long L$set$12  /* Length of Common Information Entry */
     4822LSCIE1:
     4823        .long   0x0     /* CIE Identifier Tag */
     4824        .byte   0x1     /* CIE Version */
     4825        .ascii "zPLR\0" /* CIE Augmentation */
     4826        .byte   0x1     /* uleb128 0x1; CIE Code Alignment Factor */
     4827        .byte   0x78    /* sleb128 -8; CIE Data Alignment Factor */
     4828        .byte   0x10    /* CIE RA Column */
     4829        .byte   0x7     /* uleb128 0x7; Augmentation size */
     4830        .byte   0x8c    /* Personality (indirect  sdata8) */
     4831        .quad   lisp_global(objc_2_personality)
     4832        .byte   0x10    /* LSDA Encoding (pcrel) */
     4833        .byte   0x10    /* FDE Encoding (pcrel) */
     4834        .byte   0xc     /* DW_CFA_def_cfa */
     4835        .byte   0x7     /* uleb128 0x7 */
     4836        .byte   0x8     /* uleb128 0x8 */
     4837        .byte   0x90    /* DW_CFA_offset, column 0x10 */
     4838        .byte   0x1     /* uleb128 0x1 */
     4839        .align 3
     4840LECIE1:
     4841        .globl _SPffcall.eh
     4842_SPffcall.eh:
     4843        .long LEFDEffcall-LSFDEffcall
     4844LSFDEffcall:     
     4845        .long LSFDEffcall-EH_frame1 /* FDE CIE offset */
     4846        .quad Lffcall-. /* FDE Initial Location */
     4847        .quad Lffcall_end-Lffcall /* FDE address range */
     4848        .byte 8 /* uleb128 0x8; Augmentation size */
     4849        .quad LLSDA1-.           /* Language Specific Data Area */
     4850        .byte   0x4     /* DW_CFA_advance_loc4 */
     4851        .long Lffcall_setup-Lffcall
     4852        .byte   0xe     /* DW_CFA_def_cfa_offset */
     4853        .byte   0x10    /* uleb128 0x10 */
     4854        .byte   0x86    /* DW_CFA_offset, column 0x6 */
     4855        .byte   0x2     /* uleb128 0x2 */
     4856        .byte   0x4     /* DW_CFA_advance_loc4 */
     4857        .long Lffcall_setup_end-Lffcall_setup
     4858        .byte   0xd     /* DW_CFA_def_cfa_register */
     4859        .byte   0x6     /* uleb128 0x6 */
     4860        .byte   0x4     /* DW_CFA_advance_loc4 */
     4861        .long Lffcall_call_end-Lffcall_call
     4862        .byte   0x83    /* DW_CFA_offset, column 0x3 */
     4863        .byte   0x3     /* uleb128 0x3 */
     4864        .align 3
     4865LEFDEffcall:
     4866        .text
     4867        __endif
     4868       
     4869       
     4870         
Note: See TracChangeset for help on using the changeset viewer.