internal/cpu: add aarch64 support functions

Patch from Andreas Schwab.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281000
This commit is contained in:
Ian Lance Taylor 2021-01-01 12:05:39 -08:00
parent 0b9ef8be40
commit 5a4e0d121a
2 changed files with 27 additions and 1 deletions

View File

@ -1,4 +1,4 @@
fa161cb71880cf80ef53fb4bf35dba8ee01af648
2b5bdd22b7ec2fc13ae0f644c781f64c1a209500
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -200,3 +200,29 @@ struct queryResult kdsaQuery() {
}
#endif /* defined(__s390x__) */
#ifdef __aarch64__
uint64_t getisar0(void)
__asm__(GOSYM_PREFIX "internal_1cpu.getisar0")
__attribute__((no_split_stack));
uint64_t getisar0() {
uint64_t isar0;
__asm__("mrs %0,id_aa64isar0_el1" : "=r"(isar0));
return isar0;
}
uint64_t getMIDR(void)
__asm__(GOSYM_PREFIX "internal_1cpu.getMIDR")
__attribute__((no_split_stack));
uint64_t getMIDR() {
uint64_t MIDR;
__asm__("mrs %0,midr_el1" : "=r"(MIDR));
return MIDR;
}
#endif /* defined(__aarch64__) */