8sa1-binutils-gdb/gdb/python
Andrew Burgess f7306dac19 gdb/python: Reuse gdb.RegisterDescriptor objects where possible
Instead of having the gdb.RegisterDescriptorIterator creating new
gdb.RegisterDescriptor objects for each regnum, instead cache
gdb.RegisterDescriptor objects on the gdbarch object and reuse these.

This means that for every gdbarch/regnum pair there is a single unique
gdb.RegisterDescriptor, this feels like a neater implementation than
the existing one.

It is possible for a user to see (in Python code) that the descriptors
are now identical, but as the descriptors are read-only this should
make no real difference.

There should be no other user visible changes.

gdb/ChangeLog:

	* python/py-registers.c (gdbpy_register_object_data): New static
	global.
	(gdbpy_register_object_data_init): New function.
	(gdbpy_new_register_descriptor): Renamed to...
	(gdbpy_get_register_descriptor): ...this, and update to reuse
	existing register descriptors where possible.
	(gdbpy_register_descriptor_iter_next): Update.
	(gdbpy_initialize_registers): Register new gdbarch data.

gdb/testsuite/ChangeLog:

	* gdb.python/py-arch-reg-names.exp: Additional tests.
2020-07-21 21:57:08 +01:00
..
lib/gdb
py-all-events.def
py-arch.c gdb/python: New method to access list of register groups 2020-07-06 15:06:06 +01:00
py-auto-load.c default-args: allow to define default arguments for aliases 2020-06-22 21:14:13 +02:00
py-block.c
py-bpevent.c
py-breakpoint.c
py-cmd.c default-args: allow to define default arguments for aliases 2020-06-22 21:14:13 +02:00
py-continueevent.c
py-event-types.def
py-event.c
py-event.h
py-events.h
py-evtregistry.c
py-evts.c
py-exitedevent.c
py-finishbreakpoint.c gdb: remove TYPE_CODE macro 2020-05-14 13:46:38 -04:00
py-frame.c
py-framefilter.c gdb: remove TYPE_CODE macro 2020-05-14 13:46:38 -04:00
py-function.c
py-gdb-readline.c
py-inferior.c
py-infevents.c
py-infthread.c
py-instruction.c
py-instruction.h
py-lazy-string.c gdb: remove TYPE_CODE macro 2020-05-14 13:46:38 -04:00
py-linetable.c
py-newobjfileevent.c
py-objfile.c
py-param.c default-args: allow to define default arguments for aliases 2020-06-22 21:14:13 +02:00
py-prettyprint.c
py-progspace.c
py-record-btrace.c
py-record-btrace.h
py-record-full.c
py-record-full.h
py-record.c
py-record.h
py-ref.h
py-registers.c gdb/python: Reuse gdb.RegisterDescriptor objects where possible 2020-07-21 21:57:08 +01:00
py-signalevent.c
py-stopevent.c
py-stopevent.h
py-symbol.c
py-symtab.c
py-threadevent.c
py-tui.c Fix crash when TUI window creation fails 2020-06-16 17:48:38 -06:00
py-type.c gdb: make type::bounds work for array and string types 2020-07-12 23:06:12 -04:00
py-unwind.c gdb/python: Add architecture method to gdb.PendingFrame 2020-07-06 15:06:05 +01:00
py-utils.c
py-value.c gdb: remove TYPE_CODE macro 2020-05-14 13:46:38 -04:00
py-varobj.c
py-xmethods.c gdb: remove TYPE_CODE macro 2020-05-14 13:46:38 -04:00
python-config.py
python-internal.h gdb/python: New method to access list of register groups 2020-07-06 15:06:06 +01:00
python.c gdb/python: Add gdb.Architecture.registers method 2020-07-06 15:06:06 +01:00
python.h