Displaying 19 results from an estimated 19 matches for "dw_cfa_def_cfa".
2016 Jan 20
2
Getting _eh_frame parser for llvm
...once about this and I haven’t yet been able to find the cause of the issue.
Igor, the failures I saw on a number of bots were complaining about one of the CHECK lines in the test case (test/tools/llvm-objdump/eh_frame-arm64.test)I adapted in the given review.
The line in question was:
# CHECK: DW_CFA_def_cfa: reg31 +0
but the bots complained saying that there was no 'DW_CFA_def_cfa: reg31 +0’ but there was a 'DW_CFA_def_cfa: reg0 +31’.
That led me to thinking there was an endian issue and that different bots were reading either 0 or 31 in the different parts of this instruction.
Unfortunatel...
2016 Jan 20
2
Getting _eh_frame parser for llvm
> On 20 January 2016 at 09:21, Igor Laevsky via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Hi all,
>>
>> Not so long ago we have found ourselves in need of a robust _eh_frame parser. All we wanted is the ability to parse .eh_frame section emitted by LLVM's MCJIT. Considering this, LLVM would be a natural place for implementing such parser.
>>
2009 Sep 18
0
[LLVMdev] OT: intel darwin losing primary target status
...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 records the state at the end. Adding unwind
info for the epilog breaks this. In the long term, I can add
heuristics...
2010 Sep 01
2
[LLVMdev] "Cannot fine DIE"
...out about 4000 lines and then
segfaults, The 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 t...
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
...# Personality
.byte 27
# LSDA Encoding
(pcrel sdata4)
.byte 27
# FDE 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:...
2010 Jan 22
2
[LLVMdev] Exception handling question
...# LSDA Encoding
> (pcrel sdata4)
> .byte 27
> # FDE Encoding
> (pcrel sdata4)
> .byte 12
> # DW_CFA_def_cfa
> .uleb128 7 # Register
> .uleb128 8 # Offset
> .byte 144
> # DW_CFA_offset
> + Reg (16)
> .uleb128 1...
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"
...at 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...
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
...# LSDA Encoding
>> (pcrel sdata4)
>> .byte 27
>> # FDE Encoding
>> (pcrel sdata4)
>> .byte 12
>> #
>> DW_CFA_def_cfa
>> .uleb128 7 # Register
>> .uleb128 8 # Offset
>> .byte 144
>> # DW_CFA_offset
>> + Reg (16)
>>...
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
2009 Sep 18
5
[LLVMdev] OT: intel darwin losing primary target status
...e 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 records the state at the end. Adding unwind
> info for the epilog breaks this. In the long term,...
2010 Sep 05
2
[LLVMdev] More DIFactory questions - still stumped
...nes before the segfault look like this:
.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 a...
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...cal = true;
> + }
> +
> + // If advancing cfa.
> + if (Dst.isRegister() && Dst.getRegister() ==
> MachineLocation::VirtualFP) {
> + if (!Src.isRegister()) {
> + if (Src.getRegister() == MachineLocation::VirtualFP) {
> + EmitInt8(dwarf::DW_CFA_def_cfa_offset);
> + } else {
> + EmitInt8(dwarf::DW_CFA_def_cfa);
> + EmitULEB128Bytes(RI->getDwarfRegNum(Src.getRegister(),
> true));
> + }
> +
> + int Offset = -Src.getOffset();
> +
> + EmitULEB128Bytes(Offset);
> + }...
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...> +
>> + // If advancing cfa.
>> + if (Dst.isRegister() && Dst.getRegister() ==
>> MachineLocation::VirtualFP) {
>> + if (!Src.isRegister()) {
>> + if (Src.getRegister() == MachineLocation::VirtualFP) {
>> + EmitInt8(dwarf::DW_CFA_def_cfa_offset);
>> + } else {
>> + EmitInt8(dwarf::DW_CFA_def_cfa);
>> + EmitULEB128Bytes(RI->getDwarfRegNum(Src.getRegister(),
>> true));
>> + }
>> +
>> + int Offset = -Src.getOffset();
>> +
>> + Emit...
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
...ue;
> + }
> +
> + // If advancing cfa.
> + if (Dst.isRegister() && Dst.getRegister() ==
> MachineLocation::VirtualFP) {
> + if (!Src.isRegister()) {
> + if (Src.getRegister() == MachineLocation::VirtualFP) {
> + MCE->emitByte(dwarf::DW_CFA_def_cfa_offset);
> + } else {
> + MCE->emitByte(dwarf::DW_CFA_def_cfa);
> + MCE->emitULEB128Bytes(RI-
> >getDwarfRegNum(Src.getRegister(), true));
> + }
> +
> + int Offset = -Src.getOffset();
> +
> + MCE->emitULEB128Bytes...
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: