search for: dw_cfa_offset

Displaying 18 results from an estimated 18 matches for "dw_cfa_offset".

2011 Jan 22
1
[LLVMdev] View variable-register map
Thank you Frits! I noticed the following lines in the dwarf output (run with -O2): .uleb128 40 # Offset .byte 134 # DW_CFA_offset + Reg (6) .uleb128 4 # Offset .byte 135 # DW_CFA_offset + Reg (7) .uleb128 3 # Offset .byte 131 # DW_CFA_offset + Reg (3) I think this is the closest to some sort of register "mapping", that...
2011 Jan 21
0
[LLVMdev] View variable-register map
On Fri, Jan 21, 2011 at 2:48 PM, Vijayaraghavan Murali <m.vijay at nus.edu.sg> wrote: > I just wish to know if other than manually comparing the llc generated > code with the source program, is there any other way of knowing which > variables in the program are mapped to which registers? I was not able > to find any suitable option for the same, so I'm wondering if there is a
2011 Jan 21
2
[LLVMdev] View variable-register map
Hello everyone, I have started using LLVM only recently, so I'm a kind of a newbie. I'm using it to observe the effects of our path-sensitive analysis of the source code on register allocation. I just wish to know if other than manually comparing the llc generated code with the source program, is there any other way of knowing which variables in the program are mapped to which
2010 Sep 01
2
[LLVMdev] "Cannot fine DIE"
...e last lines that it prints out are: .debug_frame contents: 0x00000000: CIE length: 0x00000010 CIE_id: 0xffffffff version: 0x01 augmentation: "" code_align: 1 data_align: -4 ra_register: 0x08 DW_CFA_def_cfa (4 (esp), 4) DW_CFA_offset (8 (eip), 0) DW_CFA_nop DW_CFA_nop Instructions: Init State: CFA=esp+4 eip=[CFA] 0x00000014: FDE length: 0x00000028 CIE_pointer: 0x00000000 I'm not sure how the contents of this structure relate to the various LLVM API calls used in creating...
2010 Jan 22
0
[LLVMdev] Exception handling question
...Encoding (pcrel sdata4) .byte 12 # DW_CFA_def_cfa .uleb128 7 # Register .uleb128 8 # Offset .byte 144 # DW_CFA_offset + Reg (16) .uleb128 1 # Offset .align 8 .Leh_frame_common_end: .Lf.eh: .long .Leh_frame_end1-.Leh_frame_begin1 # Length of Frame Information Entry .Leh_frame_begin1: .long .Leh_frame_begin1-.Leh_frame_common # FDE CIE offset .long .Leh_fun...
2010 Jan 22
2
[LLVMdev] Exception handling question
...# DW_CFA_def_cfa > .uleb128 7 # Register > .uleb128 8 # Offset > .byte 144 > # DW_CFA_offset > + Reg (16) > .uleb128 1 # Offset > .align 8 > .Leh_frame_common_end: > > .Lf.eh: > .long .Leh_frame_end1-.Leh_frame_begin1 # Length of > Frame Information Entry > .Leh_frame_begin1: > ....
2010 Sep 01
0
[LLVMdev] "Cannot fine DIE"
On 01 Sep 2010, at 08:47, Talin wrote: > Once again, I have no idea what this means or how to go about > debugging it. > This is my biggest frustration with DIFactory - there's absolutely > no way to > verify that the DWARF debugging information that I've emitted into > my module > is correct or even sensible. The only way to test it is to try and > debug
2010 Sep 01
0
[LLVMdev] "Cannot fine DIE"
...tents: > > 0x00000000: CIE > length: 0x00000010 > CIE_id: 0xffffffff > version: 0x01 > augmentation: "" > code_align: 1 > data_align: -4 > ra_register: 0x08 > DW_CFA_def_cfa (4 (esp), 4) > DW_CFA_offset (8 (eip), 0) > DW_CFA_nop > DW_CFA_nop > Instructions: Init State: CFA=esp+4 eip=[CFA] > > > 0x00000014: FDE > length: 0x00000028 > CIE_pointer: 0x00000000 > > > I'm not sure how the contents of this structure rel...
2013 Apr 27
2
[LLVMdev] LLVM creates unterminated ELF .eh_frame sections
...2 65 6c 61 2e 74 65 78 74 00 2e 72 6f 64 |..rela.text..rod| Corresponding to the end of .eh_frame part of output of command 'readelf -at -wf myelf.bin': 00003374 00000018 00003378 FDE cie=00000000 pc=00021520..000215ce DW_CFA_advance_loc: 1 to 00021521 DW_CFA_def_cfa_offset: 16 DW_CFA_offset: r6 at cfa-16 DW_CFA_advance_loc: 3 to 00021524 DW_CFA_def_cfa_reg: r6 DW_CFA_nop DW_CFA_nop DW_CFA_nop You can see that the last section of .eh_frame begins at 0x2cb14 in file, and has 4 (size value DWORD)+0x18(data)=0x1C bytes. There is the string table immediately after .eh_fra...
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
...# >> DW_CFA_def_cfa >> .uleb128 7 # Register >> .uleb128 8 # Offset >> .byte 144 >> # DW_CFA_offset >> + Reg (16) >> .uleb128 1 # Offset >> .align 8 >> .Leh_frame_common_end: >> >> .Lf.eh: >> .long .Leh_frame_end1-.Leh_frame_begin1 # Length of >> Frame Information Entry >&...
2010 Sep 01
2
[LLVMdev] "Cannot fine DIE"
On Sat, Aug 28, 2010 at 10:58 PM, Talin <viridia at gmail.com> wrote: > On Sat, Aug 28, 2010 at 4:05 PM, Talin <viridia at gmail.com> wrote: > >> On Mon, Aug 23, 2010 at 5:58 PM, Devang Patel <devang.patel at gmail.com>wrote: >> >>> >>> On Sun, Aug 22, 2010 at 12:50 PM, Talin <viridia at gmail.com> wrote: >>> >>>> I
2010 Sep 05
2
[LLVMdev] More DIFactory questions - still stumped
....debug_inlined contents: < EMPTY > .debug_frame contents: 0x00000000: CIE length: 0x00000010 CIE_id: 0xffffffff version: 0x01 augmentation: "" code_align: 1 data_align: -4 ra_register: 0x08 DW_CFA_def_cfa (esp, 4) DW_CFA_offset (eip, 0) DW_CFA_nop DW_CFA_nop Instructions: Init State: CFA=esp+4 eip=[esp+4] 0x00000014: FDE length: 0x00000028 CIE_pointer: 0x00000000 Segmentation fault If I grep through the output of dwarfdump, there are no other CIE or FDE definitions that...
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...assert(0 && "Machine move no supported yet."); > + } > + } else { > + unsigned Reg = RI->getDwarfRegNum(Src.getRegister(), true); > + int Offset = Dst.getOffset() / stackGrowth; > + > + if (Offset < 0) { > + EmitInt8(dwarf::DW_CFA_offset_extended_sf); > + EmitULEB128Bytes(Reg); > + EmitSLEB128Bytes(Offset); > + } else if (Reg < 64) { > + EmitInt8(dwarf::DW_CFA_offset + Reg); > + EmitULEB128Bytes(Offset); > + } else { > + EmitInt8(dwarf::DW_CFA_offset_extended); &g...
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...achine move no supported yet."); >> + } >> + } else { >> + unsigned Reg = RI->getDwarfRegNum(Src.getRegister(), true); >> + int Offset = Dst.getOffset() / stackGrowth; >> + >> + if (Offset < 0) { >> + EmitInt8(dwarf::DW_CFA_offset_extended_sf); >> + EmitULEB128Bytes(Reg); >> + EmitSLEB128Bytes(Offset); >> + } else if (Reg < 64) { >> + EmitInt8(dwarf::DW_CFA_offset + Reg); >> + EmitULEB128Bytes(Offset); >> + } else { >> + EmitInt8(dwarf:...
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
...0 && "Machine move no supported yet."); > + } > + } else { > + unsigned Reg = RI->getDwarfRegNum(Src.getRegister(), true); > + int Offset = Dst.getOffset() / stackGrowth; > + > + if (Offset < 0) { > + MCE->emitByte(dwarf::DW_CFA_offset_extended_sf); > + MCE->emitULEB128Bytes(Reg); > + MCE->emitSLEB128Bytes(Offset); > + } else if (Reg < 64) { > + MCE->emitByte(dwarf::DW_CFA_offset + Reg); > + MCE->emitULEB128Bytes(Offset); > + } else { > + MCE->emi...
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: