unwind-ia64.c (78844) | unwind-ia64.c (89857) |
---|---|
1/* unwind-ia64.c -- utility routines to dump IA-64 unwind info for readelf. 2 Copyright 2000, 2001 Free Software Foundation, Inc. 3 Contributed by David Mosberger-Tang <davidm@hpl.hp.com> 4 5This file is part of GNU Binutils. 6 7This program is free software; you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by --- 19 unchanged lines hidden (view full) --- 28 Only do this if we belive that the compiler can support a 64 bit 29 data type. For now we only rely on GCC being able to do this. */ 30#define BFD64 31#endif 32#include "bfd.h" 33 34static bfd_vma unw_rlen = 0; 35 | 1/* unwind-ia64.c -- utility routines to dump IA-64 unwind info for readelf. 2 Copyright 2000, 2001 Free Software Foundation, Inc. 3 Contributed by David Mosberger-Tang <davidm@hpl.hp.com> 4 5This file is part of GNU Binutils. 6 7This program is free software; you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by --- 19 unchanged lines hidden (view full) --- 28 Only do this if we belive that the compiler can support a 64 bit 29 data type. For now we only rely on GCC being able to do this. */ 30#define BFD64 31#endif 32#include "bfd.h" 33 34static bfd_vma unw_rlen = 0; 35 |
36static void unw_print_brmask PARAMS ((char *, unsigned int)); 37static void unw_print_grmask PARAMS ((char *, unsigned int)); 38static void unw_print_frmask PARAMS ((char *, unsigned int)); 39static void unw_print_abreg PARAMS ((char *, unsigned int)); 40static void unw_print_xyreg PARAMS ((char *, unsigned int, unsigned int)); 41 |
|
36static void 37unw_print_brmask (cp, mask) 38 char * cp; | 42static void 43unw_print_brmask (cp, mask) 44 char * cp; |
39 unsigned char mask; | 45 unsigned int mask; |
40{ 41 char *sep = ""; 42 int i; 43 44 for (i = 0; mask && (i < 5); ++i) 45 { 46 if (mask & 1) 47 { 48 cp += sprintf (cp, "%sb%u", sep, i + 1); 49 sep = ","; 50 } 51 mask >>= 1; 52 } 53 *cp = '\0'; 54} 55 56static void 57unw_print_grmask (cp, mask) 58 char * cp; | 46{ 47 char *sep = ""; 48 int i; 49 50 for (i = 0; mask && (i < 5); ++i) 51 { 52 if (mask & 1) 53 { 54 cp += sprintf (cp, "%sb%u", sep, i + 1); 55 sep = ","; 56 } 57 mask >>= 1; 58 } 59 *cp = '\0'; 60} 61 62static void 63unw_print_grmask (cp, mask) 64 char * cp; |
59 unsigned char mask; | 65 unsigned int mask; |
60{ 61 char *sep = ""; 62 int i; 63 64 *cp = '\0'; 65 for (i = 0; i < 4; ++i) 66 { 67 if (mask & 1) 68 { 69 cp += sprintf (cp, "%sr%u", sep, i + 4); 70 sep = ","; 71 } 72 mask >>= 1; 73 } 74} 75 76static void 77unw_print_frmask (cp, mask) 78 char * cp; | 66{ 67 char *sep = ""; 68 int i; 69 70 *cp = '\0'; 71 for (i = 0; i < 4; ++i) 72 { 73 if (mask & 1) 74 { 75 cp += sprintf (cp, "%sr%u", sep, i + 4); 76 sep = ","; 77 } 78 mask >>= 1; 79 } 80} 81 82static void 83unw_print_frmask (cp, mask) 84 char * cp; |
79 unsigned long mask; | 85 unsigned int mask; |
80{ 81 char *sep = ""; 82 int i; 83 84 *cp = '\0'; 85 for (i = 0; i < 20; ++i) 86 { 87 if (mask & 1) 88 { 89 cp += sprintf (cp, "%sf%u", sep, (i < 4) ? (i + 2) : (i + 12)); 90 sep = ","; 91 } 92 mask >>= 1; 93 } 94} 95 96static void 97unw_print_abreg (cp, abreg) 98 char * cp; | 86{ 87 char *sep = ""; 88 int i; 89 90 *cp = '\0'; 91 for (i = 0; i < 20; ++i) 92 { 93 if (mask & 1) 94 { 95 cp += sprintf (cp, "%sf%u", sep, (i < 4) ? (i + 2) : (i + 12)); 96 sep = ","; 97 } 98 mask >>= 1; 99 } 100} 101 102static void 103unw_print_abreg (cp, abreg) 104 char * cp; |
99 unsigned char abreg; | 105 unsigned int abreg; |
100{ 101 static const char *special_reg[16] = 102 { 103 "pr", "psp", "@priunat", "rp", "ar.bsp", "ar.bspstore", "ar.rnat", 104 "ar.unat", "ar.fpsr", "ar.pfs", "ar.lc", 105 "Unknown11", "Unknown12", "Unknown13", "Unknown14", "Unknown15" 106 }; 107 --- 15 unchanged lines hidden (view full) --- 123 strcpy (cp, special_reg[abreg & 0xf]); 124 break; 125 } 126} 127 128static void 129unw_print_xyreg (cp, x, ytreg) 130 char * cp; | 106{ 107 static const char *special_reg[16] = 108 { 109 "pr", "psp", "@priunat", "rp", "ar.bsp", "ar.bspstore", "ar.rnat", 110 "ar.unat", "ar.fpsr", "ar.pfs", "ar.lc", 111 "Unknown11", "Unknown12", "Unknown13", "Unknown14", "Unknown15" 112 }; 113 --- 15 unchanged lines hidden (view full) --- 129 strcpy (cp, special_reg[abreg & 0xf]); 130 break; 131 } 132} 133 134static void 135unw_print_xyreg (cp, x, ytreg) 136 char * cp; |
131 unsigned char x; 132 unsigned char ytreg; | 137 unsigned int x; 138 unsigned int ytreg; |
133{ 134 switch ((x << 1) | ((ytreg >> 7) & 1)) 135 { 136 case 0: /* gr */ 137 sprintf (cp, "r%u", (ytreg & 0x1f)); 138 break; 139 140 case 1: /* fr */ --- 376 unchanged lines hidden (view full) --- 517 * UNW_DEC_SPILL_REG(fmt,t,abreg,x,ytreg,arg) 518 * UNW_DEC_SPILL_REG_P(fmt,qp,t,abreg,x,ytreg,arg) 519 * UNW_DEC_SPILL_SPREL(fmt,t,abreg,spoff,arg) 520 * UNW_DEC_SPILL_SPREL_P(fmt,qp,t,abreg,pspoff,arg) 521 */ 522 523static unw_word unw_decode_uleb128 PARAMS ((const unsigned char **)); 524static const unsigned char *unw_decode_x1 PARAMS ((const unsigned char *, | 139{ 140 switch ((x << 1) | ((ytreg >> 7) & 1)) 141 { 142 case 0: /* gr */ 143 sprintf (cp, "r%u", (ytreg & 0x1f)); 144 break; 145 146 case 1: /* fr */ --- 376 unchanged lines hidden (view full) --- 523 * UNW_DEC_SPILL_REG(fmt,t,abreg,x,ytreg,arg) 524 * UNW_DEC_SPILL_REG_P(fmt,qp,t,abreg,x,ytreg,arg) 525 * UNW_DEC_SPILL_SPREL(fmt,t,abreg,spoff,arg) 526 * UNW_DEC_SPILL_SPREL_P(fmt,qp,t,abreg,pspoff,arg) 527 */ 528 529static unw_word unw_decode_uleb128 PARAMS ((const unsigned char **)); 530static const unsigned char *unw_decode_x1 PARAMS ((const unsigned char *, |
525 unsigned char, void *)); | 531 unsigned int, void *)); |
526static const unsigned char *unw_decode_x2 PARAMS ((const unsigned char *, | 532static const unsigned char *unw_decode_x2 PARAMS ((const unsigned char *, |
527 unsigned char, void *)); | 533 unsigned int, void *)); |
528static const unsigned char *unw_decode_x3 PARAMS ((const unsigned char *, | 534static const unsigned char *unw_decode_x3 PARAMS ((const unsigned char *, |
529 unsigned char, void *)); | 535 unsigned int, void *)); |
530static const unsigned char *unw_decode_x4 PARAMS ((const unsigned char *, | 536static const unsigned char *unw_decode_x4 PARAMS ((const unsigned char *, |
531 unsigned char, void *)); | 537 unsigned int, void *)); |
532static const unsigned char *unw_decode_r1 PARAMS ((const unsigned char *, | 538static const unsigned char *unw_decode_r1 PARAMS ((const unsigned char *, |
533 unsigned char, void *)); | 539 unsigned int, void *)); |
534static const unsigned char *unw_decode_r2 PARAMS ((const unsigned char *, | 540static const unsigned char *unw_decode_r2 PARAMS ((const unsigned char *, |
535 unsigned char, void *)); | 541 unsigned int, void *)); |
536static const unsigned char *unw_decode_r3 PARAMS ((const unsigned char *, | 542static const unsigned char *unw_decode_r3 PARAMS ((const unsigned char *, |
537 unsigned char, void *)); | 543 unsigned int, void *)); |
538static const unsigned char *unw_decode_p1 PARAMS ((const unsigned char *, | 544static const unsigned char *unw_decode_p1 PARAMS ((const unsigned char *, |
539 unsigned char, void *)); | 545 unsigned int, void *)); |
540static const unsigned char *unw_decode_p2_p5 PARAMS ((const unsigned char *, | 546static const unsigned char *unw_decode_p2_p5 PARAMS ((const unsigned char *, |
541 unsigned char, void *)); | 547 unsigned int, void *)); |
542static const unsigned char *unw_decode_p6 PARAMS ((const unsigned char *, | 548static const unsigned char *unw_decode_p6 PARAMS ((const unsigned char *, |
543 unsigned char, void *)); | 549 unsigned int, void *)); |
544static const unsigned char *unw_decode_p7_p10 PARAMS ((const unsigned char *, | 550static const unsigned char *unw_decode_p7_p10 PARAMS ((const unsigned char *, |
545 unsigned char, void *)); | 551 unsigned int, void *)); |
546static const unsigned char *unw_decode_b1 PARAMS ((const unsigned char *, | 552static const unsigned char *unw_decode_b1 PARAMS ((const unsigned char *, |
547 unsigned char, void *)); | 553 unsigned int, void *)); |
548static const unsigned char *unw_decode_b2 PARAMS ((const unsigned char *, | 554static const unsigned char *unw_decode_b2 PARAMS ((const unsigned char *, |
549 unsigned char, void *)); | 555 unsigned int, void *)); |
550static const unsigned char *unw_decode_b3_x4 PARAMS ((const unsigned char *, | 556static const unsigned char *unw_decode_b3_x4 PARAMS ((const unsigned char *, |
551 unsigned char, void *)); | 557 unsigned int, void *)); |
552 553static unw_word 554unw_decode_uleb128 (dpp) 555 const unsigned char **dpp; 556{ 557 unsigned shift = 0; 558 unw_word byte, result = 0; 559 const unsigned char *bp = *dpp; --- 12 unchanged lines hidden (view full) --- 572 *dpp = bp; 573 574 return result; 575} 576 577static const unsigned char * 578unw_decode_x1 (dp, code, arg) 579 const unsigned char * dp; | 558 559static unw_word 560unw_decode_uleb128 (dpp) 561 const unsigned char **dpp; 562{ 563 unsigned shift = 0; 564 unw_word byte, result = 0; 565 const unsigned char *bp = *dpp; --- 12 unchanged lines hidden (view full) --- 578 *dpp = bp; 579 580 return result; 581} 582 583static const unsigned char * 584unw_decode_x1 (dp, code, arg) 585 const unsigned char * dp; |
580 unsigned char code; | 586 unsigned int code ATTRIBUTE_UNUSED; |
581 void * arg ATTRIBUTE_UNUSED; 582{ 583 unsigned char byte1, abreg; 584 unw_word t, off; 585 586 byte1 = *dp++; 587 t = unw_decode_uleb128 (&dp); 588 off = unw_decode_uleb128 (&dp); 589 abreg = (byte1 & 0x7f); 590 if (byte1 & 0x80) 591 UNW_DEC_SPILL_SPREL ("X1", t, abreg, off, arg); 592 else 593 UNW_DEC_SPILL_PSPREL ("X1", t, abreg, off, arg); 594 return dp; 595} 596 597static const unsigned char * 598unw_decode_x2 (dp, code, arg) 599 const unsigned char * dp; | 587 void * arg ATTRIBUTE_UNUSED; 588{ 589 unsigned char byte1, abreg; 590 unw_word t, off; 591 592 byte1 = *dp++; 593 t = unw_decode_uleb128 (&dp); 594 off = unw_decode_uleb128 (&dp); 595 abreg = (byte1 & 0x7f); 596 if (byte1 & 0x80) 597 UNW_DEC_SPILL_SPREL ("X1", t, abreg, off, arg); 598 else 599 UNW_DEC_SPILL_PSPREL ("X1", t, abreg, off, arg); 600 return dp; 601} 602 603static const unsigned char * 604unw_decode_x2 (dp, code, arg) 605 const unsigned char * dp; |
600 unsigned char code; | 606 unsigned int code ATTRIBUTE_UNUSED; |
601 void * arg ATTRIBUTE_UNUSED; 602{ 603 unsigned char byte1, byte2, abreg, x, ytreg; 604 unw_word t; 605 606 byte1 = *dp++; 607 byte2 = *dp++; 608 t = unw_decode_uleb128 (&dp); --- 5 unchanged lines hidden (view full) --- 614 else 615 UNW_DEC_SPILL_REG ("X2", t, abreg, x, ytreg, arg); 616 return dp; 617} 618 619static const unsigned char * 620unw_decode_x3 (dp, code, arg) 621 const unsigned char * dp; | 607 void * arg ATTRIBUTE_UNUSED; 608{ 609 unsigned char byte1, byte2, abreg, x, ytreg; 610 unw_word t; 611 612 byte1 = *dp++; 613 byte2 = *dp++; 614 t = unw_decode_uleb128 (&dp); --- 5 unchanged lines hidden (view full) --- 620 else 621 UNW_DEC_SPILL_REG ("X2", t, abreg, x, ytreg, arg); 622 return dp; 623} 624 625static const unsigned char * 626unw_decode_x3 (dp, code, arg) 627 const unsigned char * dp; |
622 unsigned char code; | 628 unsigned int code ATTRIBUTE_UNUSED; |
623 void * arg ATTRIBUTE_UNUSED; 624{ 625 unsigned char byte1, byte2, abreg, qp; 626 unw_word t, off; 627 628 byte1 = *dp++; 629 byte2 = *dp++; 630 t = unw_decode_uleb128 (&dp); --- 7 unchanged lines hidden (view full) --- 638 else 639 UNW_DEC_SPILL_PSPREL_P ("X3", qp, t, abreg, off, arg); 640 return dp; 641} 642 643static const unsigned char * 644unw_decode_x4 (dp, code, arg) 645 const unsigned char * dp; | 629 void * arg ATTRIBUTE_UNUSED; 630{ 631 unsigned char byte1, byte2, abreg, qp; 632 unw_word t, off; 633 634 byte1 = *dp++; 635 byte2 = *dp++; 636 t = unw_decode_uleb128 (&dp); --- 7 unchanged lines hidden (view full) --- 644 else 645 UNW_DEC_SPILL_PSPREL_P ("X3", qp, t, abreg, off, arg); 646 return dp; 647} 648 649static const unsigned char * 650unw_decode_x4 (dp, code, arg) 651 const unsigned char * dp; |
646 unsigned char code; | 652 unsigned int code ATTRIBUTE_UNUSED; |
647 void * arg ATTRIBUTE_UNUSED; 648{ 649 unsigned char byte1, byte2, byte3, qp, abreg, x, ytreg; 650 unw_word t; 651 652 byte1 = *dp++; 653 byte2 = *dp++; 654 byte3 = *dp++; --- 9 unchanged lines hidden (view full) --- 664 else 665 UNW_DEC_SPILL_REG_P ("X4", qp, t, abreg, x, ytreg, arg); 666 return dp; 667} 668 669static const unsigned char * 670unw_decode_r1 (dp, code, arg) 671 const unsigned char *dp; | 653 void * arg ATTRIBUTE_UNUSED; 654{ 655 unsigned char byte1, byte2, byte3, qp, abreg, x, ytreg; 656 unw_word t; 657 658 byte1 = *dp++; 659 byte2 = *dp++; 660 byte3 = *dp++; --- 9 unchanged lines hidden (view full) --- 670 else 671 UNW_DEC_SPILL_REG_P ("X4", qp, t, abreg, x, ytreg, arg); 672 return dp; 673} 674 675static const unsigned char * 676unw_decode_r1 (dp, code, arg) 677 const unsigned char *dp; |
672 unsigned char code; | 678 unsigned int code; |
673 void *arg; 674{ 675 int body = (code & 0x20) != 0; 676 unw_word rlen; 677 678 rlen = (code & 0x1f); 679 UNW_DEC_PROLOGUE ("R1", body, rlen, arg); 680 return dp; 681} 682 683static const unsigned char * 684unw_decode_r2 (dp, code, arg) 685 const unsigned char *dp; | 679 void *arg; 680{ 681 int body = (code & 0x20) != 0; 682 unw_word rlen; 683 684 rlen = (code & 0x1f); 685 UNW_DEC_PROLOGUE ("R1", body, rlen, arg); 686 return dp; 687} 688 689static const unsigned char * 690unw_decode_r2 (dp, code, arg) 691 const unsigned char *dp; |
686 unsigned char code; | 692 unsigned int code; |
687 void *arg; 688{ 689 unsigned char byte1, mask, grsave; 690 unw_word rlen; 691 692 byte1 = *dp++; 693 694 mask = ((code & 0x7) << 1) | ((byte1 >> 7) & 1); 695 grsave = (byte1 & 0x7f); 696 rlen = unw_decode_uleb128 (& dp); 697 UNW_DEC_PROLOGUE_GR ("R2", rlen, mask, grsave, arg); 698 return dp; 699} 700 701static const unsigned char * 702unw_decode_r3 (dp, code, arg) 703 const unsigned char *dp; | 693 void *arg; 694{ 695 unsigned char byte1, mask, grsave; 696 unw_word rlen; 697 698 byte1 = *dp++; 699 700 mask = ((code & 0x7) << 1) | ((byte1 >> 7) & 1); 701 grsave = (byte1 & 0x7f); 702 rlen = unw_decode_uleb128 (& dp); 703 UNW_DEC_PROLOGUE_GR ("R2", rlen, mask, grsave, arg); 704 return dp; 705} 706 707static const unsigned char * 708unw_decode_r3 (dp, code, arg) 709 const unsigned char *dp; |
704 unsigned char code; | 710 unsigned int code; |
705 void *arg; 706{ 707 unw_word rlen; 708 709 rlen = unw_decode_uleb128 (& dp); 710 UNW_DEC_PROLOGUE ("R3", ((code & 0x3) == 1), rlen, arg); 711 return dp; 712} 713 714static const unsigned char * 715unw_decode_p1 (dp, code, arg) 716 const unsigned char * dp; | 711 void *arg; 712{ 713 unw_word rlen; 714 715 rlen = unw_decode_uleb128 (& dp); 716 UNW_DEC_PROLOGUE ("R3", ((code & 0x3) == 1), rlen, arg); 717 return dp; 718} 719 720static const unsigned char * 721unw_decode_p1 (dp, code, arg) 722 const unsigned char * dp; |
717 unsigned char code; | 723 unsigned int code; |
718 void * arg ATTRIBUTE_UNUSED; 719{ 720 unsigned char brmask = (code & 0x1f); 721 722 UNW_DEC_BR_MEM ("P1", brmask, arg); 723 return dp; 724} 725 726static const unsigned char * 727unw_decode_p2_p5 (dp, code, arg) 728 const unsigned char * dp; | 724 void * arg ATTRIBUTE_UNUSED; 725{ 726 unsigned char brmask = (code & 0x1f); 727 728 UNW_DEC_BR_MEM ("P1", brmask, arg); 729 return dp; 730} 731 732static const unsigned char * 733unw_decode_p2_p5 (dp, code, arg) 734 const unsigned char * dp; |
729 unsigned char code; | 735 unsigned int code; |
730 void * arg ATTRIBUTE_UNUSED; 731{ 732 if ((code & 0x10) == 0) 733 { 734 unsigned char byte1 = *dp++; 735 736 UNW_DEC_BR_GR ("P2", ((code & 0xf) << 1) | ((byte1 >> 7) & 1), 737 (byte1 & 0x7f), arg); --- 64 unchanged lines hidden (view full) --- 802 UNW_DEC_BAD_CODE (code); 803 804 return dp; 805} 806 807static const unsigned char * 808unw_decode_p6 (dp, code, arg) 809 const unsigned char * dp; | 736 void * arg ATTRIBUTE_UNUSED; 737{ 738 if ((code & 0x10) == 0) 739 { 740 unsigned char byte1 = *dp++; 741 742 UNW_DEC_BR_GR ("P2", ((code & 0xf) << 1) | ((byte1 >> 7) & 1), 743 (byte1 & 0x7f), arg); --- 64 unchanged lines hidden (view full) --- 808 UNW_DEC_BAD_CODE (code); 809 810 return dp; 811} 812 813static const unsigned char * 814unw_decode_p6 (dp, code, arg) 815 const unsigned char * dp; |
810 unsigned char code; | 816 unsigned int code; |
811 void * arg ATTRIBUTE_UNUSED; 812{ 813 int gregs = (code & 0x10) != 0; 814 unsigned char mask = (code & 0x0f); 815 816 if (gregs) 817 UNW_DEC_GR_MEM ("P6", mask, arg); 818 else 819 UNW_DEC_FR_MEM ("P6", mask, arg); 820 return dp; 821} 822 823static const unsigned char * 824unw_decode_p7_p10 (dp, code, arg) 825 const unsigned char *dp; | 817 void * arg ATTRIBUTE_UNUSED; 818{ 819 int gregs = (code & 0x10) != 0; 820 unsigned char mask = (code & 0x0f); 821 822 if (gregs) 823 UNW_DEC_GR_MEM ("P6", mask, arg); 824 else 825 UNW_DEC_FR_MEM ("P6", mask, arg); 826 return dp; 827} 828 829static const unsigned char * 830unw_decode_p7_p10 (dp, code, arg) 831 const unsigned char *dp; |
826 unsigned char code; | 832 unsigned int code; |
827 void *arg; 828{ 829 unsigned char r, byte1, byte2; 830 unw_word t, size; 831 832 if ((code & 0x10) == 0) 833 { 834 r = (code & 0xf); --- 159 unchanged lines hidden (view full) --- 994 } 995 } 996 return dp; 997} 998 999static const unsigned char * 1000unw_decode_b1 (dp, code, arg) 1001 const unsigned char * dp; | 833 void *arg; 834{ 835 unsigned char r, byte1, byte2; 836 unw_word t, size; 837 838 if ((code & 0x10) == 0) 839 { 840 r = (code & 0xf); --- 159 unchanged lines hidden (view full) --- 1000 } 1001 } 1002 return dp; 1003} 1004 1005static const unsigned char * 1006unw_decode_b1 (dp, code, arg) 1007 const unsigned char * dp; |
1002 unsigned char code; | 1008 unsigned int code; |
1003 void * arg ATTRIBUTE_UNUSED; 1004{ 1005 unw_word label = (code & 0x1f); 1006 1007 if ((code & 0x20) != 0) 1008 UNW_DEC_COPY_STATE ("B1", label, arg); 1009 else 1010 UNW_DEC_LABEL_STATE ("B1", label, arg); 1011 return dp; 1012} 1013 1014static const unsigned char * 1015unw_decode_b2 (dp, code, arg) 1016 const unsigned char * dp; | 1009 void * arg ATTRIBUTE_UNUSED; 1010{ 1011 unw_word label = (code & 0x1f); 1012 1013 if ((code & 0x20) != 0) 1014 UNW_DEC_COPY_STATE ("B1", label, arg); 1015 else 1016 UNW_DEC_LABEL_STATE ("B1", label, arg); 1017 return dp; 1018} 1019 1020static const unsigned char * 1021unw_decode_b2 (dp, code, arg) 1022 const unsigned char * dp; |
1017 unsigned char code; | 1023 unsigned int code; |
1018 void * arg ATTRIBUTE_UNUSED; 1019{ 1020 unw_word t; 1021 1022 t = unw_decode_uleb128 (& dp); 1023 UNW_DEC_EPILOGUE ("B2", t, (code & 0x1f), arg); 1024 return dp; 1025} 1026 1027static const unsigned char * 1028unw_decode_b3_x4 (dp, code, arg) 1029 const unsigned char *dp; | 1024 void * arg ATTRIBUTE_UNUSED; 1025{ 1026 unw_word t; 1027 1028 t = unw_decode_uleb128 (& dp); 1029 UNW_DEC_EPILOGUE ("B2", t, (code & 0x1f), arg); 1030 return dp; 1031} 1032 1033static const unsigned char * 1034unw_decode_b3_x4 (dp, code, arg) 1035 const unsigned char *dp; |
1030 unsigned char code; | 1036 unsigned int code; |
1031 void *arg; 1032{ 1033 unw_word t, ecount, label; 1034 1035 if ((code & 0x10) == 0) 1036 { 1037 t = unw_decode_uleb128 (&dp); 1038 ecount = unw_decode_uleb128 (&dp); --- 70 unchanged lines hidden --- | 1037 void *arg; 1038{ 1039 unw_word t, ecount, label; 1040 1041 if ((code & 0x10) == 0) 1042 { 1043 t = unw_decode_uleb128 (&dp); 1044 ecount = unw_decode_uleb128 (&dp); --- 70 unchanged lines hidden --- |