1# MIPS/IRIX ISA/ABI 2# Used to configure dwarfdump printing of .debug_frame and 3# .eh_frame. 4 5# Any number of abi's can be described. Only one can be selected 6# in a given dwarfdump run (see dwarfdump options) 7# Available commands are 8# beginabi: <abiname> 9# reg: <regname> <dwarf regnumber> 10# frame_interface: <integer value 2 or 3> 11# cfa_reg: <number> 12# initial_reg_value: <number: often 1034 or 1035 > 13# same_val_reg: 1035 14# undefined_val_reg: 1034 15# reg_table_size: <size of table> 16# address_size: <4 or 8, Rarely needed, see example below. > 17# includeabi: <abiname Inserts the referenced abi as if its text was 18# directly inserted at this point.> 19# endabi: <abiname> 20# 21# Symbolic names do not work here, use literal numbers 22# where applicable (in C standard decimal, octal (leading 0) or 23# hexadecimal <leading 0x>). 24# 25# Whitespace is required to separate command: from operands and 26# operands from each other on a line. 27# 28# There is no ordering required within a beginabi/endabi pair. 29# As many ABIs as required may be listed. 30# dwarfdump will choose exactly one abi to dump frame information. 31# 32 33 34# MIPS abi,the old IRIX form, not to be used on modern objects. 35# Begin with abi name (use here and on dwarfdump command line). 36beginabi: mips-irix 37 38# Instructs dwarfdump to default to the older frame interface. 39# Use value 3 to use the newer interface. 40# The '2' interface is supported but deprecated (deprecated 41# because it cannot work with all popular ABIs: mixing 42# the cfa-rule into the table column set was not a good idea 43# but it is part of the MIPS/IRIX standard usage). 44frame_interface: 2 45 46# If (and only if) using frame_interface: 2 tell dwarfdump 47# what table colum that DW_FRAME_CFA_COL is. 48# If using frame_interface: 3 cfa_reg: should be 49# DW_FRAME_CFA_COL3 (1436) 50cfa_reg: 0 51 52# For MIPS, the same as DW_FRAME_SAME_VAL (1035). 53# For other ISA/ABIs 1034 (DW_FRAME_UNDEFINED_VAL) might be better. 54# Depends on the ABI convention, if set wrong way too many 55# regs will be listed in the frame output. 56# This instructs dwarfdump to set libdwarf to this value, 57# overriding the libdwarf default. 58# If initial_reg_value not set the libdwarf default is used 59# (see libdwarf.h DW_FRAME_REG_INITIAL_VALUE). 60initial_reg_value: 1035 # DW_FRAME_SAME_VAL 61same_val_reg: 1035 62undefined_val_reg: 1034 63 64# Built in to frame_interface: 2 as 66. 65reg_table_size: 66 66 67 68# Only name registers for wich a r4 (for example) is not what you 69# want to see 70# No particular order of the reg: lines required. 71reg: cfa 0 # Used with MIPS/IRIX original DWARF2 interface 72reg: r1/at 1 73reg: r2/v0 2 74reg: r3/v1 3 75reg: r4/a0 4 76reg: r5/a1 5 77reg: r6/a2 6 78reg: r7/a3 7 79reg: r8/t0 8 80reg: r9/t1 9 81reg: r10/t2 10 82reg: r11/t3 11 83reg: r12/t4 12 84reg: r13/t5 13 85reg: r14/t6 14 86reg: r15/t7 15 87reg: r16/s0 16 88reg: r17/s1 17 89reg: r18/s2 18 90reg: r19/s3 19 91reg: r20/s4 20 92reg: r21/s5 21 93reg: r22/s6 22 94reg: r23/s7 23 95reg: r24/t8 24 96reg: r25/t9 25 97reg: r26/k0 26 98reg: r27/k1 27 99reg: r28/gp 28 100reg: r29/sp 29 101reg: r30/s8 30 102reg: r31 31 103 104reg: $f0 32 105reg: $f1 33 106reg: $f2 34 107reg: $f3 35 108reg: $f4 36 109reg: $f5 37 110reg: $f6 38 111reg: $f7 39 112reg: $f8 40 113reg: $f9 41 114reg: $f10 42 115reg: $f11 43 116reg: $f12 44 117reg: $f13 45 118reg: $f14 46 119reg: $f15 47 120reg: $f16 48 121reg: $f17 49 122reg: $f18 50 123reg: $f19 51 124reg: $f20 52 125reg: $f21 53 126reg: $f22 54 127reg: $f23 55 128reg: $f24 56 129reg: $f25 57 130reg: $f26 58 131reg: $f27 59 132reg: $f28 60 133reg: $f29 61 134reg: $f30 62 135reg: $f31 63 136reg: ra 64 137reg: slk 65 138 139 140# End of abi definition. 141endabi: mips-irix 142 143 144# Make 'mips' abi be a modern MIPS, not an old IRIX version. 145beginabi: mips 146includeabi: mips-simple3 147endabi: mips 148 149 150# MIPS/IRIX ISA/ABI for testing libdwarf. 151beginabi: mips-irix2 152frame_interface: 2 153reg_table_size: 66 154cfa_reg: 0 155same_val_reg: 1035 156undefined_val_reg: 1034 157initial_reg_value: 1035 158 159reg: cfa 0 # Used with MIPS/IRIX original DWARF2 interface 160reg: ra 64 161reg: slk 65 162 163# End of abi definition. 164endabi: mips-irix2 165 166# MIPS/IRIX ISA/ABI for testing the new frame interface 167# with libdwarf. 168beginabi: mips-simple3 169frame_interface: 3 170 171# When using frame_interface: 3 the size of the register table 172# is not fixed. It can be as large as needed. 173reg_table_size: 66 174cfa_reg: 1436 # DW_FRAME_CFA_COL3 175initial_reg_value: 1035 176same_val_reg: 1035 177undefined_val_reg: 1034 178 179# No cfa as a 'normal' register. 180# Rule 0 is just register 0, which is not used 181# in frame descriptions. 182# (so cfa does not have a number here, and dwarfdump gives 183# it the name 'cfa' automatically). 184reg: ra 64 185reg: slk 65 186# End of abi definition. 187endabi: mips-simple3 188 189 190beginabi: ia64 191frame_interface: 3 192initial_reg_value: 1034 # DW_FRAME_UNDEFINED_VAL 193cfa_reg: 1436 # DW_FRAME_CFA_COL3 194reg_table_size: 695 195same_val_reg: 1035 196undefined_val_reg: 1034 197 198# The following register names are not necessarily correct... 199# Register indexes r32-r127 not used. 200reg: f0 128 201# ... 202reg: f127 255 203reg: b0 321 204reg: b1 322 205reg: b2 323 206reg: b3 324 207reg: b4 325 208reg: b5 326 209reg: b6 327 210reg: b7 328 211reg: vfp 329 212reg: vrap 330 213reg: pr 331 214reg: ip 332 215reg: psr 333 216reg: cfm 334 217reg: k0 335 218reg: k1 336 219reg: k2 337 220reg: k3 338 221reg: k4 339 222reg: k5 340 223reg: k6 341 224reg: k7 342 225reg: rsc 350 226reg: bsp 351 227reg: bspstore 352 228reg: rnat 353 229reg: fcr 355 230reg: eflag 358 231reg: csd 359 232reg: ssd 360 233reg: cflg 361 234reg: fsr 362 235reg: fir 363 236reg: fdr 364 237reg: pfs 398 238reg: lc 399 239reg: ec 400 240 241endabi: ia64 242 243 244beginabi: x86 245frame_interface: 3 246initial_reg_value: 1035 # DW_FRAME_SAME_VAL 247reg_table_size: 66 # more than large enough, hopefully. 248cfa_reg: 1436 # DW_FRAME_CFA_COL3 249same_val_reg: 1035 250undefined_val_reg: 1034 251 252# The following register names are not necessarily correct... 253reg: eax 0 254reg: ecx 1 255reg: edx 2 256reg: ebx 3 257reg: esp 4 258reg: ebp 5 259reg: esi 6 260reg: edi 7 261reg: eip 8 262reg: eflags 9 263 264reg: trapno 10 265reg: st0 11 266reg: st1 12 267reg: st2 13 268reg: st3 14 269reg: st4 15 270reg: st5 16 271reg: st6 17 272reg: st7 18 273# 19 is ? 20 is ? 274reg: xmm0 21 275reg: xmm1 22 276reg: xmm2 23 277reg: xmm3 24 278reg: xmm4 25 279reg: xmm5 26 280reg: xmm6 27 281reg: xmm7 28 282 283reg: mm0 29 284reg: mm1 30 285reg: mm2 31 286reg: mm3 32 287reg: mm4 33 288reg: mm5 34 289reg: mm6 35 290reg: mm7 36 291 292reg: fcw 37 293reg: fsw 38 294reg: mxcsr 39 295 296reg: es 40 297reg: cs 41 298reg: ss 42 299reg: ds 43 300reg: fs 44 301reg: gs 45 302# 46 47 are ? 303reg: tr 48 304reg: ldtr 49 305 306 307endabi: x86 308 309 310beginabi: x86_64 311frame_interface: 3 312initial_reg_value: 1035 # DW_FRAME_SAME_VAL 313reg_table_size: 66 # more than large enough, hopefully. 314cfa_reg: 1436 # DW_FRAME_CFA_COL3 315same_val_reg: 1035 316undefined_val_reg: 1034 317 318# The following register names are not necessarily correct... 319reg: rax 0 320reg: rdx 1 321reg: rcx 2 322reg: rbx 3 323reg: rsi 4 324reg: rdi 5 325reg: rbp 6 326reg: rsp 7 327reg: r8 8 328reg: r9 9 329reg: r10 10 330reg: r11 11 331reg: r12 12 332reg: r13 13 333reg: r14 14 334reg: r15 15 335reg: rip 16 336reg: xmm0 17 337reg: xmm1 18 338reg: xmm2 19 339reg: xmm3 20 340reg: xmm4 21 341reg: xmm5 22 342reg: xmm6 23 343reg: xmm7 24 344reg: xmm8 25 345reg: xmm9 26 346reg: xmm10 27 347reg: xmm11 28 348reg: xmm12 29 349reg: xmm13 30 350reg: xmm14 31 351reg: xmm15 32 352 353reg: st0 33 354reg: st1 34 355reg: st2 35 356reg: st3 36 357reg: st4 37 358reg: st5 38 359reg: st6 39 360reg: st7 40 361 362reg: mm0 41 363reg: mm1 42 364reg: mm2 43 365reg: mm3 44 366reg: mm4 45 367reg: mm5 46 368reg: mm6 47 369reg: mm7 48 370 371reg: rflags 49 372reg: es 50 373reg: cs 51 374reg: ss 52 375reg: ds 53 376reg: fs 54 377reg: gs 55 378# 56, 57 are ? 379reg: fs.base 58 380reg: gs.base 59 381# 60 61 are ? 382reg: tr 62 383reg: ldtr 63 384 385endabi: x86_64 386 387beginabi: m68k 388frame_interface: 3 389initial_reg_value: 1035 # DW_FRAME_SAME_VAL 390reg_table_size: 66 # more than large enough, hopefully. 391cfa_reg: 1436 # DW_FRAME_CFA_COL3 392same_val_reg: 1035 393undefined_val_reg: 1034 394 395reg: d0 0 396reg: d1 1 397reg: d2 2 398reg: d3 3 399reg: d4 4 400reg: d5 5 401reg: d6 6 402reg: d7 7 403 404reg: a0 8 405reg: a1 9 406reg: a2 10 407reg: a3 11 408reg: a4 12 409reg: a5 13 410reg: a6 14 411reg: sp 15 412 413reg: fp0 16 414reg: fp1 17 415reg: fp2 18 416reg: fp3 19 417reg: fp4 20 418reg: fp5 21 419reg: fp6 22 420reg: pc 23 421 422endabi: m68k 423 424# Demonstrates use of address_size and includeabi keywords. 425# address_size is useful when an Elf64 object has DWARF2 426# 32bit (4 byte) address-size frame data (which has no address_size field) 427# and no .debug_info section to provide the 32bit address size. 428beginabi: ppc32bitaddress 429address_size: 4 430includeabi: ppc 431endabi: ppc32bitaddress 432 433beginabi: ppc 434# This abi defined Oct 2008 based on: 435# http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html 436frame_interface: 3 437# abi dwarf table uses up thru 1155. 438# As of Oct 2008, the only ABI requiring a higher 439# DW_FRAME_SAME_VAL and DW_FRAME_CFA_COL3. 440initial_reg_value: 1235 # DW_FRAME_SAME_VAL 441cfa_reg: 1436 # DW_FRAME_CFA_COL3 442same_val_reg: 1235 443undefined_val_reg: 1234 444reg_table_size: 1200 445 446reg: r0 0 447reg: f0 32 448reg: f1 33 449reg: f2 34 450reg: f3 35 451reg: f4 36 452reg: f5 37 453reg: f6 38 454reg: f7 39 455reg: f8 40 456reg: f9 41 457reg: f10 42 458reg: f11 43 459reg: f12 44 460reg: f13 45 461reg: f14 46 462reg: f16 47 463reg: f17 48 464reg: f18 49 465reg: f19 50 466reg: f20 51 467reg: f21 52 468reg: f22 53 469reg: f23 54 470reg: f24 55 471reg: f25 56 472reg: f26 57 473reg: f27 58 474reg: f28 59 475reg: f29 60 476reg: f30 62 477reg: f31 63 478reg: cr 64 479reg: fpcsr 65 480# spr0 is also called MQ 481reg: spr0 100 482# spr1 is also called XER 483reg: spr1 101 484# spr4 also called rtcu 485reg: spr4 104 486# spr5 also called rtcl 487reg: spr5 105 488#spr8 also called LR 489reg: spr8 108 490# spr9 also called ctr 491reg: spr9 109 492reg: msr 66 493reg: sr0 70 494reg: sr1 71 495reg: sr2 72 496reg: sr3 73 497reg: sr4 74 498reg: sr5 75 499reg: sr6 76 500reg: sr7 77 501reg: sr8 78 502reg: sr9 79 503 504#dsisr also called spr18 505reg: spr18 118 506# dar also called spr19 507reg: spr19 119 508#dec also called spr22 509reg: spr22 122 510#sdr1 also called spr25 511reg: spr25 125 512#srr0 also called spr26 513reg: spr26 126 514#srr1 also called spr27 515reg: spr27 127 516 517#vrsave also called spr256 518reg: spr256 356 519#sprg0 also called spr272 520reg: spr272 372 521#sprg1 also called spr273 522reg: spr273 373 523#sprg2 also called spr274 524reg: spr274 374 525#sprg3 also called spr275 526reg: spr275 375 527#asr also called spr280 528reg: spr280 380 529#ear also called spr282 530reg: spr282 382 531#tb also called spr284 532reg: spr284 384 533#tbu also called spr285 534reg: spr285 385 535#pvr also called spr287 536reg: spr287 387 537#ibat0u also called spr528 538reg: spr528 628 539#ibat0l also called spr529 540reg: spr529 629 541#ibat1u also called spr530 542reg: spr530 630 543#ibat1l also called spr531 544reg: spr531 631 545#ibat2u also called spr532 546reg: spr532 632 547#ibat2l also called spr533 548reg: spr533 633 549#ibat3u also called spr534 550reg: spr534 634 551#ibat3l also called spr535 552reg: spr535 635 553#dbat0u also called spr536 554reg: spr536 636 555#dbat0l also called spr537 556reg: spr537 637 557#dbat1u also called spr538 558reg: spr538 638 559#dbat1l also called spr539 560reg: spr539 639 561#dbat2u also called spr540 562reg: spr540 640 563#dbat2l also called spr541 564reg: spr541 641 565#dbat3u also called spr542 566reg: spr542 642 567#dbat3l also called spr543 568reg: spr543 643 569 570#hid0 also called spr1008 571reg: spr1008 1108 572#hid1 also called spr1009 573reg: spr1009 1109 574#hid2 also called iabr or spr1010 575reg: spr1010 1110 576#hid5 also called dabr or spr1013 577reg: spr1013 1113 578#hid15 also called pir or spr1023 579reg: spr1023 1123 580 581# vector registers 0-31 582reg: vr0 1124 583reg: vr1 1125 584reg: vr2 1126 585reg: vr3 1127 586reg: vr4 1128 587reg: vr5 1129 588reg: vr6 1130 589reg: vr7 1131 590reg: vr8 1132 591reg: vr9 1133 592reg: vr10 1134 593reg: vr11 1135 594reg: vr12 1136 595reg: vr13 1137 596reg: vr14 1138 597reg: vr15 1130 598reg: vr16 1140 599reg: vr17 1141 600reg: vr18 1142 601reg: vr19 1143 602reg: vr20 1144 603reg: vr21 1145 604reg: vr22 1146 605reg: vr23 1147 606reg: vr24 1148 607reg: vr25 1149 608reg: vr26 1150 609reg: vr27 1151 610reg: vr28 1152 611reg: vr29 1153 612reg: vr30 1154 613reg: vr31 1155 614endabi: ppc 615 616# 'Generic 1000 register abi'. 617# This is useful as a 'general' ABI settings for 618# cpus using up to 1000 registers. The register names 619# show as a number, like 'r991'. 620beginabi: generic 621frame_interface: 3 622initial_reg_value: 1035 # DW_FRAME_SAME_VAL 623cfa_reg: 1436 # DW_FRAME_CFA_COL3 624reg_table_size: 1000 625same_val_reg: 1035 626undefined_val_reg: 1034 627reg: r0 0 628endabi: generic 629 630# 'Generic 500 register abi'. 631# This is useful as a 'general' ABI settings for 632# cpus using up to 500 registers. The register names 633# show as a number, like 'r91'. 634beginabi: generic500 635frame_interface: 3 636initial_reg_value: 1035 # DW_FRAME_SAME_VAL 637cfa_reg: 1436 # DW_FRAME_CFA_COL3 638reg_table_size: 500 639same_val_reg: 1035 640undefined_val_reg: 1034 641reg: r0 0 642endabi: generic500 643 644# 'Generic 100 register abi'. 645# This is useful as a 'general' ABI settings for 646# cpus using up to 100 registers. The register names 647# show as a number, like 'r91'. 648beginabi: generic100 649frame_interface: 3 650initial_reg_value: 1035 # DW_FRAME_SAME_VAL 651cfa_reg: 1436 # DW_FRAME_CFA_COL3 652reg_table_size: 100 653same_val_reg: 1035 654undefined_val_reg: 1034 655reg: r0 0 656endabi: generic100 657 658 659beginabi: arm 660frame_interface: 3 661# When using frame_interface: 3 the size of the register 662# table is not fixed. It can be as large as needed. 663reg_table_size: 288 664cfa_reg: 1436 # DW_FRAME_CFA_COL3 665initial_reg_value: 1034 666same_val_reg: 1035 667undefined_val_reg: 1034 668# If the vendor co-processor registers are allowed 669# or other numbers above 287 used then 670# the reg_table_size must be increased and (possibly) 671# the cfa, same_value, undefined_value reg values changed 672# here. 673# r0-r15 are 0 through 15. 674# Numbers 16 through 63 had meaning 675# in some ARM DWARF register mappings. 676reg: s0 64 677reg: s1 65 678reg: s2 66 679reg: s3 67 680reg: s4 68 681reg: s5 69 682reg: s6 70 683reg: s7 71 684reg: s8 72 685reg: s9 73 686reg: s10 74 687reg: s11 75 688reg: s12 76 689reg: s13 77 690reg: s14 78 691reg: s15 79 692reg: s16 80 693reg: s17 81 694reg: s18 82 695reg: s19 83 696reg: s20 84 697reg: s21 85 698reg: s22 86 699reg: s23 87 700reg: s24 88 701reg: s25 89 702reg: s26 90 703reg: s27 91 704reg: s28 92 705reg: s29 93 706reg: s30 94 707reg: s31 95 708reg: f0 96 709reg: f1 97 710reg: f2 98 711reg: f3 99 712reg: f4 100 713reg: f5 101 714reg: f6 102 715reg: f7 103 716reg: wcgr0 104 717reg: wcgr0 105 718reg: wcgr0 106 719reg: wcgr0 107 720reg: wcgr0 108 721reg: wcgr0 109 722reg: wcgr0 110 723reg: wcgr0 111 724reg: wr0 112 725reg: wr1 113 726reg: wr2 114 727reg: wr3 115 728reg: wr4 116 729reg: wr5 117 730reg: wr6 118 731reg: wr7 119 732reg: wr8 120 733reg: wr9 121 734reg: wr10 122 735reg: wr11 123 736reg: wr12 124 737reg: wr13 125 738reg: wr14 126 739reg: wr15 127 740reg: spsr 128 741reg: spsr_fiq 129 742reg: spsr_irq 130 743reg: spsr_abt 131 744reg: spsr_und 132 745reg: spsr_svc 133 746reg: r8_usr 144 747reg: r9_usr 145 748reg: r10_usr 146 749reg: r11_usr 147 750reg: r12_usr 148 751reg: r13_usr 149 752reg: r14_usr 150 753reg: r8_fiq 151 754reg: r9_fiq 152 755reg: r10_fiq 153 756reg: r11_fiq 154 757reg: r12_fiq 155 758reg: r13_fiq 156 759reg: r14_fiq 157 760reg: r13_riq 158 761reg: r14_riq 159 762reg: r14_abt 160 763reg: r13_abt 161 764reg: r14_und 162 765reg: r13_und 163 766reg: r14_svc 164 767reg: r13_svc 165 768reg: wc0 192 769reg: wc1 193 770reg: wc2 192 771reg: wc3 192 772reg: wc4 192 773reg: wc5 197 774reg: wc6 198 775reg: wc7 199 776reg: d0 256 777reg: d1 257 778reg: d2 258 779reg: d3 259 780reg: d4 260 781reg: d5 261 782reg: d6 262 783reg: d7 263 784reg: d8 264 785reg: d9 265 786reg: d10 266 787reg: d11 267 788reg: d12 268 789reg: d13 269 790reg: d14 270 791reg: d15 271 792reg: d16 272 793reg: d17 273 794reg: d18 274 795reg: d19 275 796reg: d20 266 797reg: d21 277 798reg: d22 278 799reg: d23 279 800reg: d24 280 801reg: d25 281 802reg: d26 282 803reg: d27 283 804reg: d28 284 805reg: d29 285 806reg: d30 286 807reg: d31 287 808# End of abi definition. 809endabi: arm 810 811