This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, please apply the attached patch that fixes the stack calculation for the OpenRISC libgloss. Best, Stefan -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEARECAAYFAlbhpewACgkQuMYtsrn2U9y26wCeN5GmdIo2cNjAqr1ANJucLU0u q9MAn0b/TaJd+nht9aHjA5WlI4nj4o1n =Ulg8 -----END PGP SIGNATURE-----
commit f3c4a4e095b0e80d5cef08e3f0c88f88a85c3134 Author: Stefan Roesch <stefan.roesch@tum.de> Date: Wed Mar 9 16:04:36 2016 +0100 or1k: Fix multicore stack calculation Change the type of the stack pointers to enable pointer calculations at byte granularity, which is needed for the calculation of _or1k_stack_core[c] and _or1k_exception_stack_core[c] with _or1k_stack_size and _or1k_exception_stack_size. (util.c:53-54) diff --git a/libgloss/or1k/or1k-internals.h b/libgloss/or1k/or1k-internals.h index b24ad13..3aabdb0 100644 --- a/libgloss/or1k/or1k-internals.h +++ b/libgloss/or1k/or1k-internals.h @@ -6,17 +6,17 @@ #include "include/or1k-support.h" -extern uint32_t* _or1k_stack_top; +extern uint8_t* _or1k_stack_top; extern size_t _or1k_stack_size; -extern uint32_t* _or1k_stack_bottom; +extern uint8_t* _or1k_stack_bottom; -extern uint32_t* _or1k_exception_stack_top; +extern uint8_t* _or1k_exception_stack_top; extern size_t _or1k_exception_stack_size; -extern uint32_t* _or1k_exception_stack_bottom; +extern uint8_t* _or1k_exception_stack_bottom; #ifdef __OR1K_MULTICORE__ -extern uint32_t* *_or1k_stack_core; -extern uint32_t* *_or1k_exception_stack_core; +extern uint8_t* *_or1k_stack_core; +extern uint8_t* *_or1k_exception_stack_core; #endif diff --git a/libgloss/or1k/util.c b/libgloss/or1k/util.c index 5e853f3..d2ee84d 100644 --- a/libgloss/or1k/util.c +++ b/libgloss/or1k/util.c @@ -24,27 +24,27 @@ #ifdef __OR1K_MULTICORE__ // Define pointers to arrays -uint32_t* *_or1k_stack_core; -uint32_t* *_or1k_exception_stack_core; +uint8_t* *_or1k_stack_core; +uint8_t* *_or1k_exception_stack_core; uint32_t* *_or1k_exception_level; #else // Define scalar uint32_t _or1k_exception_level; #endif -uint32_t* _or1k_stack_top; -uint32_t* _or1k_stack_bottom; +uint8_t* _or1k_stack_top; +uint8_t* _or1k_stack_bottom; -uint32_t* _or1k_exception_stack_top; -uint32_t* _or1k_exception_stack_bottom; +uint8_t* _or1k_exception_stack_top; +uint8_t* _or1k_exception_stack_bottom; void _or1k_init() { #ifdef __OR1K_MULTICORE__ uint32_t c; // Initialize stacks - _or1k_stack_core = _sbrk_r(0, sizeof(uint32_t*) * or1k_numcores()); - _or1k_exception_stack_core = _sbrk_r(0, sizeof(uint32_t*) * or1k_numcores()); + _or1k_stack_core = _sbrk_r(0, sizeof(uint8_t*) * or1k_numcores()); + _or1k_exception_stack_core = _sbrk_r(0, sizeof(uint8_t*) * or1k_numcores()); _or1k_stack_core[0] = _or1k_stack_top; _or1k_exception_stack_core[0] = _or1k_exception_stack_top;
Attachment:
or1k_multicore_stack.patch.sig
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |