Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 670655 Details for
Bug 890900
Fedora18:Alpha: Tool chain :GDB tests are failing
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
backport patch for Fedora 18 gdb's disassemble function
gdb-7.5.1-f18-disassemble.patch (text/plain), 9.23 KB, created by
IBM Bug Proxy
on 2012-12-31 03:44:09 UTC
(
hide
)
Description:
backport patch for Fedora 18 gdb's disassemble function
Filename:
MIME Type:
Creator:
IBM Bug Proxy
Created:
2012-12-31 03:44:09 UTC
Size:
9.23 KB
patch
obsolete
>diff -x '.*ChangeLog' -uprN gdb-7.5.1.orig/gdb/rs6000-tdep.c gdb-7.5.1/gdb/rs6000-tdep.c >--- gdb-7.5.1.orig/gdb/rs6000-tdep.c 2012-12-17 07:47:13.869814289 -0700 >+++ gdb-7.5.1/gdb/rs6000-tdep.c 2012-12-17 15:02:03.630832240 -0700 >@@ -3135,21 +3135,6 @@ find_variant_by_arch (enum bfd_architect > static int > gdb_print_insn_powerpc (bfd_vma memaddr, disassemble_info *info) > { >- if (!info->disassembler_options) >- { >- /* When debugging E500 binaries and disassembling code containing >- E500-specific (SPE) instructions, one sometimes sees AltiVec >- instructions instead. The opcode spaces for SPE instructions >- and AltiVec instructions overlap, and specifiying the "any" cpu >- looks for AltiVec instructions first. If we know we're >- debugging an E500 binary, however, we can specify the "e500x2" >- cpu and get much more sane disassembly output. */ >- if (info->mach == bfd_mach_ppc_e500) >- info->disassembler_options = "e500x2"; >- else >- info->disassembler_options = "any"; >- } >- > if (info->endian == BFD_ENDIAN_BIG) > return print_insn_big_powerpc (memaddr, info); > else >diff -x '.*ChangeLog' -uprN gdb-7.5.1.orig/gdb/testsuite/gdb.arch/powerpc-power6.exp gdb-7.5.1/gdb/testsuite/gdb.arch/powerpc-power6.exp >--- gdb-7.5.1.orig/gdb/testsuite/gdb.arch/powerpc-power6.exp 2012-12-17 07:47:13.989814301 -0700 >+++ gdb-7.5.1/gdb/testsuite/gdb.arch/powerpc-power6.exp 2012-12-05 14:28:46.000000000 -0700 >@@ -43,12 +43,12 @@ gdb_test "disass func" ":\tblr\r\n.*" "B > gdb_test "disass func" ":\tdcbzl *r8,r9\r\n.*" "Power5 disassembly dcbzl" > gdb_test "disass func" ":\tfrsqrtes *f10,f11\r\n.*" "Power5 disassembly frsqrtes" > gdb_test "disass func" ":\tdadd *f1,f2,f1\r\n.*" "Power6 disassembly dadd" >-gdb_test "disass func" ":\tdaddq *f1,f2,f1\r\n.*" "Power6 disassembly daddq" >+gdb_test "disass func" ":\tdaddq *f0,f2,f0\r\n.*" "Power6 disassembly daddq" > gdb_test "disass func" ":\tdsub *f1,f2,f1\r\n.*" "Power6 disassembly dsub" >-gdb_test "disass func" ":\tdsubq *f1,f2,f1\r\n.*" "Power6 disassembly dsubq" >+gdb_test "disass func" ":\tdsubq *f0,f2,f0\r\n.*" "Power6 disassembly dsubq" > gdb_test "disass func" ":\tdmul *f1,f2,f1\r\n.*" "Power6 disassembly dmul" >-gdb_test "disass func" ":\tdmulq *f1,f2,f1\r\n.*" "Power6 disassembly dmulq" >+gdb_test "disass func" ":\tdmulq *f0,f2,f0\r\n.*" "Power6 disassembly dmulq" > gdb_test "disass func" ":\tddiv *f1,f2,f1\r\n.*" "Power6 disassembly ddiv" >-gdb_test "disass func" ":\tddivq *f1,f2,f1\r\n.*" "Power6 disassembly ddivq" >+gdb_test "disass func" ":\tddivq *f0,f2,f0\r\n.*" "Power6 disassembly ddivq" > gdb_test "disass func" ":\tdcmpu *cr1,f2,f1\r\n.*" "Power6 disassembly dcmpu" >-gdb_test "disass func" ":\tdcmpuq *cr1,f2,f1\r\n.*" "Power6 disassembly dcmpuq" >+gdb_test "disass func" ":\tdcmpuq *cr1,f2,f0\r\n.*" "Power6 disassembly dcmpuq" >diff -x '.*ChangeLog' -uprN gdb-7.5.1.orig/gdb/testsuite/gdb.arch/powerpc-power6.s gdb-7.5.1/gdb/testsuite/gdb.arch/powerpc-power6.s >--- gdb-7.5.1.orig/gdb/testsuite/gdb.arch/powerpc-power6.s 2012-12-17 07:47:13.989814301 -0700 >+++ gdb-7.5.1/gdb/testsuite/gdb.arch/powerpc-power6.s 2012-12-05 14:28:14.000000000 -0700 >@@ -5,12 +5,12 @@ func: > .long 0x7c284fec /* dcbzl r8,r9 */ > .long 0xed405834 /* frsqrtes f10,f11 */ > .long 0xec220804 /* dadd f1,f2,f1 */ >- .long 0xfc220804 /* daddq f1,f2,f1 */ >+ .long 0xfc020004 /* daddq f0,f2,f0 */ > .long 0xec220c04 /* dsub f1,f2,f1 */ >- .long 0xfc220c04 /* dsubq f1,f2,f1 */ >+ .long 0xfc020404 /* dsubq f0,f2,f0 */ > .long 0xec220844 /* dmul f1,f2,f1 */ >- .long 0xfc220844 /* dmulq f1,f2,f1 */ >+ .long 0xfc020044 /* dmulq f0,f2,f0 */ > .long 0xec220c44 /* ddiv f1,f2,f1 */ >- .long 0xfc220c44 /* ddivq f1,f2,f1 */ >+ .long 0xfc020444 /* ddivq f0,f2,f0 */ > .long 0xec820d04 /* dcmpu cr1,f2,f1 */ >- .long 0xfc820d04 /* dcmpuq cr1,f2,f1 */ >+ .long 0xfc820504 /* dcmpuq cr1,f2,f0 */ >diff -x '.*ChangeLog' -uprN gdb-7.5.1.orig/include/opcode/ppc.h gdb-7.5.1/include/opcode/ppc.h >--- gdb-7.5.1.orig/include/opcode/ppc.h 2012-05-14 12:45:27.000000000 -0700 >+++ gdb-7.5.1/include/opcode/ppc.h 2012-12-17 15:01:37.450831153 -0700 >@@ -400,6 +400,6 @@ struct powerpc_macro > extern const struct powerpc_macro powerpc_macros[]; > extern const int powerpc_num_macros; > >-extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, const char *); >+extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, ppc_cpu_t *, const char *); > > #endif /* PPC_H */ >diff -x '.*ChangeLog' -uprN gdb-7.5.1.orig/opcodes/ppc-dis.c gdb-7.5.1/opcodes/ppc-dis.c >--- gdb-7.5.1.orig/opcodes/ppc-dis.c 2012-05-18 23:58:46.000000000 -0700 >+++ gdb-7.5.1/opcodes/ppc-dis.c 2012-12-17 15:01:37.450831153 -0700 >@@ -211,13 +211,8 @@ get_powerpc_dialect (struct disassemble_ > /* Handle -m and -M options that set cpu type, and .machine arg. */ > > ppc_cpu_t >-ppc_parse_cpu (ppc_cpu_t ppc_cpu, const char *arg) >+ppc_parse_cpu (ppc_cpu_t ppc_cpu, ppc_cpu_t *sticky, const char *arg) > { >- const ppc_cpu_t retain_mask = (PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX >- | PPC_OPCODE_SPE | PPC_OPCODE_ANY >- | PPC_OPCODE_VLE | PPC_OPCODE_PMR); >- /* Sticky bits. */ >- ppc_cpu_t retain_flags = ppc_cpu & retain_mask; > unsigned int i; > > for (i = 0; i < sizeof (ppc_opts) / sizeof (ppc_opts[0]); i++) >@@ -225,8 +220,8 @@ ppc_parse_cpu (ppc_cpu_t ppc_cpu, const > { > if (ppc_opts[i].sticky) > { >- retain_flags |= ppc_opts[i].sticky; >- if ((ppc_cpu & ~retain_mask) != 0) >+ *sticky |= ppc_opts[i].sticky; >+ if ((ppc_cpu & ~*sticky) != 0) > break; > } > ppc_cpu = ppc_opts[i].cpu; >@@ -235,7 +230,7 @@ ppc_parse_cpu (ppc_cpu_t ppc_cpu, const > if (i >= sizeof (ppc_opts) / sizeof (ppc_opts[0])) > return 0; > >- ppc_cpu |= retain_flags; >+ ppc_cpu |= *sticky; > return ppc_cpu; > } > >@@ -245,12 +240,75 @@ static void > powerpc_init_dialect (struct disassemble_info *info) > { > ppc_cpu_t dialect = 0; >+ ppc_cpu_t sticky = 0; > char *arg; > struct dis_private *priv = calloc (sizeof (*priv), 1); > > if (priv == NULL) > priv = &private; > >+ switch (info->mach) >+ { >+ case bfd_mach_ppc_403: >+ case bfd_mach_ppc_403gc: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_403); >+ break; >+ case bfd_mach_ppc_405: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_403 | PPC_OPCODE_405); >+ break; >+ case bfd_mach_ppc_601: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_601); >+ break; >+ case bfd_mach_ppc_a35: >+ case bfd_mach_ppc_rs64ii: >+ case bfd_mach_ppc_rs64iii: >+ dialect = (PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_64); >+ break; >+ case bfd_mach_ppc_e500: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE >+ | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK >+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI >+ | PPC_OPCODE_E500); >+ break; >+ case bfd_mach_ppc_e500mc: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL >+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI >+ | PPC_OPCODE_E500MC); >+ break; >+ case bfd_mach_ppc_e500mc64: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL >+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI >+ | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_POWER5 >+ | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7); >+ break; >+ case bfd_mach_ppc_e5500: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL >+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI >+ | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_POWER4 >+ | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 >+ | PPC_OPCODE_POWER7); >+ break; >+ case bfd_mach_ppc_e6500: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL >+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI >+ | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_ALTIVEC >+ | PPC_OPCODE_ALTIVEC2 | PPC_OPCODE_E6500 | PPC_OPCODE_POWER4 >+ | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7); >+ break; >+ case bfd_mach_ppc_titan: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_PMR >+ | PPC_OPCODE_RFMCI | PPC_OPCODE_TITAN); >+ break; >+ case bfd_mach_ppc_vle: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_VLE); >+ break; >+ default: >+ dialect = (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 >+ | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 >+ | PPC_OPCODE_POWER7 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX >+ | PPC_OPCODE_ANY); >+ } >+ > arg = info->disassembler_options; > while (arg != NULL) > { >@@ -260,7 +318,7 @@ powerpc_init_dialect (struct disassemble > if (end != NULL) > *end = 0; > >- if ((new_cpu = ppc_parse_cpu (dialect, arg)) != 0) >+ if ((new_cpu = ppc_parse_cpu (dialect, &sticky, arg)) != 0) > dialect = new_cpu; > else if (strcmp (arg, "32") == 0) > dialect &= ~(ppc_cpu_t) PPC_OPCODE_64; >@@ -274,20 +332,6 @@ powerpc_init_dialect (struct disassemble > arg = end; > } > >- if ((dialect & ~(ppc_cpu_t) PPC_OPCODE_64) == 0) >- { >- if (info->mach == bfd_mach_ppc64) >- dialect |= PPC_OPCODE_64; >- else >- dialect &= ~(ppc_cpu_t) PPC_OPCODE_64; >- if (info->mach == bfd_mach_ppc_vle) >- dialect |= PPC_OPCODE_PPC | PPC_OPCODE_VLE; >- else >- /* Choose a reasonable default. */ >- dialect |= (PPC_OPCODE_PPC | PPC_OPCODE_COMMON | PPC_OPCODE_601 >- | PPC_OPCODE_ALTIVEC); >- } >- > info->private_data = priv; > POWERPC_DIALECT(info) = dialect; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 890900
:
670651
|
670652
|
670653
|
670654
| 670655 |
701363