aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/target-riscv.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-riscv.c')
-rw-r--r--target-riscv.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/target-riscv.c b/target-riscv.c
index e7acb363..bbb47e9d 100644
--- a/target-riscv.c
+++ b/target-riscv.c
@@ -13,8 +13,18 @@ static void init_riscv(const struct target *self)
static void predefine_riscv(const struct target *self)
{
+ static const char *cmodels[CMODEL_LAST] = {
+ [CMODEL_MEDANY] = "medany",
+ [CMODEL_MEDLOW] = "medlow",
+ [CMODEL_PIC] = "pic",
+ };
+ const char *cmodel = cmodels[arch_cmodel];
+
predefine("__riscv", 1, "1");
predefine("__riscv_xlen", 1, "%d", ptr_ctype.bit_size);
+
+ if (cmodel)
+ add_pre_buffer("#define __riscv_cmodel_%s 1\n", cmodel);
}
const struct target target_riscv32 = {