mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Merge pull request #3104 from codename-irvin/dev
Add freestanding aarch64 target
This commit is contained in:
@@ -582,7 +582,13 @@ gb_global TargetMetrics target_freestanding_amd64_sysv = {
|
|||||||
TargetABI_SysV,
|
TargetABI_SysV,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
gb_global TargetMetrics target_freestanding_arm64 = {
|
||||||
|
TargetOs_freestanding,
|
||||||
|
TargetArch_arm64,
|
||||||
|
8, 8, 8, 16,
|
||||||
|
str_lit("aarch64-none-elf"),
|
||||||
|
str_lit("e-m:o-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"),
|
||||||
|
};
|
||||||
|
|
||||||
struct NamedTargetMetrics {
|
struct NamedTargetMetrics {
|
||||||
String name;
|
String name;
|
||||||
@@ -617,6 +623,7 @@ gb_global NamedTargetMetrics named_targets[] = {
|
|||||||
{ str_lit("wasi_wasm64p32"), &target_wasi_wasm64p32 },
|
{ str_lit("wasi_wasm64p32"), &target_wasi_wasm64p32 },
|
||||||
|
|
||||||
{ str_lit("freestanding_amd64_sysv"), &target_freestanding_amd64_sysv },
|
{ str_lit("freestanding_amd64_sysv"), &target_freestanding_amd64_sysv },
|
||||||
|
{ str_lit("freestanding_arm64"), &target_freestanding_arm64 },
|
||||||
};
|
};
|
||||||
|
|
||||||
gb_global NamedTargetMetrics *selected_target_metrics;
|
gb_global NamedTargetMetrics *selected_target_metrics;
|
||||||
|
|||||||
@@ -2503,7 +2503,7 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
|
|||||||
LLVMCodeModel code_mode = LLVMCodeModelDefault;
|
LLVMCodeModel code_mode = LLVMCodeModelDefault;
|
||||||
if (is_arch_wasm()) {
|
if (is_arch_wasm()) {
|
||||||
code_mode = LLVMCodeModelJITDefault;
|
code_mode = LLVMCodeModelJITDefault;
|
||||||
} else if (build_context.metrics.os == TargetOs_freestanding) {
|
} else if (is_arch_x86() && build_context.metrics.os == TargetOs_freestanding) {
|
||||||
code_mode = LLVMCodeModelKernel;
|
code_mode = LLVMCodeModelKernel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user