Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/elf/ChangeLog13
-rw-r--r--include/elf/internal.h54
-rw-r--r--include/elf/v850.h28
-rw-r--r--include/gdb/ChangeLog6
-rw-r--r--include/gdb/signals.def200
-rw-r--r--include/gdb/signals.h186
-rw-r--r--include/opcode/ChangeLog27
-rw-r--r--include/opcode/rx.h6
-rw-r--r--include/opcode/v850.h94
9 files changed, 387 insertions, 227 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 8a8e118ca..61bbf81db 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,16 @@
+2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
+ Ina Pandit <ina.pandit@kpitcummins.com>
+
+ * v850.h: Add support for V850E2 and V850E2V3.
+ (v850_reloc_type): Update the newly added relocations
+
+2010-07-20 Alan Modra <amodra@gmail.com>
+
+ * internal.h (ELF_TBSS_SPECIAL): New macro, extracted from..
+ (ELF_SECTION_SIZE): ..here.
+ (ELF_SECTION_IN_SEGMENT_1): Add "strict" arg.
+ (ELF_SECTION_IN_SEGMENT_STRICT): New macro.
+
2010-06-25 Alan Modra <amodra@gmail.com>
* ppc64.h (R_PPC64_LO_DS_OPT): Define.
diff --git a/include/elf/internal.h b/include/elf/internal.h
index 1dd336dd6..6998ae03c 100644
--- a/include/elf/internal.h
+++ b/include/elf/internal.h
@@ -291,37 +291,55 @@ struct elf_segment_map
/* .tbss is special. It doesn't contribute memory space to normal
segments and it doesn't take file space in normal segments. */
+#define ELF_TBSS_SPECIAL(sec_hdr, segment) \
+ (((sec_hdr)->sh_flags & SHF_TLS) != 0 \
+ && (sec_hdr)->sh_type == SHT_NOBITS \
+ && (segment)->p_type != PT_TLS)
+
#define ELF_SECTION_SIZE(sec_hdr, segment) \
- ((!(((sec_hdr)->sh_flags & SHF_TLS) != 0 \
- && (sec_hdr)->sh_type == SHT_NOBITS) \
- || (segment)->p_type == PT_TLS) ? (sec_hdr)->sh_size : 0)
-
-/* Decide if the given sec_hdr is in the given segment. PT_TLS segment
- contains only SHF_TLS sections. Only PT_LOAD, PT_GNU_RELRO and
- and PT_TLS segments can contain SHF_TLS sections. */
-#define ELF_SECTION_IN_SEGMENT_1(sec_hdr, segment, check_vma) \
- ((((((sec_hdr)->sh_flags & SHF_TLS) != 0) \
+ (ELF_TBSS_SPECIAL(sec_hdr, segment) ? 0 : (sec_hdr)->sh_size)
+
+/* Decide if the section SEC_HDR is in SEGMENT. If CHECK_VMA, then
+ VMAs are checked for alloc sections. If STRICT, then a zero size
+ section won't match at the end of a segment, unless the segment
+ is also zero size. */
+#define ELF_SECTION_IN_SEGMENT_1(sec_hdr, segment, check_vma, strict) \
+ ((/* Only PT_LOAD, PT_GNU_RELRO and PT_TLS segments can contain \
+ SHF_TLS sections. */ \
+ ((((sec_hdr)->sh_flags & SHF_TLS) != 0) \
&& ((segment)->p_type == PT_TLS \
|| (segment)->p_type == PT_GNU_RELRO \
|| (segment)->p_type == PT_LOAD)) \
+ /* PT_TLS segment contains only SHF_TLS sections, PT_PHDR no \
+ sections at all. */ \
|| (((sec_hdr)->sh_flags & SHF_TLS) == 0 \
&& (segment)->p_type != PT_TLS \
&& (segment)->p_type != PT_PHDR)) \
- /* Any section besides one of type SHT_NOBITS must have a file \
- offset within the segment. */ \
+ /* Any section besides one of type SHT_NOBITS must have file \
+ offsets within the segment. */ \
&& ((sec_hdr)->sh_type == SHT_NOBITS \
|| ((bfd_vma) (sec_hdr)->sh_offset >= (segment)->p_offset \
- && ((sec_hdr)->sh_offset + ELF_SECTION_SIZE(sec_hdr, segment) \
- <= (segment)->p_offset + (segment)->p_filesz))) \
- /* SHF_ALLOC sections must have VMAs within the segment. Be \
- careful about segments right at the end of memory. */ \
+ && (!(strict) \
+ || ((sec_hdr)->sh_offset - (segment)->p_offset \
+ <= (segment)->p_filesz - 1)) \
+ && (((sec_hdr)->sh_offset - (segment)->p_offset \
+ + ELF_SECTION_SIZE(sec_hdr, segment)) \
+ <= (segment)->p_filesz))) \
+ /* SHF_ALLOC sections must have VMAs within the segment. */ \
&& (!(check_vma) \
|| ((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \
|| ((sec_hdr)->sh_addr >= (segment)->p_vaddr \
- && ((sec_hdr)->sh_addr - (segment)->p_vaddr \
- + ELF_SECTION_SIZE(sec_hdr, segment) <= (segment)->p_memsz))))
+ && (!(strict) \
+ || ((sec_hdr)->sh_addr - (segment)->p_vaddr \
+ <= (segment)->p_memsz - 1)) \
+ && (((sec_hdr)->sh_addr - (segment)->p_vaddr \
+ + ELF_SECTION_SIZE(sec_hdr, segment)) \
+ <= (segment)->p_memsz))))
#define ELF_SECTION_IN_SEGMENT(sec_hdr, segment) \
- (ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1))
+ (ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 0))
+
+#define ELF_SECTION_IN_SEGMENT_STRICT(sec_hdr, segment) \
+ (ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 1))
#endif /* _ELF_INTERNAL_H */
diff --git a/include/elf/v850.h b/include/elf/v850.h
index 71ae1db4b..2a0e03ef8 100644
--- a/include/elf/v850.h
+++ b/include/elf/v850.h
@@ -40,6 +40,11 @@
/* v850e1 code. */
#define E_V850E1_ARCH 0x20000000
+/* v850e2 code. */
+#define E_V850E2_ARCH 0x30000000
+
+/* v850e2v3 code. */
+#define E_V850E2V3_ARCH 0x40000000
/* Flags for the st_other field. */
#define V850_OTHER_SDA 0x10 /* Symbol had SDA relocations. */
@@ -81,6 +86,29 @@ START_RELOC_NUMBERS (v850_reloc_type)
RELOC_NUMBER (R_V850_ALIGN, 27)
RELOC_NUMBER (R_V850_REL32, 28)
RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29) /* For ld.bu */
+ RELOC_NUMBER (R_V850_16_PCREL, 30) /* For loop */
+ RELOC_NUMBER (R_V850_17_PCREL, 31) /* For br */
+ RELOC_NUMBER (R_V850_23, 32) /* For 23bit ld.[w,h,hu,b,bu],st.[w,h,b] */
+ RELOC_NUMBER (R_V850_32_PCREL, 33) /* For jr32, jarl32 */
+ RELOC_NUMBER (R_V850_32_ABS, 34) /* For jmp32 */
+ RELOC_NUMBER (R_V850_16_SPLIT_OFFSET, 35) /* For ld.bu */
+ RELOC_NUMBER (R_V850_16_S1, 36) /* For ld.w, ld.h st.w st.h */
+ RELOC_NUMBER (R_V850_LO16_S1, 37) /* For ld.w, ld.h st.w st.h */
+ RELOC_NUMBER (R_V850_CALLT_15_16_OFFSET, 38) /* For ld.w, ld.h, ld.hu, st.w, st.h */
+ RELOC_NUMBER (R_V850_32_GOTPCREL, 39) /* GLOBAL_OFFSET_TABLE from pc */
+ RELOC_NUMBER (R_V850_16_GOT, 40) /* GOT ENTRY from gp */
+ RELOC_NUMBER (R_V850_32_GOT, 41)
+ RELOC_NUMBER (R_V850_22_PLT, 42) /* For jr */
+ RELOC_NUMBER (R_V850_32_PLT, 43) /* For jr32 */
+ RELOC_NUMBER (R_V850_COPY, 44)
+ RELOC_NUMBER (R_V850_GLOB_DAT, 45)
+ RELOC_NUMBER (R_V850_JMP_SLOT, 46)
+ RELOC_NUMBER (R_V850_RELATIVE, 47)
+ RELOC_NUMBER (R_V850_16_GOTOFF, 48) /* From gp */
+ RELOC_NUMBER (R_V850_32_GOTOFF, 49)
+ RELOC_NUMBER (R_V850_CODE, 50)
+ RELOC_NUMBER (R_V850_DATA, 51) /* For loop */
+
END_RELOC_NUMBERS (R_V850_max)
diff --git a/include/gdb/ChangeLog b/include/gdb/ChangeLog
index b4d2c68bd..dd1f2bd11 100644
--- a/include/gdb/ChangeLog
+++ b/include/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-31 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * signals.h (enum target_signal): Move the content to signals.def.
+ Include it.
+ * signals.def: New file.
+
2010-06-24 Kevin Buettner <kevinb@redhat.com>
* sim-rx.h (sim_rx_regnum): Add sim_rx_acc_regnum. Adjust
diff --git a/include/gdb/signals.def b/include/gdb/signals.def
new file mode 100644
index 000000000..b383ebe6a
--- /dev/null
+++ b/include/gdb/signals.def
@@ -0,0 +1,200 @@
+/* Target signal numbers for GDB and the GDB remote protocol.
+ Copyright 2010 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Used some places (e.g. stop_signal) to record the concept that
+ there is no signal. */
+SET (TARGET_SIGNAL_0, 0, "0", "Signal 0")
+#define TARGET_SIGNAL_FIRST TARGET_SIGNAL_0
+SET (TARGET_SIGNAL_HUP, 1, "SIGHUP", "Hangup")
+SET (TARGET_SIGNAL_INT, 2, "SIGINT", "Interrupt")
+SET (TARGET_SIGNAL_QUIT, 3, "SIGQUIT", "Quit")
+SET (TARGET_SIGNAL_ILL, 4, "SIGILL", "Illegal instruction")
+SET (TARGET_SIGNAL_TRAP, 5, "SIGTRAP", "Trace/breakpoint trap")
+SET (TARGET_SIGNAL_ABRT, 6, "SIGABRT", "Aborted")
+SET (TARGET_SIGNAL_EMT, 7, "SIGEMT", "Emulation trap")
+SET (TARGET_SIGNAL_FPE, 8, "SIGFPE", "Arithmetic exception")
+SET (TARGET_SIGNAL_KILL, 9, "SIGKILL", "Killed")
+SET (TARGET_SIGNAL_BUS, 10, "SIGBUS", "Bus error")
+SET (TARGET_SIGNAL_SEGV, 11, "SIGSEGV", "Segmentation fault")
+SET (TARGET_SIGNAL_SYS, 12, "SIGSYS", "Bad system call")
+SET (TARGET_SIGNAL_PIPE, 13, "SIGPIPE", "Broken pipe")
+SET (TARGET_SIGNAL_ALRM, 14, "SIGALRM", "Alarm clock")
+SET (TARGET_SIGNAL_TERM, 15, "SIGTERM", "Terminated")
+SET (TARGET_SIGNAL_URG, 16, "SIGURG", "Urgent I/O condition")
+SET (TARGET_SIGNAL_STOP, 17, "SIGSTOP", "Stopped (signal)")
+SET (TARGET_SIGNAL_TSTP, 18, "SIGTSTP", "Stopped (user)")
+SET (TARGET_SIGNAL_CONT, 19, "SIGCONT", "Continued")
+SET (TARGET_SIGNAL_CHLD, 20, "SIGCHLD", "Child status changed")
+SET (TARGET_SIGNAL_TTIN, 21, "SIGTTIN", "Stopped (tty input)")
+SET (TARGET_SIGNAL_TTOU, 22, "SIGTTOU", "Stopped (tty output)")
+SET (TARGET_SIGNAL_IO, 23, "SIGIO", "I/O possible")
+SET (TARGET_SIGNAL_XCPU, 24, "SIGXCPU", "CPU time limit exceeded")
+SET (TARGET_SIGNAL_XFSZ, 25, "SIGXFSZ", "File size limit exceeded")
+SET (TARGET_SIGNAL_VTALRM, 26, "SIGVTALRM", "Virtual timer expired")
+SET (TARGET_SIGNAL_PROF, 27, "SIGPROF", "Profiling timer expired")
+SET (TARGET_SIGNAL_WINCH, 28, "SIGWINCH", "Window size changed")
+SET (TARGET_SIGNAL_LOST, 29, "SIGLOST", "Resource lost")
+SET (TARGET_SIGNAL_USR1, 30, "SIGUSR1", "User defined signal 1")
+SET (TARGET_SIGNAL_USR2, 31, "SIGUSR2", "User defined signal 2")
+SET (TARGET_SIGNAL_PWR, 32, "SIGPWR", "Power fail/restart")
+/* Similar to SIGIO. Perhaps they should have the same number. */
+SET (TARGET_SIGNAL_POLL, 33, "SIGPOLL", "Pollable event occurred")
+SET (TARGET_SIGNAL_WIND, 34, "SIGWIND", "SIGWIND")
+SET (TARGET_SIGNAL_PHONE, 35, "SIGPHONE", "SIGPHONE")
+SET (TARGET_SIGNAL_WAITING, 36, "SIGWAITING", "Process's LWPs are blocked")
+SET (TARGET_SIGNAL_LWP, 37, "SIGLWP", "Signal LWP")
+SET (TARGET_SIGNAL_DANGER, 38, "SIGDANGER", "Swap space dangerously low")
+SET (TARGET_SIGNAL_GRANT, 39, "SIGGRANT", "Monitor mode granted")
+SET (TARGET_SIGNAL_RETRACT, 40, "SIGRETRACT",
+ "Need to relinquish monitor mode")
+SET (TARGET_SIGNAL_MSG, 41, "SIGMSG", "Monitor mode data available")
+SET (TARGET_SIGNAL_SOUND, 42, "SIGSOUND", "Sound completed")
+SET (TARGET_SIGNAL_SAK, 43, "SIGSAK", "Secure attention")
+SET (TARGET_SIGNAL_PRIO, 44, "SIGPRIO", "SIGPRIO")
+SET (TARGET_SIGNAL_REALTIME_33, 45, "SIG33", "Real-time event 33")
+SET (TARGET_SIGNAL_REALTIME_34, 46, "SIG34", "Real-time event 34")
+SET (TARGET_SIGNAL_REALTIME_35, 47, "SIG35", "Real-time event 35")
+SET (TARGET_SIGNAL_REALTIME_36, 48, "SIG36", "Real-time event 36")
+SET (TARGET_SIGNAL_REALTIME_37, 49, "SIG37", "Real-time event 37")
+SET (TARGET_SIGNAL_REALTIME_38, 50, "SIG38", "Real-time event 38")
+SET (TARGET_SIGNAL_REALTIME_39, 51, "SIG39", "Real-time event 39")
+SET (TARGET_SIGNAL_REALTIME_40, 52, "SIG40", "Real-time event 40")
+SET (TARGET_SIGNAL_REALTIME_41, 53, "SIG41", "Real-time event 41")
+SET (TARGET_SIGNAL_REALTIME_42, 54, "SIG42", "Real-time event 42")
+SET (TARGET_SIGNAL_REALTIME_43, 55, "SIG43", "Real-time event 43")
+SET (TARGET_SIGNAL_REALTIME_44, 56, "SIG44", "Real-time event 44")
+SET (TARGET_SIGNAL_REALTIME_45, 57, "SIG45", "Real-time event 45")
+SET (TARGET_SIGNAL_REALTIME_46, 58, "SIG46", "Real-time event 46")
+SET (TARGET_SIGNAL_REALTIME_47, 59, "SIG47", "Real-time event 47")
+SET (TARGET_SIGNAL_REALTIME_48, 60, "SIG48", "Real-time event 48")
+SET (TARGET_SIGNAL_REALTIME_49, 61, "SIG49", "Real-time event 49")
+SET (TARGET_SIGNAL_REALTIME_50, 62, "SIG50", "Real-time event 50")
+SET (TARGET_SIGNAL_REALTIME_51, 63, "SIG51", "Real-time event 51")
+SET (TARGET_SIGNAL_REALTIME_52, 64, "SIG52", "Real-time event 52")
+SET (TARGET_SIGNAL_REALTIME_53, 65, "SIG53", "Real-time event 53")
+SET (TARGET_SIGNAL_REALTIME_54, 66, "SIG54", "Real-time event 54")
+SET (TARGET_SIGNAL_REALTIME_55, 67, "SIG55", "Real-time event 55")
+SET (TARGET_SIGNAL_REALTIME_56, 68, "SIG56", "Real-time event 56")
+SET (TARGET_SIGNAL_REALTIME_57, 69, "SIG57", "Real-time event 57")
+SET (TARGET_SIGNAL_REALTIME_58, 70, "SIG58", "Real-time event 58")
+SET (TARGET_SIGNAL_REALTIME_59, 71, "SIG59", "Real-time event 59")
+SET (TARGET_SIGNAL_REALTIME_60, 72, "SIG60", "Real-time event 60")
+SET (TARGET_SIGNAL_REALTIME_61, 73, "SIG61", "Real-time event 61")
+SET (TARGET_SIGNAL_REALTIME_62, 74, "SIG62", "Real-time event 62")
+SET (TARGET_SIGNAL_REALTIME_63, 75, "SIG63", "Real-time event 63")
+
+/* Used internally by Solaris threads. See signal(5) on Solaris. */
+SET (TARGET_SIGNAL_CANCEL, 76, "SIGCANCEL", "LWP internal signal")
+
+/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
+ GNU/Linux does, and we can't disturb the numbering, since it's
+ part of the remote protocol. Note that in some GDB's
+ TARGET_SIGNAL_REALTIME_32 is number 76. */
+ANY (TARGET_SIGNAL_REALTIME_32, "SIG32", "Real-time event 32")
+/* Yet another pain, IRIX 6 has SIG64. */
+ANY (TARGET_SIGNAL_REALTIME_64, "SIG64", "Real-time event 64")
+/* Yet another pain, GNU/Linux MIPS might go up to 128. */
+ANY (TARGET_SIGNAL_REALTIME_65, "SIG65", "Real-time event 65")
+ANY (TARGET_SIGNAL_REALTIME_66, "SIG66", "Real-time event 66")
+ANY (TARGET_SIGNAL_REALTIME_67, "SIG67", "Real-time event 67")
+ANY (TARGET_SIGNAL_REALTIME_68, "SIG68", "Real-time event 68")
+ANY (TARGET_SIGNAL_REALTIME_69, "SIG69", "Real-time event 69")
+ANY (TARGET_SIGNAL_REALTIME_70, "SIG70", "Real-time event 70")
+ANY (TARGET_SIGNAL_REALTIME_71, "SIG71", "Real-time event 71")
+ANY (TARGET_SIGNAL_REALTIME_72, "SIG72", "Real-time event 72")
+ANY (TARGET_SIGNAL_REALTIME_73, "SIG73", "Real-time event 73")
+ANY (TARGET_SIGNAL_REALTIME_74, "SIG74", "Real-time event 74")
+ANY (TARGET_SIGNAL_REALTIME_75, "SIG75", "Real-time event 75")
+ANY (TARGET_SIGNAL_REALTIME_76, "SIG76", "Real-time event 76")
+ANY (TARGET_SIGNAL_REALTIME_77, "SIG77", "Real-time event 77")
+ANY (TARGET_SIGNAL_REALTIME_78, "SIG78", "Real-time event 78")
+ANY (TARGET_SIGNAL_REALTIME_79, "SIG79", "Real-time event 79")
+ANY (TARGET_SIGNAL_REALTIME_80, "SIG80", "Real-time event 80")
+ANY (TARGET_SIGNAL_REALTIME_81, "SIG81", "Real-time event 81")
+ANY (TARGET_SIGNAL_REALTIME_82, "SIG82", "Real-time event 82")
+ANY (TARGET_SIGNAL_REALTIME_83, "SIG83", "Real-time event 83")
+ANY (TARGET_SIGNAL_REALTIME_84, "SIG84", "Real-time event 84")
+ANY (TARGET_SIGNAL_REALTIME_85, "SIG85", "Real-time event 85")
+ANY (TARGET_SIGNAL_REALTIME_86, "SIG86", "Real-time event 86")
+ANY (TARGET_SIGNAL_REALTIME_87, "SIG87", "Real-time event 87")
+ANY (TARGET_SIGNAL_REALTIME_88, "SIG88", "Real-time event 88")
+ANY (TARGET_SIGNAL_REALTIME_89, "SIG89", "Real-time event 89")
+ANY (TARGET_SIGNAL_REALTIME_90, "SIG90", "Real-time event 90")
+ANY (TARGET_SIGNAL_REALTIME_91, "SIG91", "Real-time event 91")
+ANY (TARGET_SIGNAL_REALTIME_92, "SIG92", "Real-time event 92")
+ANY (TARGET_SIGNAL_REALTIME_93, "SIG93", "Real-time event 93")
+ANY (TARGET_SIGNAL_REALTIME_94, "SIG94", "Real-time event 94")
+ANY (TARGET_SIGNAL_REALTIME_95, "SIG95", "Real-time event 95")
+ANY (TARGET_SIGNAL_REALTIME_96, "SIG96", "Real-time event 96")
+ANY (TARGET_SIGNAL_REALTIME_97, "SIG97", "Real-time event 97")
+ANY (TARGET_SIGNAL_REALTIME_98, "SIG98", "Real-time event 98")
+ANY (TARGET_SIGNAL_REALTIME_99, "SIG99", "Real-time event 99")
+ANY (TARGET_SIGNAL_REALTIME_100, "SIG100", "Real-time event 100")
+ANY (TARGET_SIGNAL_REALTIME_101, "SIG101", "Real-time event 101")
+ANY (TARGET_SIGNAL_REALTIME_102, "SIG102", "Real-time event 102")
+ANY (TARGET_SIGNAL_REALTIME_103, "SIG103", "Real-time event 103")
+ANY (TARGET_SIGNAL_REALTIME_104, "SIG104", "Real-time event 104")
+ANY (TARGET_SIGNAL_REALTIME_105, "SIG105", "Real-time event 105")
+ANY (TARGET_SIGNAL_REALTIME_106, "SIG106", "Real-time event 106")
+ANY (TARGET_SIGNAL_REALTIME_107, "SIG107", "Real-time event 107")
+ANY (TARGET_SIGNAL_REALTIME_108, "SIG108", "Real-time event 108")
+ANY (TARGET_SIGNAL_REALTIME_109, "SIG109", "Real-time event 109")
+ANY (TARGET_SIGNAL_REALTIME_110, "SIG110", "Real-time event 110")
+ANY (TARGET_SIGNAL_REALTIME_111, "SIG111", "Real-time event 111")
+ANY (TARGET_SIGNAL_REALTIME_112, "SIG112", "Real-time event 112")
+ANY (TARGET_SIGNAL_REALTIME_113, "SIG113", "Real-time event 113")
+ANY (TARGET_SIGNAL_REALTIME_114, "SIG114", "Real-time event 114")
+ANY (TARGET_SIGNAL_REALTIME_115, "SIG115", "Real-time event 115")
+ANY (TARGET_SIGNAL_REALTIME_116, "SIG116", "Real-time event 116")
+ANY (TARGET_SIGNAL_REALTIME_117, "SIG117", "Real-time event 117")
+ANY (TARGET_SIGNAL_REALTIME_118, "SIG118", "Real-time event 118")
+ANY (TARGET_SIGNAL_REALTIME_119, "SIG119", "Real-time event 119")
+ANY (TARGET_SIGNAL_REALTIME_120, "SIG120", "Real-time event 120")
+ANY (TARGET_SIGNAL_REALTIME_121, "SIG121", "Real-time event 121")
+ANY (TARGET_SIGNAL_REALTIME_122, "SIG122", "Real-time event 122")
+ANY (TARGET_SIGNAL_REALTIME_123, "SIG123", "Real-time event 123")
+ANY (TARGET_SIGNAL_REALTIME_124, "SIG124", "Real-time event 124")
+ANY (TARGET_SIGNAL_REALTIME_125, "SIG125", "Real-time event 125")
+ANY (TARGET_SIGNAL_REALTIME_126, "SIG126", "Real-time event 126")
+ANY (TARGET_SIGNAL_REALTIME_127, "SIG127", "Real-time event 127")
+
+ANY (TARGET_SIGNAL_INFO, "SIGINFO", "Information request")
+
+/* Some signal we don't know about. */
+ANY (TARGET_SIGNAL_UNKNOWN, NULL, "Unknown signal")
+
+/* Use whatever signal we use when one is not specifically specified
+ (for passing to proceed and so on). */
+ANY (TARGET_SIGNAL_DEFAULT, NULL,
+ "Internal error: printing TARGET_SIGNAL_DEFAULT")
+
+/* Mach exceptions. In versions of GDB before 5.2, these were just before
+ TARGET_SIGNAL_INFO if you were compiling on a Mach host (and missing
+ otherwise). */
+ANY (TARGET_EXC_BAD_ACCESS, "EXC_BAD_ACCESS", "Could not access memory")
+ANY (TARGET_EXC_BAD_INSTRUCTION, "EXC_BAD_INSTRUCTION",
+ "Illegal instruction/operand")
+ANY (TARGET_EXC_ARITHMETIC, "EXC_ARITHMETIC", "Arithmetic exception")
+ANY (TARGET_EXC_EMULATION, "EXC_EMULATION", "Emulation instruction")
+ANY (TARGET_EXC_SOFTWARE, "EXC_SOFTWARE", "Software generated exception")
+ANY (TARGET_EXC_BREAKPOINT, "EXC_BREAKPOINT", "Breakpoint")
+
+/* If you are adding a new signal, add it just above this comment. */
+
+/* Last and unused enum value, for sizing arrays, etc. */
+ANY (TARGET_SIGNAL_LAST, NULL, "TARGET_SIGNAL_MAGIC")
diff --git a/include/gdb/signals.h b/include/gdb/signals.h
index a7eb19ce9..ce8c4ba16 100644
--- a/include/gdb/signals.h
+++ b/include/gdb/signals.h
@@ -51,185 +51,13 @@
enum target_signal
{
- /* Used some places (e.g. stop_signal) to record the concept that
- there is no signal. */
- TARGET_SIGNAL_0 = 0,
- TARGET_SIGNAL_FIRST = 0,
- TARGET_SIGNAL_HUP = 1,
- TARGET_SIGNAL_INT = 2,
- TARGET_SIGNAL_QUIT = 3,
- TARGET_SIGNAL_ILL = 4,
- TARGET_SIGNAL_TRAP = 5,
- TARGET_SIGNAL_ABRT = 6,
- TARGET_SIGNAL_EMT = 7,
- TARGET_SIGNAL_FPE = 8,
- TARGET_SIGNAL_KILL = 9,
- TARGET_SIGNAL_BUS = 10,
- TARGET_SIGNAL_SEGV = 11,
- TARGET_SIGNAL_SYS = 12,
- TARGET_SIGNAL_PIPE = 13,
- TARGET_SIGNAL_ALRM = 14,
- TARGET_SIGNAL_TERM = 15,
- TARGET_SIGNAL_URG = 16,
- TARGET_SIGNAL_STOP = 17,
- TARGET_SIGNAL_TSTP = 18,
- TARGET_SIGNAL_CONT = 19,
- TARGET_SIGNAL_CHLD = 20,
- TARGET_SIGNAL_TTIN = 21,
- TARGET_SIGNAL_TTOU = 22,
- TARGET_SIGNAL_IO = 23,
- TARGET_SIGNAL_XCPU = 24,
- TARGET_SIGNAL_XFSZ = 25,
- TARGET_SIGNAL_VTALRM = 26,
- TARGET_SIGNAL_PROF = 27,
- TARGET_SIGNAL_WINCH = 28,
- TARGET_SIGNAL_LOST = 29,
- TARGET_SIGNAL_USR1 = 30,
- TARGET_SIGNAL_USR2 = 31,
- TARGET_SIGNAL_PWR = 32,
- /* Similar to SIGIO. Perhaps they should have the same number. */
- TARGET_SIGNAL_POLL = 33,
- TARGET_SIGNAL_WIND = 34,
- TARGET_SIGNAL_PHONE = 35,
- TARGET_SIGNAL_WAITING = 36,
- TARGET_SIGNAL_LWP = 37,
- TARGET_SIGNAL_DANGER = 38,
- TARGET_SIGNAL_GRANT = 39,
- TARGET_SIGNAL_RETRACT = 40,
- TARGET_SIGNAL_MSG = 41,
- TARGET_SIGNAL_SOUND = 42,
- TARGET_SIGNAL_SAK = 43,
- TARGET_SIGNAL_PRIO = 44,
- TARGET_SIGNAL_REALTIME_33 = 45,
- TARGET_SIGNAL_REALTIME_34 = 46,
- TARGET_SIGNAL_REALTIME_35 = 47,
- TARGET_SIGNAL_REALTIME_36 = 48,
- TARGET_SIGNAL_REALTIME_37 = 49,
- TARGET_SIGNAL_REALTIME_38 = 50,
- TARGET_SIGNAL_REALTIME_39 = 51,
- TARGET_SIGNAL_REALTIME_40 = 52,
- TARGET_SIGNAL_REALTIME_41 = 53,
- TARGET_SIGNAL_REALTIME_42 = 54,
- TARGET_SIGNAL_REALTIME_43 = 55,
- TARGET_SIGNAL_REALTIME_44 = 56,
- TARGET_SIGNAL_REALTIME_45 = 57,
- TARGET_SIGNAL_REALTIME_46 = 58,
- TARGET_SIGNAL_REALTIME_47 = 59,
- TARGET_SIGNAL_REALTIME_48 = 60,
- TARGET_SIGNAL_REALTIME_49 = 61,
- TARGET_SIGNAL_REALTIME_50 = 62,
- TARGET_SIGNAL_REALTIME_51 = 63,
- TARGET_SIGNAL_REALTIME_52 = 64,
- TARGET_SIGNAL_REALTIME_53 = 65,
- TARGET_SIGNAL_REALTIME_54 = 66,
- TARGET_SIGNAL_REALTIME_55 = 67,
- TARGET_SIGNAL_REALTIME_56 = 68,
- TARGET_SIGNAL_REALTIME_57 = 69,
- TARGET_SIGNAL_REALTIME_58 = 70,
- TARGET_SIGNAL_REALTIME_59 = 71,
- TARGET_SIGNAL_REALTIME_60 = 72,
- TARGET_SIGNAL_REALTIME_61 = 73,
- TARGET_SIGNAL_REALTIME_62 = 74,
- TARGET_SIGNAL_REALTIME_63 = 75,
-
- /* Used internally by Solaris threads. See signal(5) on Solaris. */
- TARGET_SIGNAL_CANCEL = 76,
-
- /* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
- GNU/Linux does, and we can't disturb the numbering, since it's
- part of the remote protocol. Note that in some GDB's
- TARGET_SIGNAL_REALTIME_32 is number 76. */
- TARGET_SIGNAL_REALTIME_32,
- /* Yet another pain, IRIX 6 has SIG64. */
- TARGET_SIGNAL_REALTIME_64,
- /* Yet another pain, GNU/Linux MIPS might go up to 128. */
- TARGET_SIGNAL_REALTIME_65,
- TARGET_SIGNAL_REALTIME_66,
- TARGET_SIGNAL_REALTIME_67,
- TARGET_SIGNAL_REALTIME_68,
- TARGET_SIGNAL_REALTIME_69,
- TARGET_SIGNAL_REALTIME_70,
- TARGET_SIGNAL_REALTIME_71,
- TARGET_SIGNAL_REALTIME_72,
- TARGET_SIGNAL_REALTIME_73,
- TARGET_SIGNAL_REALTIME_74,
- TARGET_SIGNAL_REALTIME_75,
- TARGET_SIGNAL_REALTIME_76,
- TARGET_SIGNAL_REALTIME_77,
- TARGET_SIGNAL_REALTIME_78,
- TARGET_SIGNAL_REALTIME_79,
- TARGET_SIGNAL_REALTIME_80,
- TARGET_SIGNAL_REALTIME_81,
- TARGET_SIGNAL_REALTIME_82,
- TARGET_SIGNAL_REALTIME_83,
- TARGET_SIGNAL_REALTIME_84,
- TARGET_SIGNAL_REALTIME_85,
- TARGET_SIGNAL_REALTIME_86,
- TARGET_SIGNAL_REALTIME_87,
- TARGET_SIGNAL_REALTIME_88,
- TARGET_SIGNAL_REALTIME_89,
- TARGET_SIGNAL_REALTIME_90,
- TARGET_SIGNAL_REALTIME_91,
- TARGET_SIGNAL_REALTIME_92,
- TARGET_SIGNAL_REALTIME_93,
- TARGET_SIGNAL_REALTIME_94,
- TARGET_SIGNAL_REALTIME_95,
- TARGET_SIGNAL_REALTIME_96,
- TARGET_SIGNAL_REALTIME_97,
- TARGET_SIGNAL_REALTIME_98,
- TARGET_SIGNAL_REALTIME_99,
- TARGET_SIGNAL_REALTIME_100,
- TARGET_SIGNAL_REALTIME_101,
- TARGET_SIGNAL_REALTIME_102,
- TARGET_SIGNAL_REALTIME_103,
- TARGET_SIGNAL_REALTIME_104,
- TARGET_SIGNAL_REALTIME_105,
- TARGET_SIGNAL_REALTIME_106,
- TARGET_SIGNAL_REALTIME_107,
- TARGET_SIGNAL_REALTIME_108,
- TARGET_SIGNAL_REALTIME_109,
- TARGET_SIGNAL_REALTIME_110,
- TARGET_SIGNAL_REALTIME_111,
- TARGET_SIGNAL_REALTIME_112,
- TARGET_SIGNAL_REALTIME_113,
- TARGET_SIGNAL_REALTIME_114,
- TARGET_SIGNAL_REALTIME_115,
- TARGET_SIGNAL_REALTIME_116,
- TARGET_SIGNAL_REALTIME_117,
- TARGET_SIGNAL_REALTIME_118,
- TARGET_SIGNAL_REALTIME_119,
- TARGET_SIGNAL_REALTIME_120,
- TARGET_SIGNAL_REALTIME_121,
- TARGET_SIGNAL_REALTIME_122,
- TARGET_SIGNAL_REALTIME_123,
- TARGET_SIGNAL_REALTIME_124,
- TARGET_SIGNAL_REALTIME_125,
- TARGET_SIGNAL_REALTIME_126,
- TARGET_SIGNAL_REALTIME_127,
-
- TARGET_SIGNAL_INFO,
-
- /* Some signal we don't know about. */
- TARGET_SIGNAL_UNKNOWN,
-
- /* Use whatever signal we use when one is not specifically specified
- (for passing to proceed and so on). */
- TARGET_SIGNAL_DEFAULT,
-
- /* Mach exceptions. In versions of GDB before 5.2, these were just before
- TARGET_SIGNAL_INFO if you were compiling on a Mach host (and missing
- otherwise). */
- TARGET_EXC_BAD_ACCESS,
- TARGET_EXC_BAD_INSTRUCTION,
- TARGET_EXC_ARITHMETIC,
- TARGET_EXC_EMULATION,
- TARGET_EXC_SOFTWARE,
- TARGET_EXC_BREAKPOINT,
-
- /* If you are adding a new signal, add it just above this comment. */
-
- /* Last and unused enum value, for sizing arrays, etc. */
- TARGET_SIGNAL_LAST
+#define SET(symbol, constant, name, string) \
+ symbol = constant,
+#define ANY(symbol, name, string) \
+ symbol,
+#include "gdb/signals.def"
+#undef ANY
+#undef SET
};
#endif /* #ifndef GDB_SIGNALS_H */
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index aa09a3a48..de977c5b3 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,30 @@
+2010-07-29 DJ Delorie <dj@redhat.com>
+
+ * rx.h (RX_Operand_Type): Add TwoReg.
+ (RX_Opcode_ID): Remove ediv and ediv2.
+
+2010-07-27 DJ Delorie <dj@redhat.com>
+
+ * rx.h (RX_Opcode_ID): Add nop2 and nop3 for statistics.
+
+2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
+ Ina Pandit <ina.pandit@kpitcummins.com>
+
+ * v850.h: Define PROCESSOR_MASK, PROCESSOR_OPTION_EXTENSION,
+ PROCESSOR_OPTION_ALIAS, PROCESSOR_V850E2, PROCESSOR_V850E2V3 and
+ PROCESSOR_V850E2_ALL.
+ Remove PROCESSOR_V850EA support.
+ (v850_operand): Define V850_OPERAND_EP, V850_OPERAND_FLOAT_CC,
+ V850_OPERAND_VREG, V850E_IMMEDIATE16, V850E_IMMEDIATE16HI,
+ V850E_IMMEDIATE23, V850E_IMMEDIATE32, V850_OPERAND_SIGNED,
+ V850_OPERAND_DISP, V850_PCREL, V850_REG_EVEN, V850E_PUSH_POP,
+ V850_NOT_IMM0, V850_NOT_SA, V850_OPERAND_BANG and
+ V850_OPERAND_PERCENT.
+ Update V850_OPERAND_SRG, V850_OPERAND_CC, V850_OPERAND_RELAX and
+ V850_NOT_R0.
+ Remove V850_OPERAND_SIGNED, V850_OPERAND_EP, V850_OPERAND_DISP
+ and V850E_PUSH_POP
+
2010-07-06 Maciej W. Rozycki <macro@codesourcery.com>
* mips.h (MIPS16_INSN_UNCOND_BRANCH): New macro.
diff --git a/include/opcode/rx.h b/include/opcode/rx.h
index 54aadf4a7..aa85fe4a9 100644
--- a/include/opcode/rx.h
+++ b/include/opcode/rx.h
@@ -47,6 +47,7 @@ typedef enum
RX_Operand_Predec, /* [-Rn] */
RX_Operand_Condition, /* eq, gtu, etc */
RX_Operand_Flag, /* [UIOSZC] */
+ RX_Operand_TwoReg, /* [Rn + scale*R2] */
} RX_Operand_Type;
typedef enum
@@ -57,7 +58,6 @@ typedef enum
RXO_movbir, /* [s,s2] = d (signed) */
RXO_pushm, /* s..s2 */
RXO_popm, /* s..s2 */
- RXO_pusha, /* &s */
RXO_xchg, /* s <-> d */
RXO_stcc, /* d = s if cond(s2) */
RXO_rtsd, /* rtsd, 1=imm, 2-0 = reg if reg type */
@@ -83,8 +83,6 @@ typedef enum
RXO_min, /* d = min(d,s) */
RXO_emul, /* d:64 = d:32 * s */
RXO_emulu, /* d:64 = d:32 * s (unsigned) */
- RXO_ediv, /* d:64 / s; d = quot, d+1 = rem */
- RXO_edivu, /* d:64 / s; d = quot, d+1 = rem */
RXO_rolc, /* d <<= 1 through carry */
RXO_rorc, /* d >>= 1 through carry*/
@@ -98,6 +96,8 @@ typedef enum
RXO_jsrrel, /* pc += d */
RXO_rts,
RXO_nop,
+ RXO_nop2,
+ RXO_nop3,
RXO_scmpu,
RXO_smovu,
diff --git a/include/opcode/v850.h b/include/opcode/v850.h
index fcf96310f..590330591 100644
--- a/include/opcode/v850.h
+++ b/include/opcode/v850.h
@@ -55,12 +55,18 @@ struct v850_opcode
};
/* Values for the processors field in the v850_opcode structure. */
+#define PROCESSOR_MASK 0x1f
+#define PROCESSOR_OPTION_EXTENSION (1 << 5) /* Enable extension opcodes. */
+#define PROCESSOR_OPTION_ALIAS (1 << 6) /* Enable alias opcodes. */
#define PROCESSOR_V850 (1 << 0) /* Just the V850. */
-#define PROCESSOR_ALL -1 /* Any processor. */
-#define PROCESSOR_V850E (1 << 1) /* Just the V850E. */
-#define PROCESSOR_NOT_V850 (~ PROCESSOR_V850) /* Any processor except the V850. */
-#define PROCESSOR_V850EA (1 << 2) /* Just the V850EA. */
-#define PROCESSOR_V850E1 (1 << 3) /* Just the V850E1. */
+#define PROCESSOR_ALL PROCESSOR_MASK /* Any processor. */
+#define PROCESSOR_V850E (1 << 1) /* Just the V850E. */
+#define PROCESSOR_NOT_V850 (PROCESSOR_ALL & (~ PROCESSOR_V850)) /* Any processor except the V850. */
+#define PROCESSOR_V850E1 (1 << 2) /* Just the V850E1. */
+#define PROCESSOR_V850E2 (1 << 3) /* Just the V850E2. */
+#define PROCESSOR_V850E2V3 (1 << 4) /* Just the V850E2V3. */
+#define PROCESSOR_V850E2_ALL (PROCESSOR_V850E2 | PROCESSOR_V850E2V3) /* V850E2 & V850E2V3. */
+#define SET_PROCESSOR_MASK(mask,set) ((mask) = ((mask) & ~PROCESSOR_MASK) | (set))
/* The table itself is sorted by major opcode number, and is otherwise
in the order in which the disassembler should consider
@@ -74,7 +80,8 @@ extern const int v850_num_opcodes;
struct v850_operand
{
/* The number of bits in the operand. */
- /* If this value is -1 then the operand's bits are in a discontinous distribution in the instruction. */
+ /* If this value is -1 then the operand's bits are in a discontinous
+ distribution in the instruction. */
int bits;
/* (bits >= 0): How far the operand is left shifted in the instruction. */
@@ -120,6 +127,8 @@ struct v850_operand
/* One bit syntax flags. */
int flags;
+
+ int default_reloc;
};
/* Elements in the table are retrieved by indexing with values from
@@ -129,39 +138,70 @@ extern const struct v850_operand v850_operands[];
/* Values defined for the flags field of a struct v850_operand. */
-/* This operand names a general purpose register */
+/* This operand names a general purpose register. */
#define V850_OPERAND_REG 0x01
-/* This operand names a system register */
-#define V850_OPERAND_SRG 0x02
+/* This operand is the ep register. */
+#define V850_OPERAND_EP 0x02
-/* This operand names a condition code used in the setf instruction */
-#define V850_OPERAND_CC 0x04
+/* This operand names a system register. */
+#define V850_OPERAND_SRG 0x04
-/* This operand takes signed values */
-#define V850_OPERAND_SIGNED 0x08
+/* Prologue eilogue type instruction, V850E specific. */
+#define V850E_OPERAND_REG_LIST 0x08
-/* This operand is the ep register. */
-#define V850_OPERAND_EP 0x10
+/* This operand names a condition code used in the setf instruction. */
+#define V850_OPERAND_CC 0x10
-/* This operand is a PC displacement */
-#define V850_OPERAND_DISP 0x20
+#define V850_OPERAND_FLOAT_CC 0x20
-/* This is a relaxable operand. Only used for D9->D22 branch relaxing
- right now. We may need others in the future (or maybe handle them like
- promoted operands on the mn10300?) */
-#define V850_OPERAND_RELAX 0x40
+/* This operand names a vector purpose register. */
+#define V850_OPERAND_VREG 0x40
-/* The register specified must not be r0 */
-#define V850_NOT_R0 0x80
+/* 16 bit immediate follows instruction, V850E specific. */
+#define V850E_IMMEDIATE16 0x80
-/* push/pop type instruction, V850E specific. */
-#define V850E_PUSH_POP 0x100
+/* hi16 bit immediate follows instruction, V850E specific. */
+#define V850E_IMMEDIATE16HI 0x100
-/* 16 bit immediate follows instruction, V850E specific. */
-#define V850E_IMMEDIATE16 0x200
+/* 23 bit immediate follows instruction, V850E specific. */
+#define V850E_IMMEDIATE23 0x200
/* 32 bit immediate follows instruction, V850E specific. */
#define V850E_IMMEDIATE32 0x400
+/* This is a relaxable operand. Only used for D9->D22 branch relaxing
+ right now. We may need others in the future (or maybe handle them like
+ promoted operands on the mn10300?). */
+#define V850_OPERAND_RELAX 0x800
+
+/* This operand takes signed values. */
+#define V850_OPERAND_SIGNED 0x1000
+
+/* This operand is a displacement. */
+#define V850_OPERAND_DISP 0x2000
+
+/* This operand is a PC displacement. */
+#define V850_PCREL 0x4000
+
+/* The register specified must be even number. */
+#define V850_REG_EVEN 0x8000
+
+/* The register specified must not be r0. */
+#define V850_NOT_R0 0x20000
+
+/* The register specified must not be 0. */
+#define V850_NOT_IMM0 0x40000
+
+/* The condition code must not be SA CONDITION. */
+#define V850_NOT_SA 0x80000
+
+/* The operand has '!' prefix. */
+#define V850_OPERAND_BANG 0x100000
+
+/* The operand has '%' prefix. */
+#define V850_OPERAND_PERCENT 0x200000
+
+extern int v850_msg_is_out_of_range (const char * msg);
+
#endif /* V850_H */