search for: dw_cfa_advance_loc4

Displaying 12 results from an estimated 12 matches for "dw_cfa_advance_loc4".

2009 Sep 18
0
[LLVMdev] OT: intel darwin losing primary target status
...ased on the .s files in bugzilla, the latest gcc is now adding dwarf unwind info to describe the function epilog. If you run dwarfdump --eh-frame on the .o files made with the new compiler, you'll see extra dwarf unwind instructions at the end like: ... DW_CFA_advance_loc4 (64) #<-- advance to near end of function DW_CFA_restore (rbp) DW_CFA_def_cfa (rsp, 8) DW_CFA_nop DW_CFA_nop The linker's conversion to compact unwind "runs" the dwarf unwind info for a function and then reco...
2009 Sep 18
2
[LLVMdev] OT: intel darwin losing primary target status
On Fri, Sep 18, 2009 at 11:13:52AM -0700, Nick Kledzik wrote: > > The important thing is that only one unwinder is used. The > _Unwind_Context data structure is different between the darwin and FSF > implementations, so you can't pass it between two different > implementations. Since darwin uses two-level namespace and swapping in > a new libgcc_s.dylib at runtime
2010 Jan 22
0
[LLVMdev] Exception handling question
...location .long .Leh_func_end1-.Leh_func_begin1 # FDE address range .uleb128 8 # Augmentation size .quad .Lexception1-. # Language Specific Data Area .byte 4 # DW_CFA_advance_loc4 .long .Llabel4-.Leh_func_begin1 .byte 14 # DW_CFA_def_cfa_offset .uleb128 16 # Offset .align 8 .Leh_frame_end1: .section .note.GNU-stack,"", at progbits
2010 Jan 22
2
[LLVMdev] Exception handling question
...address > range > .uleb128 8 # Augmentation > size > .quad .Lexception1-. # Language > Specific Data Area > .byte 4 > # > DW_CFA_advance_loc4 > .long .Llabel4-.Leh_func_begin1 > .byte 14 > # > DW_CFA_def_cfa_offset > .uleb128 16 # Offset > .align 8 > .Leh_frame_end1: > > >...
2010 Jan 21
4
[LLVMdev] Exception handling question
Hi, I'm trying to get exception handling working in my compiler targetting LLVM. I've been working from the LLVM exception handling documentation (including http://llvm.org/docs/ExceptionHandling.html and http://wiki.llvm.org/HowTo:_Build_JIT_based_Exception_mechanism) and looking at g++-llvm's output. I've been trying to get a minimal test function to work, which simply invokes
2010 Jan 22
0
[LLVMdev] Exception handling question
....uleb128 8 # Augmentation >> size >> .quad .Lexception1-. # Language >> Specific Data Area >> .byte 4 >> # >> DW_CFA_advance_loc4 >> .long .Llabel4-.Leh_func_begin1 >> .byte 14 >> # >> DW_CFA_def_cfa_offset >> .uleb128 16 # Offset >> .align 8 >> .Leh_fram...
2009 Sep 18
5
[LLVMdev] OT: intel darwin losing primary target status
...in bugzilla, the latest gcc is > now adding dwarf unwind info to describe the function epilog. If you > run dwarfdump --eh-frame on the .o files made with the new compiler, > you'll see extra dwarf unwind instructions at the end like: > > ... > DW_CFA_advance_loc4 (64) #<-- advance to near end of > function > DW_CFA_restore (rbp) > DW_CFA_def_cfa (rsp, 8) > DW_CFA_nop > DW_CFA_nop > > The linker's conversion to compact unwind "runs" the dwarf unwind info &g...
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...const MachineLocation &Dst = Move.getDestination(); > + const MachineLocation &Src = Move.getSource(); > + > + // Advance row if new location. > + if (BaseLabelPtr && LabelID && (BaseLabelPtr != LabelPtr || ! > IsLocal)) { > + EmitInt8(dwarf::DW_CFA_advance_loc4); > + if (PointerSize == 8) { > + EmitInt64(LabelPtr - BaseLabelPtr); > + } else { > + EmitInt32(LabelPtr - BaseLabelPtr); > + } > + > + BaseLabelPtr = LabelPtr; > + IsLocal = true; > + } > + > + // If advancing cfa. >...
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...mp;Dst = Move.getDestination(); >> + const MachineLocation &Src = Move.getSource(); >> + >> + // Advance row if new location. >> + if (BaseLabelPtr && LabelID && (BaseLabelPtr != LabelPtr || ! >> IsLocal)) { >> + EmitInt8(dwarf::DW_CFA_advance_loc4); >> + if (PointerSize == 8) { >> + EmitInt64(LabelPtr - BaseLabelPtr); >> + } else { >> + EmitInt32(LabelPtr - BaseLabelPtr); >> + } >> + >> + BaseLabelPtr = LabelPtr; >> + IsLocal = true; >> + } >&g...
2007 Dec 10
2
[LLVMdev] Exception handling in JIT
Hi everyone, Here's a patch that enables exception handling when jitting. I've copy/pasted _many_code from lib/Codegen/DwarfWriter.cpp, so we may need to factorize it, but the functionality is there and I'm very happy with it :) lli should now be able to execute the output from llvm-gcc when using exceptions (the UnwindInst instruction is not involved in this patch). Just add the
2008 Feb 04
0
[LLVMdev] Exception handling in JIT
...chineLocation &Dst = Move.getDestination(); > + const MachineLocation &Src = Move.getSource(); > + > + // Advance row if new location. > + if (BaseLabelPtr && LabelID && (BaseLabelPtr != LabelPtr || ! > IsLocal)) { > + MCE->emitByte(dwarf::DW_CFA_advance_loc4); > + if (PointerSize == 8) { > + MCE->emitInt64(LabelPtr - BaseLabelPtr); > + } else { > + MCE->emitInt32(LabelPtr - BaseLabelPtr); > + } > + > + BaseLabelPtr = LabelPtr; > + IsLocal = true; > + } > + > + // If adv...
2008 Feb 01
2
[LLVMdev] Exception handling in JIT
Dear all, Here's a new patch with Evan's comments (thx Evan!) and some cleanups. Now the (duplicated) exception handling code is in a new file: lib/ExecutionEngine/JIT/JITDwarfEmitter. This patch should work on linux/x86 and linux/ppc (tested). Nicolas -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: jit-exceptions.patch URL: