mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-14 05:31:13 +00:00
Optimize get_current_target in AOT loader for more archs (#347)
This commit is contained in:
parent
21efe12505
commit
874cc951c6
|
@ -27,22 +27,32 @@ get_target_symbol_map(uint32 *sym_num)
|
||||||
return target_sym_map;
|
return target_sym_map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define BUILD_TARGET_AARCH64_DEFAULT "aarch64v8"
|
||||||
void
|
void
|
||||||
get_current_target(char *target_buf, uint32 target_buf_size)
|
get_current_target(char *target_buf, uint32 target_buf_size)
|
||||||
{
|
{
|
||||||
char *build_target = BUILD_TARGET;
|
const char * s = BUILD_TARGET;
|
||||||
char *p = target_buf, *p_end;
|
size_t s_size = sizeof(BUILD_TARGET);
|
||||||
snprintf(target_buf, target_buf_size, "%s", build_target);
|
char *d = target_buf;
|
||||||
p_end = p + strlen(target_buf);
|
|
||||||
while (p < p_end) {
|
/* Set to "aarch64v8" by default if sub version isn't specified */
|
||||||
if (*p >= 'A' && *p <= 'Z')
|
if (strcmp(s, "AARACH64") == 0) {
|
||||||
*p++ += 'a' - 'A';
|
s = BUILD_TARGET_AARCH64_DEFAULT;
|
||||||
|
s_size = sizeof(BUILD_TARGET_AARCH64_DEFAULT);
|
||||||
|
}
|
||||||
|
if(target_buf_size < s_size){
|
||||||
|
s_size = target_buf_size;
|
||||||
|
}
|
||||||
|
while (--s_size) {
|
||||||
|
if (*s >= 'A' && *s <= 'Z')
|
||||||
|
*d++ = *s++ + 'a' - 'A';
|
||||||
else
|
else
|
||||||
p++;
|
*d++ = *s++ ;
|
||||||
}
|
}
|
||||||
if (!strcmp(target_buf, "aarch64"))
|
/* Ensure the string is null byte ('\0') terminated */
|
||||||
snprintf(target_buf, target_buf_size, "aarch64v8");
|
*d = '\0';
|
||||||
}
|
}
|
||||||
|
#undef BUILD_TARGET_AARCH64_DEFAULT
|
||||||
|
|
||||||
static uint32
|
static uint32
|
||||||
get_plt_item_size()
|
get_plt_item_size()
|
||||||
|
|
|
@ -118,22 +118,32 @@ get_target_symbol_map(uint32 *sym_num)
|
||||||
return target_sym_map;
|
return target_sym_map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define BUILD_TARGET_ARM_DEFAULT "armv4"
|
||||||
void
|
void
|
||||||
get_current_target(char *target_buf, uint32 target_buf_size)
|
get_current_target(char *target_buf, uint32 target_buf_size)
|
||||||
{
|
{
|
||||||
char *build_target = BUILD_TARGET;
|
const char * s = BUILD_TARGET;
|
||||||
char *p = target_buf, *p_end;
|
size_t s_size = sizeof(BUILD_TARGET);
|
||||||
snprintf(target_buf, target_buf_size, "%s", build_target);
|
char *d = target_buf;
|
||||||
p_end = p + strlen(target_buf);
|
|
||||||
while (p < p_end) {
|
/* Set to "armv4" by default if sub version isn't specified */
|
||||||
if (*p >= 'A' && *p <= 'Z')
|
if (strcmp(s, "ARM") == 0) {
|
||||||
*p++ += 'a' - 'A';
|
s = BUILD_TARGET_ARM_DEFAULT;
|
||||||
|
s_size = sizeof(BUILD_TARGET_ARM_DEFAULT);
|
||||||
|
}
|
||||||
|
if(target_buf_size < s_size){
|
||||||
|
s_size = target_buf_size;
|
||||||
|
}
|
||||||
|
while (--s_size) {
|
||||||
|
if (*s >= 'A' && *s <= 'Z')
|
||||||
|
*d++ = *s++ + 'a' - 'A';
|
||||||
else
|
else
|
||||||
p++;
|
*d++ = *s++ ;
|
||||||
}
|
}
|
||||||
if (!strcmp(target_buf, "arm"))
|
/* Ensure the string is null byte ('\0') terminated */
|
||||||
snprintf(target_buf, target_buf_size, "armv4");
|
*d = '\0';
|
||||||
}
|
}
|
||||||
|
#undef BUILD_TARGET_ARM_DEFAULT
|
||||||
|
|
||||||
uint32
|
uint32
|
||||||
get_plt_item_size()
|
get_plt_item_size()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user