Add implementation of WhereAmI() to support NO_AFFINITY=0 on ARM64 (#4648)

* Add preliminary implementation of WhereAmI()
This commit is contained in:
Martin Kroeker 2024-04-17 08:25:17 +02:00 committed by GitHub
parent a0083fdf68
commit c57f9326d6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 13 additions and 0 deletions

View File

@ -55,6 +55,19 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef ASSEMBLER
static __inline int WhereAmI(void){
uint64_t ret;
__asm__ volatile (
" mrs x0, mpidr_el1 \n"
" and x0, x0, 0xff \n"
:"=r" (ret)
:: "memory"
);
ret +=1;
if ((int)ret <0) ret = 0;
return (int)ret;
}
static __inline void blas_lock(volatile BLASULONG *address){
BLASULONG ret;