summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ir/be/riscv/riscv_bearch.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ir/be/riscv/riscv_bearch.c b/ir/be/riscv/riscv_bearch.c
index ab8bc81..f366906 100644
--- a/ir/be/riscv/riscv_bearch.c
+++ b/ir/be/riscv/riscv_bearch.c
@@ -58,11 +58,13 @@ static lc_opt_enum_int_var_t abi_var = {
typedef enum {
rv32imafd,
rv32ima,
+ rv32imac,
} riscv_isa_t;
static const lc_opt_enum_int_items_t isa_items[] = {
{ "rv32g", rv32imafd },
{ "rv32imafd", rv32imafd },
{ "rv32ima", rv32ima },
+ { "rv32imac", rv32imac },
{ NULL, 0 },
};
@@ -133,7 +135,7 @@ static void riscv_init(void)
ir_target.float_int_overflow = ir_overflow_min_max;
ir_platform_set_va_list_type_pointer();
- use_softfloat = ((riscv_isa_t)isa == rv32ima);
+ use_softfloat = ((riscv_isa_t)isa == rv32ima || (riscv_isa_t)isa == rv32imac);
if (use_softfloat && (riscv_abi_t)abi == ilp32d) {
panic("requested ABI requires -march to subsume the 'D' extension");
} else if (!use_softfloat && (riscv_abi_t)abi == ilp32) {