+2016-12-02 Yao Qi <yao.qi@linaro.org>
+ Pedro Alves <palves@redhat.com>
+
+ * aarch64-tdep.c: Include "selftest.h".
+ (abstract_instruction_reader): New class.
+ (instruction_reader): New class.
+ (aarch64_analyze_prologue): Add new parameter reader. Call
+ reader.read instead of read_memory_unsigned_integer.
+ [GDB_SELF_TEST] (instruction_reader_test): New class.
+ (aarch64_analyze_prologue_test): New function.
+ (_initialize_aarch64_tdep) [GDB_SELF_TEST]: Register
+ selftests::aarch64_analyze_prologue_test.
+ * trad-frame.c (trad_frame_cache_zalloc):
+ (trad_frame_alloc_saved_regs): Add a new function.
+ * trad-frame.h (trad_frame_alloc_saved_regs): Declare.
+
+2016-12-01 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * ui-out.c (enum ui_out_table_state): Move to class
+ ui_out_table as ui_out_table::state.
+ (struct ui_out_table): Change to ...
+ (class ui_out_table): ... this.
+ <flag>: Remove.
+ <entry_level>: Rename to ...
+ <m_entry_level>: ... this.
+ <columns>: Rename to ...
+ <m_nr_cols>: ... this.
+ <id>: Rename to ...
+ <m_id>: ... this.
+ <headers>: Rename to ...
+ <m_headers>: ... this.
+ <headers_iterator>: Rename to ...
+ <m_headers_iterator>: ... this.
+ <start_body, append_header, start_row, get_next_header,
+ query_field, current_state, entry_level>: New methods.
+ (struct ui_out) <table>: Change type to unique_ptr to
+ ui_out_table.
+ (append_header_to_list, get_next_header, clear_header_list,
+ clear_table): Remove.
+ (ui_out_table_begin): Instantiate ui_out_table object. Update
+ table check.
+ (ui_out_table_body): Update table check, replace code with call
+ to ui_out_table::start_body.
+ (ui_out_table_end): Update table check, replace manual cleanup
+ with assignment of uiout->table unique_ptr to nullptr.
+ (ui_out_table_header): Update table check, replace call to
+ append_header_to_list with call to append_header method.
+ (ui_out_begin): Remove one table state check, update another.
+ Replace code with call to start_row method.
+ (verify_field): Update table checks.
+ (ui_out_query_field): Update table check, replace code with call
+ to query_field method.
+ (ui_out_new): Remove table initialization code.
+
+2016-12-01 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * ui-out.c (enum ui_out_table_state): New enum.
+ (struct ui_out_table) <body_flag>: Remove field.
+ <state>: New field.
+ (ui_out_table_begin): Replace usages of body_flag with state.
+ (ui_out_table_body): Likewise.
+ (ui_out_table_end): Likewise.
+ (ui_out_table_header): Likewise.
+ (ui_out_begin): Likewise.
+ (verify_field): Likewise.
+ (ui_out_new): Likewise.
+
+2016-12-01 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * ui-out.h (ui_out_begin_ftype): Remove level parameter.
+ (ui_out_end_ftype): Likewise.
+ * ui-out.c (struct ui_out) <level>: Replace field with a method
+ that dynamically computes the result.
+ (current_level): Get vector's back item instead of using
+ uiout->level.
+ (push_level): Make return type void.
+ (pop_level): Make return type void and update access to
+ ui_out::level.
+ (uo_begin): Remove level parameter.
+ (uo_end): Likewise.
+ (ui_out_table_begin): Update access to uiout::level.
+ (ui_out_begin): Don't read return value from push_level, call
+ uiout->level() instead, update call to uo_begin.
+ (ui_out_end): Don't read return value from pop_level, update
+ call to uo_end.
+ (verify_field): Update access to uiout->level.
+ (ui_out_new): Don't initialize ui_out::level, call push_level
+ to push the initial level instead of doing it by hand.
+ * cli-out.c (cli_begin): Remove level parameter.
+ (cli_end): Likewise.
+ * mi/mi-out.c (mi_begin): Likewise.
+ (mi_end): Likewise.
+
+2016-12-01 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * ui-out.c (struct ui_out_level): Replace with ...
+ (class ui_out_level): ... this.
+ (current_level): Update.
+ (push_level): Update.
+ (pop_level): Update.
+ (verify_field): Update.
+ (ui_out_new): Update.
+
+2016-12-01 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * ui-out.c (struct ui_out_hdr): Replace with ...
+ (class ui_out_hdr): ... this.
+ (append_header_to_list): Update.
+ (get_next_header): Update.
+ (ui_out_query_field): Update.
+
2016-12-01 Simon Marchi <simon.marchi@polymtl.ca>
* mi/mi-out.c (mi_table_header): Change char * args to