{"zifencei", ISA_SPEC_CLASS_20191213, 2, 0},
{"zifencei", ISA_SPEC_CLASS_20190608, 2, 0},
+ {"zba", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zbb", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zbc", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zbs", ISA_SPEC_CLASS_NONE, 1, 0},
+
/* Terminate the list. */
{NULL, ISA_SPEC_CLASS_NONE, 0, 0}
};
{"zicsr", &gcc_options::x_riscv_zi_subext, MASK_ZICSR},
{"zifencei", &gcc_options::x_riscv_zi_subext, MASK_ZIFENCEI},
+ {"zba", &gcc_options::x_riscv_zb_subext, MASK_ZBA},
+ {"zbb", &gcc_options::x_riscv_zb_subext, MASK_ZBB},
+ {"zbc", &gcc_options::x_riscv_zb_subext, MASK_ZBC},
+ {"zbs", &gcc_options::x_riscv_zb_subext, MASK_ZBS},
+
{NULL, NULL, 0}
};
#define TARGET_ZICSR ((riscv_zi_subext & MASK_ZICSR) != 0)
#define TARGET_ZIFENCEI ((riscv_zi_subext & MASK_ZIFENCEI) != 0)
+#define MASK_ZBA (1 << 0)
+#define MASK_ZBB (1 << 1)
+#define MASK_ZBC (1 << 2)
+#define MASK_ZBS (1 << 3)
+
+#define TARGET_ZBA ((riscv_zb_subext & MASK_ZBA) != 0)
+#define TARGET_ZBB ((riscv_zb_subext & MASK_ZBB) != 0)
+#define TARGET_ZBC ((riscv_zb_subext & MASK_ZBC) != 0)
+#define TARGET_ZBS ((riscv_zb_subext & MASK_ZBS) != 0)
+
#endif /* ! GCC_RISCV_OPTS_H */