@@ -29,17 +29,17 @@ extern int main(void);
2929
3030// ----------------------------------------------------------------------------
3131// Linker section start and end pointers
32- extern const uint32_t __table_copy_intern_start[];
33- extern const uint32_t __table_copy_intern_end[];
32+ extern const uint64_t __table_copy_intern_start[];
33+ extern const uint64_t __table_copy_intern_end[];
3434
35- extern const uint32_t __table_zero_intern_start[];
36- extern const uint32_t __table_zero_intern_end[];
35+ extern const uint64_t __table_zero_intern_start[];
36+ extern const uint64_t __table_zero_intern_end[];
3737
38- extern const uint32_t __table_copy_extern_start[];
39- extern const uint32_t __table_copy_extern_end[];
38+ extern const uint64_t __table_copy_extern_start[];
39+ extern const uint64_t __table_copy_extern_end[];
4040
41- extern const uint32_t __table_zero_extern_start[];
42- extern const uint32_t __table_zero_extern_end[];
41+ extern const uint64_t __table_zero_extern_start[];
42+ extern const uint64_t __table_zero_extern_end[];
4343
4444extern const uint32_t __vector_table_{{ vector_table_location }}_start[];
4545
@@ -64,13 +64,13 @@ table_call(const FunctionPointer *const start, const FunctionPointer *const end)
6464
6565// Copies the section defined by a table of {loadaddr, dest start, dest end}
6666static inline void
67- table_copy(const uint32_t *const start, const uint32_t *const end)
67+ table_copy(const uint64_t *const start, const uint64_t *const end)
6868{
69- uint32_t **table = (uint32_t **)start;
70- while(table < (uint32_t **)end)
69+ uint64_t **table = (uint64_t **)start;
70+ while(table < (uint64_t **)end)
7171 {
72- const uint32_t *src = table[0]; // load address
73- uint32_t *dest = table[1]; // destination start
72+ const uint64_t *src = table[0]; // load address
73+ uint64_t *dest = table[1]; // destination start
7474 while (dest < table[2]) // destination end
7575 *(dest++) = *(src++);
7676 table += 3;
@@ -79,12 +79,12 @@ table_copy(const uint32_t *const start, const uint32_t *const end)
7979
8080// Zeros the section defined by a table of {start, end}
8181static inline void
82- table_zero(const uint32_t *const start, const uint32_t *const end)
82+ table_zero(const uint64_t *const start, const uint64_t *const end)
8383{
84- uint32_t **table = (uint32_t **)start;
85- while(table < (uint32_t **)end)
84+ uint64_t **table = (uint64_t **)start;
85+ while(table < (uint64_t **)end)
8686 {
87- uint32_t *dest = table[0]; // destination start
87+ uint64_t *dest = table[0]; // destination start
8888 while (dest < table[1]) // destination end
8989 *(dest++) = 0;
9090 table += 2;
0 commit comments