| ... | @@ -427,17 +427,14 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { | ... | @@ -427,17 +427,14 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { |
| 427 | // Once our self-hosted linker can handle both ABIs, this hack should go away. | 427 | // Once our self-hosted linker can handle both ABIs, this hack should go away. |
| 428 | if (target.cpu.arch == .powerpc64) return "elfv2"; | 428 | if (target.cpu.arch == .powerpc64) return "elfv2"; |
| 429 | | 429 | |
| 430 | const have_float = switch (target.abi) { | | |
| 431 | .gnueabihf, .musleabihf, .eabihf => true, | | |
| 432 | else => false, | | |
| 433 | }; | | |
| 434 | | | |
| 435 | switch (target.cpu.arch) { | 430 | switch (target.cpu.arch) { |
| 436 | .riscv64 => { | 431 | .riscv64 => { |
| 437 | const featureSetHas = std.Target.riscv.featureSetHas; | 432 | const featureSetHas = std.Target.riscv.featureSetHas; |
| 438 | if (featureSetHas(target.cpu.features, .d)) { | 433 | if (featureSetHas(target.cpu.features, .e)) { |
| | 434 | return "lp64e"; |
| | 435 | } else if (featureSetHas(target.cpu.features, .d)) { |
| 439 | return "lp64d"; | 436 | return "lp64d"; |
| 440 | } else if (have_float) { | 437 | } else if (featureSetHas(target.cpu.features, .f)) { |
| 441 | return "lp64f"; | 438 | return "lp64f"; |
| 442 | } else { | 439 | } else { |
| 443 | return "lp64"; | 440 | return "lp64"; |
| ... | @@ -445,12 +442,12 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { | ... | @@ -445,12 +442,12 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { |
| 445 | }, | 442 | }, |
| 446 | .riscv32 => { | 443 | .riscv32 => { |
| 447 | const featureSetHas = std.Target.riscv.featureSetHas; | 444 | const featureSetHas = std.Target.riscv.featureSetHas; |
| 448 | if (featureSetHas(target.cpu.features, .d)) { | 445 | if (featureSetHas(target.cpu.features, .e)) { |
| | 446 | return "ilp32e"; |
| | 447 | } else if (featureSetHas(target.cpu.features, .d)) { |
| 449 | return "ilp32d"; | 448 | return "ilp32d"; |
| 450 | } else if (have_float) { | 449 | } else if (featureSetHas(target.cpu.features, .f)) { |
| 451 | return "ilp32f"; | 450 | return "ilp32f"; |
| 452 | } else if (featureSetHas(target.cpu.features, .e)) { | | |
| 453 | return "ilp32e"; | | |
| 454 | } else { | 451 | } else { |
| 455 | return "ilp32"; | 452 | return "ilp32"; |
| 456 | } | 453 | } |