From 0510598233b81d63352353ee5127839abefb31a4 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Sun, 19 May 2024 08:23:13 -0500 Subject: [PATCH] generic_sparse_struct: constexpr constructors ta_polygon_converter_transfer: const buf --- holly/ta_fifo_polygon_converter.cpp | 2 +- holly/ta_fifo_polygon_converter.hpp | 2 +- holly/ta_global_parameter.hpp | 168 ++++++------- holly/ta_vertex_parameter.hpp | 372 ++++++++++++++-------------- regs/gen/generic_sparse_struct.py | 2 +- 5 files changed, 273 insertions(+), 273 deletions(-) diff --git a/holly/ta_fifo_polygon_converter.cpp b/holly/ta_fifo_polygon_converter.cpp index 1c671c3..efccdd3 100644 --- a/holly/ta_fifo_polygon_converter.cpp +++ b/holly/ta_fifo_polygon_converter.cpp @@ -54,7 +54,7 @@ void ta_polygon_converter_cont(uint32_t ol_base_offset, (void)_dummy_read; } -void ta_polygon_converter_transfer(volatile uint32_t * buf, uint32_t size) +void ta_polygon_converter_transfer(volatile uint32_t const * const buf, uint32_t size) { /* wait for previous transfer to complete (if any) */ //while ((system.C2DST & C2DST__STATUS) != 0); /* 1 == transfer is in progress */ diff --git a/holly/ta_fifo_polygon_converter.hpp b/holly/ta_fifo_polygon_converter.hpp index dab1fd8..9515830 100644 --- a/holly/ta_fifo_polygon_converter.hpp +++ b/holly/ta_fifo_polygon_converter.hpp @@ -8,7 +8,7 @@ void ta_polygon_converter_init(uint32_t opb_total_size, // for one tile, for all uint32_t tile_height); // in tile units (e.g: (480 / 32)) void ta_polygon_converter_cont(uint32_t ol_base_offset, uint32_t ta_alloc); -void ta_polygon_converter_transfer(volatile uint32_t * buf, uint32_t size); +void ta_polygon_converter_transfer(volatile uint32_t const * const buf, uint32_t size); void ta_wait_opaque_list(); void ta_wait_opaque_modifier_volume_list(); void ta_wait_translucent_list(); diff --git a/holly/ta_global_parameter.hpp b/holly/ta_global_parameter.hpp index ee9162f..d572bfe 100644 --- a/holly/ta_global_parameter.hpp +++ b/holly/ta_global_parameter.hpp @@ -14,8 +14,8 @@ namespace ta_global_parameter { uint32_t _res5; uint32_t _res6; - end_of_list(const uint32_t parameter_control_word - ) + constexpr end_of_list(const uint32_t parameter_control_word + ) : parameter_control_word(parameter_control_word) , _res0(0) , _res1(0) @@ -51,12 +51,12 @@ namespace ta_global_parameter { uint32_t user_clip_x_max; uint32_t user_clip_y_max; - user_tile_clip(const uint32_t parameter_control_word, - const uint32_t user_clip_x_min, - const uint32_t user_clip_y_min, - const uint32_t user_clip_x_max, - const uint32_t user_clip_y_max - ) + constexpr user_tile_clip(const uint32_t parameter_control_word, + const uint32_t user_clip_x_min, + const uint32_t user_clip_y_min, + const uint32_t user_clip_x_max, + const uint32_t user_clip_y_max + ) : parameter_control_word(parameter_control_word) , _res0(0) , _res1(0) @@ -92,13 +92,13 @@ namespace ta_global_parameter { uint32_t bounding_box_x_max; uint32_t bounding_box_y_max; - object_list_set(const uint32_t parameter_control_word, - const uint32_t object_pointer, - const uint32_t bounding_box_x_min, - const uint32_t bounding_box_y_min, - const uint32_t bounding_box_x_max, - const uint32_t bounding_box_y_max - ) + constexpr object_list_set(const uint32_t parameter_control_word, + const uint32_t object_pointer, + const uint32_t bounding_box_x_min, + const uint32_t bounding_box_y_min, + const uint32_t bounding_box_x_max, + const uint32_t bounding_box_y_max + ) : parameter_control_word(parameter_control_word) , object_pointer(object_pointer) , _res0(0) @@ -134,13 +134,13 @@ namespace ta_global_parameter { uint32_t data_size_for_sort_dma; uint32_t next_address_for_sort_dma; - polygon_type_0(const uint32_t parameter_control_word, - const uint32_t isp_tsp_instruction_word, - const uint32_t tsp_instruction_word, - const uint32_t texture_control_word, - const uint32_t data_size_for_sort_dma, - const uint32_t next_address_for_sort_dma - ) + constexpr polygon_type_0(const uint32_t parameter_control_word, + const uint32_t isp_tsp_instruction_word, + const uint32_t tsp_instruction_word, + const uint32_t texture_control_word, + const uint32_t data_size_for_sort_dma, + const uint32_t next_address_for_sort_dma + ) : parameter_control_word(parameter_control_word) , isp_tsp_instruction_word(isp_tsp_instruction_word) , tsp_instruction_word(tsp_instruction_word) @@ -176,15 +176,15 @@ namespace ta_global_parameter { float face_color_g; float face_color_b; - polygon_type_1(const uint32_t parameter_control_word, - const uint32_t isp_tsp_instruction_word, - const uint32_t tsp_instruction_word, - const uint32_t texture_control_word, - const float face_color_alpha, - const float face_color_r, - const float face_color_g, - const float face_color_b - ) + constexpr polygon_type_1(const uint32_t parameter_control_word, + const uint32_t isp_tsp_instruction_word, + const uint32_t tsp_instruction_word, + const uint32_t texture_control_word, + const float face_color_alpha, + const float face_color_r, + const float face_color_g, + const float face_color_b + ) : parameter_control_word(parameter_control_word) , isp_tsp_instruction_word(isp_tsp_instruction_word) , tsp_instruction_word(tsp_instruction_word) @@ -228,21 +228,21 @@ namespace ta_global_parameter { float face_offset_color_g; float face_offset_color_b; - polygon_type_2(const uint32_t parameter_control_word, - const uint32_t isp_tsp_instruction_word, - const uint32_t tsp_instruction_word, - const uint32_t texture_control_word, - const uint32_t data_size_for_sort_dma, - const uint32_t next_address_for_sort_dma, - const float face_color_alpha, - const float face_color_r, - const float face_color_g, - const float face_color_b, - const float face_offset_color_alpha, - const float face_offset_color_r, - const float face_offset_color_g, - const float face_offset_color_b - ) + constexpr polygon_type_2(const uint32_t parameter_control_word, + const uint32_t isp_tsp_instruction_word, + const uint32_t tsp_instruction_word, + const uint32_t texture_control_word, + const uint32_t data_size_for_sort_dma, + const uint32_t next_address_for_sort_dma, + const float face_color_alpha, + const float face_color_r, + const float face_color_g, + const float face_color_b, + const float face_offset_color_alpha, + const float face_offset_color_r, + const float face_offset_color_g, + const float face_offset_color_b + ) : parameter_control_word(parameter_control_word) , isp_tsp_instruction_word(isp_tsp_instruction_word) , tsp_instruction_word(tsp_instruction_word) @@ -294,15 +294,15 @@ namespace ta_global_parameter { uint32_t data_size_for_sort_dma; uint32_t next_address_for_sort_dma; - polygon_type_3(const uint32_t parameter_control_word, - const uint32_t isp_tsp_instruction_word, - const uint32_t tsp_instruction_word_0, - const uint32_t texture_control_word_0, - const uint32_t tsp_instruction_word_1, - const uint32_t texture_control_word_1, - const uint32_t data_size_for_sort_dma, - const uint32_t next_address_for_sort_dma - ) + constexpr polygon_type_3(const uint32_t parameter_control_word, + const uint32_t isp_tsp_instruction_word, + const uint32_t tsp_instruction_word_0, + const uint32_t texture_control_word_0, + const uint32_t tsp_instruction_word_1, + const uint32_t texture_control_word_1, + const uint32_t data_size_for_sort_dma, + const uint32_t next_address_for_sort_dma + ) : parameter_control_word(parameter_control_word) , isp_tsp_instruction_word(isp_tsp_instruction_word) , tsp_instruction_word_0(tsp_instruction_word_0) @@ -346,23 +346,23 @@ namespace ta_global_parameter { float face_color_g_1; float face_color_b_1; - polygon_type_4(const uint32_t parameter_control_word, - const uint32_t isp_tsp_instruction_word, - const uint32_t tsp_instruction_word_0, - const uint32_t texture_control_word_0, - const uint32_t tsp_instruction_word_1, - const uint32_t texture_control_word_1, - const uint32_t data_size_for_sort_dma, - const uint32_t next_address_for_sort_dma, - const float face_color_alpha_0, - const float face_color_r_0, - const float face_color_g_0, - const float face_color_b_0, - const float face_color_alpha_1, - const float face_color_r_1, - const float face_color_g_1, - const float face_color_b_1 - ) + constexpr polygon_type_4(const uint32_t parameter_control_word, + const uint32_t isp_tsp_instruction_word, + const uint32_t tsp_instruction_word_0, + const uint32_t texture_control_word_0, + const uint32_t tsp_instruction_word_1, + const uint32_t texture_control_word_1, + const uint32_t data_size_for_sort_dma, + const uint32_t next_address_for_sort_dma, + const float face_color_alpha_0, + const float face_color_r_0, + const float face_color_g_0, + const float face_color_b_0, + const float face_color_alpha_1, + const float face_color_r_1, + const float face_color_g_1, + const float face_color_b_1 + ) : parameter_control_word(parameter_control_word) , isp_tsp_instruction_word(isp_tsp_instruction_word) , tsp_instruction_word_0(tsp_instruction_word_0) @@ -414,15 +414,15 @@ namespace ta_global_parameter { uint32_t data_size_for_sort_dma; uint32_t next_address_for_sort_dma; - sprite(const uint32_t parameter_control_word, - const uint32_t isp_tsp_instruction_word, - const uint32_t tsp_instruction_word, - const uint32_t texture_control_word, - const uint32_t base_color, - const uint32_t offset_color, - const uint32_t data_size_for_sort_dma, - const uint32_t next_address_for_sort_dma - ) + constexpr sprite(const uint32_t parameter_control_word, + const uint32_t isp_tsp_instruction_word, + const uint32_t tsp_instruction_word, + const uint32_t texture_control_word, + const uint32_t base_color, + const uint32_t offset_color, + const uint32_t data_size_for_sort_dma, + const uint32_t next_address_for_sort_dma + ) : parameter_control_word(parameter_control_word) , isp_tsp_instruction_word(isp_tsp_instruction_word) , tsp_instruction_word(tsp_instruction_word) @@ -458,9 +458,9 @@ namespace ta_global_parameter { uint32_t _res4; uint32_t _res5; - modifier_volume(const uint32_t parameter_control_word, - const uint32_t isp_tsp_instruction_word - ) + constexpr modifier_volume(const uint32_t parameter_control_word, + const uint32_t isp_tsp_instruction_word + ) : parameter_control_word(parameter_control_word) , isp_tsp_instruction_word(isp_tsp_instruction_word) , _res0(0) diff --git a/holly/ta_vertex_parameter.hpp b/holly/ta_vertex_parameter.hpp index 19609b4..f3caea8 100644 --- a/holly/ta_vertex_parameter.hpp +++ b/holly/ta_vertex_parameter.hpp @@ -14,12 +14,12 @@ namespace ta_vertex_parameter { uint32_t base_color; uint32_t _res2; - polygon_type_0(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t base_color - ) + constexpr polygon_type_0(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t base_color + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -55,15 +55,15 @@ namespace ta_vertex_parameter { float base_color_g; float base_color_b; - polygon_type_1(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const float base_color_alpha, - const float base_color_r, - const float base_color_g, - const float base_color_b - ) + constexpr polygon_type_1(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const float base_color_alpha, + const float base_color_r, + const float base_color_g, + const float base_color_b + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -99,12 +99,12 @@ namespace ta_vertex_parameter { float base_intensity; uint32_t _res2; - polygon_type_2(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const float base_intensity - ) + constexpr polygon_type_2(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const float base_intensity + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -140,15 +140,15 @@ namespace ta_vertex_parameter { uint32_t base_color; uint32_t offset_color; - polygon_type_3(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const float u, - const float v, - const uint32_t base_color, - const uint32_t offset_color - ) + constexpr polygon_type_3(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const float u, + const float v, + const uint32_t base_color, + const uint32_t offset_color + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -184,14 +184,14 @@ namespace ta_vertex_parameter { uint32_t base_color; uint32_t offset_color; - polygon_type_4(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t u_v, - const uint32_t base_color, - const uint32_t offset_color - ) + constexpr polygon_type_4(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t u_v, + const uint32_t base_color, + const uint32_t offset_color + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -235,21 +235,21 @@ namespace ta_vertex_parameter { float offset_color_g; float offset_color_b; - polygon_type_5(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const float u, - const float v, - const float base_color_alpha, - const float base_color_r, - const float base_color_g, - const float base_color_b, - const float offset_color_alpha, - const float offset_color_r, - const float offset_color_g, - const float offset_color_b - ) + constexpr polygon_type_5(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const float u, + const float v, + const float base_color_alpha, + const float base_color_r, + const float base_color_g, + const float base_color_b, + const float offset_color_alpha, + const float offset_color_r, + const float offset_color_g, + const float offset_color_b + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -309,20 +309,20 @@ namespace ta_vertex_parameter { float offset_color_g; float offset_color_b; - polygon_type_6(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t u_v, - const float base_color_alpha, - const float base_color_r, - const float base_color_g, - const float base_color_b, - const float offset_color_alpha, - const float offset_color_r, - const float offset_color_g, - const float offset_color_b - ) + constexpr polygon_type_6(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t u_v, + const float base_color_alpha, + const float base_color_r, + const float base_color_g, + const float base_color_b, + const float offset_color_alpha, + const float offset_color_r, + const float offset_color_g, + const float offset_color_b + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -374,15 +374,15 @@ namespace ta_vertex_parameter { float base_intensity; float offset_intensity; - polygon_type_7(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const float u, - const float v, - const float base_intensity, - const float offset_intensity - ) + constexpr polygon_type_7(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const float u, + const float v, + const float base_intensity, + const float offset_intensity + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -418,14 +418,14 @@ namespace ta_vertex_parameter { float base_intensity; float offset_intensity; - polygon_type_8(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t u_v, - const float base_intensity, - const float offset_intensity - ) + constexpr polygon_type_8(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t u_v, + const float base_intensity, + const float offset_intensity + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -461,13 +461,13 @@ namespace ta_vertex_parameter { uint32_t _res0; uint32_t _res1; - polygon_type_9(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t base_color_0, - const uint32_t base_color_1 - ) + constexpr polygon_type_9(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t base_color_0, + const uint32_t base_color_1 + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -503,13 +503,13 @@ namespace ta_vertex_parameter { uint32_t _res0; uint32_t _res1; - polygon_type_10(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t base_intensity_0, - const uint32_t base_intensity_1 - ) + constexpr polygon_type_10(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t base_intensity_0, + const uint32_t base_intensity_1 + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -553,19 +553,19 @@ namespace ta_vertex_parameter { uint32_t _res2; uint32_t _res3; - polygon_type_11(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const float u_0, - const float v_0, - const uint32_t base_color_0, - const uint32_t offset_color_0, - const float u_1, - const float v_1, - const uint32_t base_color_1, - const uint32_t offset_color_1 - ) + constexpr polygon_type_11(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const float u_0, + const float v_0, + const uint32_t base_color_0, + const uint32_t offset_color_0, + const float u_1, + const float v_1, + const uint32_t base_color_1, + const uint32_t offset_color_1 + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -625,17 +625,17 @@ namespace ta_vertex_parameter { uint32_t _res4; uint32_t _res5; - polygon_type_12(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t u_v_0, - const uint32_t base_color_0, - const uint32_t offset_color_0, - const uint32_t u_v_1, - const uint32_t base_color_1, - const uint32_t offset_color_1 - ) + constexpr polygon_type_12(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t u_v_0, + const uint32_t base_color_0, + const uint32_t offset_color_0, + const uint32_t u_v_1, + const uint32_t base_color_1, + const uint32_t offset_color_1 + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -695,19 +695,19 @@ namespace ta_vertex_parameter { uint32_t _res2; uint32_t _res3; - polygon_type_13(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const float u_0, - const float v_0, - const uint32_t base_intensity_0, - const float offset_intensity_0, - const float u_1, - const float v_1, - const uint32_t base_intensity_1, - const float offset_intensity_1 - ) + constexpr polygon_type_13(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const float u_0, + const float v_0, + const uint32_t base_intensity_0, + const float offset_intensity_0, + const float u_1, + const float v_1, + const uint32_t base_intensity_1, + const float offset_intensity_1 + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -767,17 +767,17 @@ namespace ta_vertex_parameter { uint32_t _res4; uint32_t _res5; - polygon_type_14(const uint32_t parameter_control_word, - const float x, - const float y, - const float z, - const uint32_t u_v_0, - const uint32_t base_intensity_0, - const float offset_intensity_0, - const uint32_t u_v_1, - const uint32_t base_intensity_1, - const float offset_intensity_1 - ) + constexpr polygon_type_14(const uint32_t parameter_control_word, + const float x, + const float y, + const float z, + const uint32_t u_v_0, + const uint32_t base_intensity_0, + const float offset_intensity_0, + const uint32_t u_v_1, + const uint32_t base_intensity_1, + const float offset_intensity_1 + ) : parameter_control_word(parameter_control_word) , x(x) , y(y) @@ -837,19 +837,19 @@ namespace ta_vertex_parameter { uint32_t _res2; uint32_t _res3; - sprite_type_0(const uint32_t parameter_control_word, - const float a_x, - const float a_y, - const float a_z, - const float b_x, - const float b_y, - const float b_z, - const float c_x, - const float c_y, - const float c_z, - const float d_x, - const float d_y - ) + constexpr sprite_type_0(const uint32_t parameter_control_word, + const float a_x, + const float a_y, + const float a_z, + const float b_x, + const float b_y, + const float b_z, + const float c_x, + const float c_y, + const float c_z, + const float d_x, + const float d_y + ) : parameter_control_word(parameter_control_word) , a_x(a_x) , a_y(a_y) @@ -909,22 +909,22 @@ namespace ta_vertex_parameter { uint32_t b_u_b_v; uint32_t c_u_c_v; - sprite_type_1(const uint32_t parameter_control_word, - const float a_x, - const float a_y, - const float a_z, - const float b_x, - const float b_y, - const float b_z, - const float c_x, - const float c_y, - const float c_z, - const float d_x, - const float d_y, - const uint32_t a_u_a_v, - const uint32_t b_u_b_v, - const uint32_t c_u_c_v - ) + constexpr sprite_type_1(const uint32_t parameter_control_word, + const float a_x, + const float a_y, + const float a_z, + const float b_x, + const float b_y, + const float b_z, + const float c_x, + const float c_y, + const float c_z, + const float d_x, + const float d_y, + const uint32_t a_u_a_v, + const uint32_t b_u_b_v, + const uint32_t c_u_c_v + ) : parameter_control_word(parameter_control_word) , a_x(a_x) , a_y(a_y) @@ -984,17 +984,17 @@ namespace ta_vertex_parameter { uint32_t _res4; uint32_t _res5; - modifier_volume(const uint32_t parameter_control_word, - const float a_x, - const float a_y, - const float a_z, - const float b_x, - const float b_y, - const float b_z, - const float c_x, - const float c_y, - const float c_z - ) + constexpr modifier_volume(const uint32_t parameter_control_word, + const float a_x, + const float a_y, + const float a_z, + const float b_x, + const float b_y, + const float b_z, + const float c_x, + const float c_y, + const float c_z + ) : parameter_control_word(parameter_control_word) , a_x(a_x) , a_y(a_y) diff --git a/regs/gen/generic_sparse_struct.py b/regs/gen/generic_sparse_struct.py index 2c05965..207bdd3 100644 --- a/regs/gen/generic_sparse_struct.py +++ b/regs/gen/generic_sparse_struct.py @@ -94,7 +94,7 @@ def parse(rows, expected_offset, expected_sizes): return declarations def render_initializer(declaration, get_type): - initializer = f"{declaration.name}(" + initializer = f"constexpr {declaration.name}(" padding = " " * len(initializer) def start(i): if i == 0: