[LLVMdev] [lldb-dev] How is variable info retrieved in debugging for executables generated by llvm backend?

Greg Clayton gclayton at apple.com
Thu Feb 20 10:57:11 PST 2014


On Feb 20, 2014, at 1:28 AM, æšć‹‡ć‹‡ <triple.yang at gmail.com> wrote:

> Thank you, Clayton. This is very helpful.
> 
> We use the LLDB specific GDB remote extensions, and our debugger server supports "qRegisterInfo" package. "reg 0x3c" is the frame pointer.
> 
> In the example mentioned above, we have SP = FP - 40 for current call frame.
> And variable "a" is stored at address (FP + -24) from asm instruction [FP + -24] = R3;;
> Thus we can conclude that SP + 16 = FP - 40 + 16 = FP -24 is the desired address. Here "16" is the offset obtained from debug info.
> 
> So I guess there is something incompatible between our compiler backend and debug info generator.
> Here is my questions:
> 1. How can we specify which register should be DW_AT_frame_base?

You don't need to, there is a DWARF location expression in the DW_AT_frame_base attribute attached to the function:

        DW_AT_frame_base( regx 0x0000003c )

This means:

	DW_OP_regx(0x0000003c)

Or that the frame base is in register 0x3c. Now qRegisterInfo packets you send back to LLDB must include "DWARF" register numbers. Sometimes the register numbers the compiler uses for EH frame (from the .eh_frame section) differ from the register numbers used in DWARF (any register numbers in .debug_frame, .debug_info, .debug_loc, and more). So you need to explicitly specify these numbers:

At the end of this email is a complete version of the qRegisterInfo packets and responses for x86_64. Be sure to check the gcc:<regnum> (compiler register numbering for EH frame), dwarf:<regnum> (for DWARF mappings, but no all registers get DWARF register numbers because some will never contain variable values), and also look for the "generic" key value pairs like "generic:arg1;" for the first argument to functions as the ABI, and "generic:pc;" for the program counter. If you think you are specifying these all correctly, please attach the output of running your program after doing a:

(lldb) log enable gdb-remote packets
(lldb) gdb-remote ...

Then I might be able to spot something wrong in the register definitions.

. How can we adjust the offset in DW_AT_location for variables?

You don't need to, each variable already has the needed offset from the frame base and you DWARF looks good. Once you get your register info worked out, your variables should display just fine.

x86_64-apple-macosx qRegisterInfo packet log:

$qRegisterInfo0#72
$name:rax;bitsize:64;offset:0;encoding:uint;format:hex;set:General Purpose Registers;gcc:0;dwarf:0;invalidate-regs:0,15,25,35,39;#00
$qRegisterInfo1#73
$name:rbx;bitsize:64;offset:8;encoding:uint;format:hex;set:General Purpose Registers;gcc:3;dwarf:3;invalidate-regs:1,16,26,36,3a;#00
$qRegisterInfo2#74
$name:rcx;alt-name:arg4;bitsize:64;offset:16;encoding:uint;format:hex;set:General Purpose Registers;gcc:2;dwarf:2;generic:arg4;invalidate-regs:2,17,27,37,3b;#00
$qRegisterInfo3#75
$name:rdx;alt-name:arg3;bitsize:64;offset:24;encoding:uint;format:hex;set:General Purpose Registers;gcc:1;dwarf:1;generic:arg3;invalidate-regs:3,18,28,38,3c;#00
$qRegisterInfo4#76
$name:rdi;alt-name:arg1;bitsize:64;offset:32;encoding:uint;format:hex;set:General Purpose Registers;gcc:5;dwarf:5;generic:arg1;invalidate-regs:4,19,29,3d;#00
$qRegisterInfo5#77
$name:rsi;alt-name:arg2;bitsize:64;offset:40;encoding:uint;format:hex;set:General Purpose Registers;gcc:4;dwarf:4;generic:arg2;invalidate-regs:5,1a,2a,3e;#00
$qRegisterInfo6#78
$name:rbp;alt-name:fp;bitsize:64;offset:48;encoding:uint;format:hex;set:General Purpose Registers;gcc:6;dwarf:6;generic:fp;invalidate-regs:6,1b,2b,3f;#00
$qRegisterInfo7#79
$name:rsp;alt-name:sp;bitsize:64;offset:56;encoding:uint;format:hex;set:General Purpose Registers;gcc:7;dwarf:7;generic:sp;invalidate-regs:7,1c,2c,40;#00
$qRegisterInfo8#7a
$name:r8;alt-name:arg5;bitsize:64;offset:64;encoding:uint;format:hex;set:General Purpose Registers;gcc:8;dwarf:8;generic:arg5;invalidate-regs:8,1d,2d,41;#00
$qRegisterInfo9#7b
$name:r9;alt-name:arg6;bitsize:64;offset:72;encoding:uint;format:hex;set:General Purpose Registers;gcc:9;dwarf:9;generic:arg6;invalidate-regs:9,1e,2e,42;#00
$qRegisterInfoa#a3
$name:r10;bitsize:64;offset:80;encoding:uint;format:hex;set:General Purpose Registers;gcc:10;dwarf:10;invalidate-regs:a,1f,2f,43;#00
$qRegisterInfob#a4
$name:r11;bitsize:64;offset:88;encoding:uint;format:hex;set:General Purpose Registers;gcc:11;dwarf:11;invalidate-regs:b,20,30,44;#00
$qRegisterInfoc#a5
$name:r12;bitsize:64;offset:96;encoding:uint;format:hex;set:General Purpose Registers;gcc:12;dwarf:12;invalidate-regs:c,21,31,45;#00
$qRegisterInfod#a6
$name:r13;bitsize:64;offset:104;encoding:uint;format:hex;set:General Purpose Registers;gcc:13;dwarf:13;invalidate-regs:d,22,32,46;#00
$qRegisterInfoe#a7
$name:r14;bitsize:64;offset:112;encoding:uint;format:hex;set:General Purpose Registers;gcc:14;dwarf:14;invalidate-regs:e,23,33,47;#00
$qRegisterInfof#a8
$name:r15;bitsize:64;offset:120;encoding:uint;format:hex;set:General Purpose Registers;gcc:15;dwarf:15;invalidate-regs:f,24,34,48;#00
$qRegisterInfo10#a3
$name:rip;alt-name:pc;bitsize:64;offset:128;encoding:uint;format:hex;set:General Purpose Registers;gcc:16;dwarf:16;generic:pc;#00
$qRegisterInfo11#a4
$name:rflags;alt-name:flags;bitsize:64;offset:136;encoding:uint;format:hex;set:General Purpose Registers;generic:flags;#00
$qRegisterInfo12#a5
$name:cs;bitsize:64;offset:144;encoding:uint;format:hex;set:General Purpose Registers;#00
$qRegisterInfo13#a6
$name:fs;bitsize:64;offset:152;encoding:uint;format:hex;set:General Purpose Registers;#00
$qRegisterInfo14#a7
$name:gs;bitsize:64;offset:160;encoding:uint;format:hex;set:General Purpose Registers;#00
$qRegisterInfo15#a8
$name:eax;bitsize:32;offset:0;encoding:uint;format:hex;set:General Purpose Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00
$qRegisterInfo16#a9
$name:ebx;bitsize:32;offset:8;encoding:uint;format:hex;set:General Purpose Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00
$qRegisterInfo17#aa
$name:ecx;bitsize:32;offset:16;encoding:uint;format:hex;set:General Purpose Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00
$qRegisterInfo18#ab
$name:edx;bitsize:32;offset:24;encoding:uint;format:hex;set:General Purpose Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00
$qRegisterInfo19#ac
$name:edi;bitsize:32;offset:32;encoding:uint;format:hex;set:General Purpose Registers;container-regs:4;invalidate-regs:4,19,29,3d;#00
$qRegisterInfo1a#d4
$name:esi;bitsize:32;offset:40;encoding:uint;format:hex;set:General Purpose Registers;container-regs:5;invalidate-regs:5,1a,2a,3e;#00
$qRegisterInfo1b#d5
$name:ebp;bitsize:32;offset:48;encoding:uint;format:hex;set:General Purpose Registers;container-regs:6;invalidate-regs:6,1b,2b,3f;#00
$qRegisterInfo1c#d6
$name:esp;bitsize:32;offset:56;encoding:uint;format:hex;set:General Purpose Registers;container-regs:7;invalidate-regs:7,1c,2c,40;#00
$qRegisterInfo1d#d7
$name:r8d;bitsize:32;offset:64;encoding:uint;format:hex;set:General Purpose Registers;container-regs:8;invalidate-regs:8,1d,2d,41;#00
$qRegisterInfo1e#d8
$name:r9d;bitsize:32;offset:72;encoding:uint;format:hex;set:General Purpose Registers;container-regs:9;invalidate-regs:9,1e,2e,42;#00
$qRegisterInfo1f#d9
$name:r10d;bitsize:32;offset:80;encoding:uint;format:hex;set:General Purpose Registers;container-regs:a;invalidate-regs:a,1f,2f,43;#00
$qRegisterInfo20#a4
$name:r11d;bitsize:32;offset:88;encoding:uint;format:hex;set:General Purpose Registers;container-regs:b;invalidate-regs:b,20,30,44;#00
$qRegisterInfo21#a5
$name:r12d;bitsize:32;offset:96;encoding:uint;format:hex;set:General Purpose Registers;container-regs:c;invalidate-regs:c,21,31,45;#00
$qRegisterInfo22#a6
$name:r13d;bitsize:32;offset:104;encoding:uint;format:hex;set:General Purpose Registers;container-regs:d;invalidate-regs:d,22,32,46;#00
$qRegisterInfo23#a7
$name:r14d;bitsize:32;offset:112;encoding:uint;format:hex;set:General Purpose Registers;container-regs:e;invalidate-regs:e,23,33,47;#00
$qRegisterInfo24#a8
$name:r15d;bitsize:32;offset:120;encoding:uint;format:hex;set:General Purpose Registers;container-regs:f;invalidate-regs:f,24,34,48;#00
$qRegisterInfo25#a9
$name:ax;bitsize:16;offset:0;encoding:uint;format:hex;set:General Purpose Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00
$qRegisterInfo26#aa
$name:bx;bitsize:16;offset:8;encoding:uint;format:hex;set:General Purpose Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00
$qRegisterInfo27#ab
$name:cx;bitsize:16;offset:16;encoding:uint;format:hex;set:General Purpose Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00
$qRegisterInfo28#ac
$name:dx;bitsize:16;offset:24;encoding:uint;format:hex;set:General Purpose Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00
$qRegisterInfo29#ad
$name:di;bitsize:16;offset:32;encoding:uint;format:hex;set:General Purpose Registers;container-regs:4;invalidate-regs:4,19,29,3d;#00
$qRegisterInfo2a#d5
$name:si;bitsize:16;offset:40;encoding:uint;format:hex;set:General Purpose Registers;container-regs:5;invalidate-regs:5,1a,2a,3e;#00
$qRegisterInfo2b#d6
$name:bp;bitsize:16;offset:48;encoding:uint;format:hex;set:General Purpose Registers;container-regs:6;invalidate-regs:6,1b,2b,3f;#00
$qRegisterInfo2c#d7
$name:sp;bitsize:16;offset:56;encoding:uint;format:hex;set:General Purpose Registers;container-regs:7;invalidate-regs:7,1c,2c,40;#00
$qRegisterInfo2d#d8
$name:r8w;bitsize:16;offset:64;encoding:uint;format:hex;set:General Purpose Registers;container-regs:8;invalidate-regs:8,1d,2d,41;#00
$qRegisterInfo2e#d9
$name:r9w;bitsize:16;offset:72;encoding:uint;format:hex;set:General Purpose Registers;container-regs:9;invalidate-regs:9,1e,2e,42;#00
$qRegisterInfo2f#da
$name:r10w;bitsize:16;offset:80;encoding:uint;format:hex;set:General Purpose Registers;container-regs:a;invalidate-regs:a,1f,2f,43;#00
$qRegisterInfo30#a5
$name:r11w;bitsize:16;offset:88;encoding:uint;format:hex;set:General Purpose Registers;container-regs:b;invalidate-regs:b,20,30,44;#00
$qRegisterInfo31#a6
$name:r12w;bitsize:16;offset:96;encoding:uint;format:hex;set:General Purpose Registers;container-regs:c;invalidate-regs:c,21,31,45;#00
$qRegisterInfo32#a7
$name:r13w;bitsize:16;offset:104;encoding:uint;format:hex;set:General Purpose Registers;container-regs:d;invalidate-regs:d,22,32,46;#00
$qRegisterInfo33#a8
$name:r14w;bitsize:16;offset:112;encoding:uint;format:hex;set:General Purpose Registers;container-regs:e;invalidate-regs:e,23,33,47;#00
$qRegisterInfo34#a9
$name:r15w;bitsize:16;offset:120;encoding:uint;format:hex;set:General Purpose Registers;container-regs:f;invalidate-regs:f,24,34,48;#00
$qRegisterInfo35#aa
$name:ah;bitsize:8;offset:1;encoding:uint;format:hex;set:General Purpose Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00
$qRegisterInfo36#ab
$name:bh;bitsize:8;offset:9;encoding:uint;format:hex;set:General Purpose Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00
$qRegisterInfo37#ac
$name:ch;bitsize:8;offset:17;encoding:uint;format:hex;set:General Purpose Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00
$qRegisterInfo38#ad
$name:dh;bitsize:8;offset:25;encoding:uint;format:hex;set:General Purpose Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00
$qRegisterInfo39#ae
$name:al;bitsize:8;offset:0;encoding:uint;format:hex;set:General Purpose Registers;container-regs:0;invalidate-regs:0,15,25,35,39;#00
$qRegisterInfo3a#d6
$name:bl;bitsize:8;offset:8;encoding:uint;format:hex;set:General Purpose Registers;container-regs:1;invalidate-regs:1,16,26,36,3a;#00
$qRegisterInfo3b#d7
$name:cl;bitsize:8;offset:16;encoding:uint;format:hex;set:General Purpose Registers;container-regs:2;invalidate-regs:2,17,27,37,3b;#00
$qRegisterInfo3c#d8
$name:dl;bitsize:8;offset:24;encoding:uint;format:hex;set:General Purpose Registers;container-regs:3;invalidate-regs:3,18,28,38,3c;#00
$qRegisterInfo3d#d9
$name:dil;bitsize:8;offset:32;encoding:uint;format:hex;set:General Purpose Registers;container-regs:4;invalidate-regs:4,19,29,3d;#00
$qRegisterInfo3e#da
$name:sil;bitsize:8;offset:40;encoding:uint;format:hex;set:General Purpose Registers;container-regs:5;invalidate-regs:5,1a,2a,3e;#00
$qRegisterInfo3f#db
$name:bpl;bitsize:8;offset:48;encoding:uint;format:hex;set:General Purpose Registers;container-regs:6;invalidate-regs:6,1b,2b,3f;#00
$qRegisterInfo40#a6
$name:spl;bitsize:8;offset:56;encoding:uint;format:hex;set:General Purpose Registers;container-regs:7;invalidate-regs:7,1c,2c,40;#00
$qRegisterInfo41#a7
$name:r8l;bitsize:8;offset:64;encoding:uint;format:hex;set:General Purpose Registers;container-regs:8;invalidate-regs:8,1d,2d,41;#00
$qRegisterInfo42#a8
$name:r9l;bitsize:8;offset:72;encoding:uint;format:hex;set:General Purpose Registers;container-regs:9;invalidate-regs:9,1e,2e,42;#00
$qRegisterInfo43#a9
$name:r10l;bitsize:8;offset:80;encoding:uint;format:hex;set:General Purpose Registers;container-regs:a;invalidate-regs:a,1f,2f,43;#00
$qRegisterInfo44#aa
$name:r11l;bitsize:8;offset:88;encoding:uint;format:hex;set:General Purpose Registers;container-regs:b;invalidate-regs:b,20,30,44;#00
$qRegisterInfo45#ab
$name:r12l;bitsize:8;offset:96;encoding:uint;format:hex;set:General Purpose Registers;container-regs:c;invalidate-regs:c,21,31,45;#00
$qRegisterInfo46#ac
$name:r13l;bitsize:8;offset:104;encoding:uint;format:hex;set:General Purpose Registers;container-regs:d;invalidate-regs:d,22,32,46;#00
$qRegisterInfo47#ad
$name:r14l;bitsize:8;offset:112;encoding:uint;format:hex;set:General Purpose Registers;container-regs:e;invalidate-regs:e,23,33,47;#00
$qRegisterInfo48#ae
$name:r15l;bitsize:8;offset:120;encoding:uint;format:hex;set:General Purpose Registers;container-regs:f;invalidate-regs:f,24,34,48;#00
$qRegisterInfo49#af
$name:fctrl;bitsize:16;offset:168;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo4a#d7
$name:fstat;bitsize:16;offset:170;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo4b#d8
$name:ftag;bitsize:8;offset:172;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo4c#d9
$name:fop;bitsize:16;offset:173;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo4d#da
$name:fioff;bitsize:32;offset:175;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo4e#db
$name:fiseg;bitsize:16;offset:179;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo4f#dc
$name:fooff;bitsize:32;offset:181;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo50#a7
$name:foseg;bitsize:16;offset:185;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo51#a8
$name:mxcsr;bitsize:32;offset:187;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo52#a9
$name:mxcsrmask;bitsize:32;offset:191;encoding:uint;format:hex;set:Floating Point Registers;#00
$qRegisterInfo53#aa
$name:stmm0;bitsize:80;offset:195;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:33;dwarf:33;#00
$qRegisterInfo54#ab
$name:stmm1;bitsize:80;offset:205;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:34;dwarf:34;#00
$qRegisterInfo55#ac
$name:stmm2;bitsize:80;offset:215;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:35;dwarf:35;#00
$qRegisterInfo56#ad
$name:stmm3;bitsize:80;offset:225;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:36;dwarf:36;#00
$qRegisterInfo57#ae
$name:stmm4;bitsize:80;offset:235;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:37;dwarf:37;#00
$qRegisterInfo58#af
$name:stmm5;bitsize:80;offset:245;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:38;dwarf:38;#00
$qRegisterInfo59#b0
$name:stmm6;bitsize:80;offset:255;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:39;dwarf:39;#00
$qRegisterInfo5a#d8
$name:stmm7;bitsize:80;offset:265;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:40;dwarf:40;#00
$qRegisterInfo5b#d9
$name:ymm0;bitsize:256;offset:275;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:17;dwarf:17;#00
$qRegisterInfo5c#da
$name:ymm1;bitsize:256;offset:307;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:18;dwarf:18;#00
$qRegisterInfo5d#db
$name:ymm2;bitsize:256;offset:339;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:19;dwarf:19;#00
$qRegisterInfo5e#dc
$name:ymm3;bitsize:256;offset:371;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:20;dwarf:20;#00
$qRegisterInfo5f#dd
$name:ymm4;bitsize:256;offset:403;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:21;dwarf:21;#00
$qRegisterInfo60#a8
$name:ymm5;bitsize:256;offset:435;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:22;dwarf:22;#00
$qRegisterInfo61#a9
$name:ymm6;bitsize:256;offset:467;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:23;dwarf:23;#00
$qRegisterInfo62#aa
$name:ymm7;bitsize:256;offset:499;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:24;dwarf:24;#00
$qRegisterInfo63#ab
$name:ymm8;bitsize:256;offset:531;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:25;dwarf:25;#00
$qRegisterInfo64#ac
$name:ymm9;bitsize:256;offset:563;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:26;dwarf:26;#00
$qRegisterInfo65#ad
$name:ymm10;bitsize:256;offset:595;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:27;dwarf:27;#00
$qRegisterInfo66#ae
$name:ymm11;bitsize:256;offset:627;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:28;dwarf:28;#00
$qRegisterInfo67#af
$name:ymm12;bitsize:256;offset:659;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:29;dwarf:29;#00
$qRegisterInfo68#b0
$name:ymm13;bitsize:256;offset:691;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:30;dwarf:30;#00
$qRegisterInfo69#b1
$name:ymm14;bitsize:256;offset:723;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:31;dwarf:31;#00
$qRegisterInfo6a#d9
$name:ymm15;bitsize:256;offset:755;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:32;dwarf:32;#00
$qRegisterInfo6b#da
$name:xmm0;bitsize:128;offset:275;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:17;dwarf:17;container-regs:5b;#00
$qRegisterInfo6c#db
$name:xmm1;bitsize:128;offset:307;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:18;dwarf:18;container-regs:5c;#00
$qRegisterInfo6d#dc
$name:xmm2;bitsize:128;offset:339;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:19;dwarf:19;container-regs:5d;#00
$qRegisterInfo6e#dd
$name:xmm3;bitsize:128;offset:371;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:20;dwarf:20;container-regs:5e;#00
$qRegisterInfo6f#de
$name:xmm4;bitsize:128;offset:403;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:21;dwarf:21;container-regs:5f;#00
$qRegisterInfo70#a9
$name:xmm5;bitsize:128;offset:435;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:22;dwarf:22;container-regs:60;#00
$qRegisterInfo71#aa
$name:xmm6;bitsize:128;offset:467;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:23;dwarf:23;container-regs:61;#00
$qRegisterInfo72#ab
$name:xmm7;bitsize:128;offset:499;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:24;dwarf:24;container-regs:62;#00
$qRegisterInfo73#ac
$name:xmm8;bitsize:128;offset:531;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:25;dwarf:25;container-regs:63;#00
$qRegisterInfo74#ad
$name:xmm9;bitsize:128;offset:563;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:26;dwarf:26;container-regs:64;#00
$qRegisterInfo75#ae
$name:xmm10;bitsize:128;offset:595;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:27;dwarf:27;container-regs:65;#00
$qRegisterInfo76#af
$name:xmm11;bitsize:128;offset:627;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:28;dwarf:28;container-regs:66;#00
$qRegisterInfo77#b0
$name:xmm12;bitsize:128;offset:659;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:29;dwarf:29;container-regs:67;#00
$qRegisterInfo78#b1
$name:xmm13;bitsize:128;offset:691;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:30;dwarf:30;container-regs:68;#00
$qRegisterInfo79#b2
$name:xmm14;bitsize:128;offset:723;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:31;dwarf:31;container-regs:69;#00
$qRegisterInfo7a#da
$name:xmm15;bitsize:128;offset:755;encoding:vector;format:vector-uint8;set:Floating Point Registers;gcc:32;dwarf:32;container-regs:6a;#00
$qRegisterInfo7b#db
$name:trapno;bitsize:32;offset:787;encoding:uint;format:hex;set:Exception State Registers;#00
$qRegisterInfo7c#dc
$name:err;bitsize:32;offset:791;encoding:uint;format:hex;set:Exception State Registers;#00
$qRegisterInfo7d#dd
$name:faultvaddr;bitsize:64;offset:795;encoding:uint;format:hex;set:Exception State Registers;#00
$qRegisterInfo7e#de
$E45#00





More information about the llvm-dev mailing list