diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/arch/riscv.h | 13 | ||||
-rw-r--r-- | gdb/riscv-tdep.c | 4 |
3 files changed, 21 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 72c2ee1..306e1a1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2018-11-30 Andrew Burgess <andrew.burgess@embecosm.com> + * arch/riscv.h (riscv_gdb_features::operator==): New. + (riscv_gdb_features::operator!=): New. + * riscv-tdep.c (riscv_gdbarch_init): Make use of the inequality + operator. + +2018-11-30 Andrew Burgess <andrew.burgess@embecosm.com> + * arch/riscv.h (riscv_create_target_description): Make return type const. * arch/riscv.c (riscv_create_target_description): Likewise. diff --git a/gdb/arch/riscv.h b/gdb/arch/riscv.h index ec4d5f3..be41828e 100644 --- a/gdb/arch/riscv.h +++ b/gdb/arch/riscv.h @@ -53,6 +53,19 @@ struct riscv_gdbarch_features this field is true then the hardware floating point abi is in use, and values are passed in f-registers matching the size of FLEN. */ bool hw_float_abi = false; + + /* Equality operator. */ + bool operator== (const struct riscv_gdbarch_features &rhs) const + { + return (xlen == rhs.xlen && flen == rhs.flen + && hw_float_abi == rhs.hw_float_abi); + } + + /* Inequality operator. */ + bool operator!= (const struct riscv_gdbarch_features &rhs) const + { + return !((*this) == rhs); + } }; /* Create and return a target description that is compatible with diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index d66fe5c..30c777d 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -3025,9 +3025,7 @@ riscv_gdbarch_init (struct gdbarch_info info, gdbarch. */ struct gdbarch_tdep *other_tdep = gdbarch_tdep (arches->gdbarch); - if (other_tdep->features.hw_float_abi != features.hw_float_abi - || other_tdep->features.xlen != features.xlen - || other_tdep->features.flen != features.flen) + if (other_tdep->features != features) continue; break; |