From 75272152884a0cb003a8e45f8ca9ffa0ac43eea2 Mon Sep 17 00:00:00 2001 From: Mahesh Bodapati Date: Thu, 15 Apr 2021 16:16:11 +0530 Subject: [PATCH 54] [Patch,MicroBlaze]: 1. set BFD machine to bfd_mach_microblaze64 for 64 bit elf. 2. XSDB and QEMU : agreed to append r to all special registers except slr/shr --- bfd/elf64-microblaze.c | 11 +++++++++++ gdb/features/microblaze-core.xml | 4 ++-- gdb/features/microblaze-stack-protect.xml | 4 ++-- gdb/features/microblaze-with-stack-protect.c | 4 ++-- gdb/features/microblaze.c | 4 ++-- gdb/features/microblaze64-core.xml | 4 ++-- gdb/features/microblaze64-stack-protect.xml | 4 ++-- gdb/features/microblaze64-with-stack-protect.c | 4 ++-- gdb/features/microblaze64.c | 4 ++-- gdb/microblaze-tdep.c | 2 +- 10 files changed, 28 insertions(+), 17 deletions(-) Index: gdb-9.2/bfd/elf64-microblaze.c =================================================================== --- gdb-9.2.orig/bfd/elf64-microblaze.c +++ gdb-9.2/bfd/elf64-microblaze.c @@ -3631,6 +3631,16 @@ microblaze_elf_finish_dynamic_sections ( return TRUE; } +static bfd_boolean +microblaze_elf64_object_p (bfd *abfd) +{ + bfd_default_set_arch_mach (abfd, bfd_arch_microblaze, + bfd_mach_microblaze64); + return TRUE; +} + + + /* Hook called by the linker routine which adds symbols from an object file. We use it to put .comm items in .sbss, and not .bss. */ @@ -3698,5 +3708,6 @@ microblaze_elf_add_symbol_hook (bfd *abf #define elf_backend_finish_dynamic_symbol microblaze_elf_finish_dynamic_symbol #define elf_backend_size_dynamic_sections microblaze_elf_size_dynamic_sections #define elf_backend_add_symbol_hook microblaze_elf_add_symbol_hook +/* #define elf_backend_object_p microblaze_elf64_object_p */ #include "elf64-target.h" Index: gdb-9.2/gdb/features/microblaze-core.xml =================================================================== --- gdb-9.2.orig/gdb/features/microblaze-core.xml +++ gdb-9.2/gdb/features/microblaze-core.xml @@ -64,6 +64,6 @@ - - + + Index: gdb-9.2/gdb/features/microblaze-stack-protect.xml =================================================================== --- gdb-9.2.orig/gdb/features/microblaze-stack-protect.xml +++ gdb-9.2/gdb/features/microblaze-stack-protect.xml @@ -7,6 +7,6 @@ - - + + Index: gdb-9.2/gdb/features/microblaze-with-stack-protect.c =================================================================== --- gdb-9.2.orig/gdb/features/microblaze-with-stack-protect.c +++ gdb-9.2/gdb/features/microblaze-with-stack-protect.c @@ -72,8 +72,8 @@ initialize_tdesc_microblaze_with_stack_p tdesc_create_reg (feature, "rtlbhi", 56, 1, NULL, 32, "int"); feature = tdesc_create_feature (result, "org.gnu.gdb.microblaze.stack-protect"); - tdesc_create_reg (feature, "rslr", 57, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "rshr", 58, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "slr", 57, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "shr", 58, 1, NULL, 32, "int"); tdesc_microblaze_with_stack_protect = result; } Index: gdb-9.2/gdb/features/microblaze.c =================================================================== --- gdb-9.2.orig/gdb/features/microblaze.c +++ gdb-9.2/gdb/features/microblaze.c @@ -70,8 +70,8 @@ initialize_tdesc_microblaze (void) tdesc_create_reg (feature, "rtlbsx", 54, 1, NULL, 32, "int"); tdesc_create_reg (feature, "rtlblo", 55, 1, NULL, 32, "int"); tdesc_create_reg (feature, "rtlbhi", 56, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "rslr", 57, 1, NULL, 64, "uint64"); - tdesc_create_reg (feature, "rshr", 58, 1, NULL, 64, "uint64"); + tdesc_create_reg (feature, "slr", 57, 1, NULL, 64, "uint64"); + tdesc_create_reg (feature, "shr", 58, 1, NULL, 64, "uint64"); tdesc_microblaze = result; } Index: gdb-9.2/gdb/features/microblaze64-core.xml =================================================================== --- gdb-9.2.orig/gdb/features/microblaze64-core.xml +++ gdb-9.2/gdb/features/microblaze64-core.xml @@ -64,6 +64,6 @@ - - + + Index: gdb-9.2/gdb/features/microblaze64-stack-protect.xml =================================================================== --- gdb-9.2.orig/gdb/features/microblaze64-stack-protect.xml +++ gdb-9.2/gdb/features/microblaze64-stack-protect.xml @@ -7,6 +7,6 @@ - - + + Index: gdb-9.2/gdb/features/microblaze64-with-stack-protect.c =================================================================== --- gdb-9.2.orig/gdb/features/microblaze64-with-stack-protect.c +++ gdb-9.2/gdb/features/microblaze64-with-stack-protect.c @@ -72,8 +72,8 @@ initialize_tdesc_microblaze64_with_stack tdesc_create_reg (feature, "rtlbhi", 56, 1, NULL, 32, "int"); feature = tdesc_create_feature (result, "org.gnu.gdb.microblaze64.stack-protect"); - tdesc_create_reg (feature, "rslr", 57, 1, NULL, 64, "uint64"); - tdesc_create_reg (feature, "rshr", 58, 1, NULL, 64, "uint64"); + tdesc_create_reg (feature, "slr", 57, 1, NULL, 64, "uint64"); + tdesc_create_reg (feature, "shr", 58, 1, NULL, 64, "uint64"); tdesc_microblaze64_with_stack_protect = result; } Index: gdb-9.2/gdb/features/microblaze64.c =================================================================== --- gdb-9.2.orig/gdb/features/microblaze64.c +++ gdb-9.2/gdb/features/microblaze64.c @@ -70,8 +70,8 @@ initialize_tdesc_microblaze64 (void) tdesc_create_reg (feature, "rtlbsx", 54, 1, NULL, 32, "int"); tdesc_create_reg (feature, "rtlblo", 55, 1, NULL, 32, "int"); tdesc_create_reg (feature, "rtlbhi", 56, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "rslr", 57, 1, NULL, 64, "uint64"); - tdesc_create_reg (feature, "rshr", 58, 1, NULL, 64, "uint64"); + tdesc_create_reg (feature, "slr", 57, 1, NULL, 64, "uint64"); + tdesc_create_reg (feature, "shr", 58, 1, NULL, 64, "uint64"); tdesc_microblaze64 = result; } Index: gdb-9.2/gdb/microblaze-tdep.c =================================================================== --- gdb-9.2.orig/gdb/microblaze-tdep.c +++ gdb-9.2/gdb/microblaze-tdep.c @@ -77,7 +77,7 @@ static const char *microblaze_register_n "rpvr0", "rpvr1", "rpvr2", "rpvr3", "rpvr4", "rpvr5", "rpvr6", "rpvr7", "rpvr8", "rpvr9", "rpvr10", "rpvr11", "redr", "rpid", "rzpr", "rtlbx", "rtlbsx", "rtlblo", "rtlbhi", - "rslr", "rshr" + "slr", "shr" }; #define MICROBLAZE_NUM_REGS ARRAY_SIZE (microblaze_register_names)