ubsan: score: left shift of negative value
[deliverable/binutils-gdb.git] / gdb / regformats / regdef.h
CommitLineData
3cf384d4 1/* Register protocol definition structures for the GNU Debugger
b811d2c2 2 Copyright (C) 2001-2020 Free Software Foundation, Inc.
3cf384d4
DJ
3
4 This file is part of GDB.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
a9762ec7 8 the Free Software Foundation; either version 3 of the License, or
3cf384d4
DJ
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
a9762ec7 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
3cf384d4 18
1a5c2598
TT
19#ifndef REGFORMATS_REGDEF_H
20#define REGFORMATS_REGDEF_H
0a30fbc4 21
3cf384d4
DJ
22struct reg
23{
ea3e7d71 24 reg (int _offset)
5cd3e386 25 : name (""),
ea3e7d71 26 offset (_offset),
5cd3e386
AH
27 size (0)
28 {}
29
ea3e7d71 30 reg (const char *_name, int _offset, int _size)
5cd3e386 31 : name (_name),
ea3e7d71 32 offset (_offset),
5cd3e386
AH
33 size (_size)
34 {}
35
3cf384d4
DJ
36 /* The name of this register - NULL for pad entries. */
37 const char *name;
38
db253027
DJ
39 /* At the moment, both of the following bit counts must be divisible
40 by eight (to match the representation as two hex digits) and divisible
41 by the size of a byte (to match the layout of each register in
42 memory). */
43
3cf384d4
DJ
44 /* The offset (in bits) of the value of this register in the buffer. */
45 int offset;
46
47 /* The size (in bits) of the value of this register, as transmitted. */
48 int size;
0a188386
YQ
49
50 bool operator== (const reg &other) const
51 {
52 return (strcmp (name, other.name) == 0
53 && offset == other.offset
54 && size == other.size);
55 }
56
57 bool operator!= (const reg &other) const
58 {
59 return !(*this == other);
60 }
3cf384d4 61};
0a30fbc4 62
1a5c2598 63#endif /* REGFORMATS_REGDEF_H */
This page took 1.752062 seconds and 4 git commands to generate.