Add MCREGs to fix the build for FreeBSD/arm64 (#81397)
authorSzczepan Ćwikliński <sec@thinkcode.pl>
Tue, 31 Jan 2023 15:24:58 +0000 (16:24 +0100)
committerGitHub <noreply@github.com>
Tue, 31 Jan 2023 15:24:58 +0000 (16:24 +0100)
* Add MCREGs to fix the build for FreeBSD/arm64

* Use &&

src/coreclr/nativeaot/Runtime/unix/UnixContext.cpp

index d18b2ed..47d0367 100644 (file)
@@ -183,7 +183,43 @@ int unw_get_save_loc(unw_cursor_t*, int, unw_save_loc_t*)
 
 #ifdef HOST_64BIT
 
-#if defined(HOST_ARM64)
+#if defined(HOST_ARM64) && defined(TARGET_FREEBSD)
+
+#define MCREG_X0(mc)   (mc.mc_gpregs.gp_x[0])
+#define MCREG_X1(mc)   (mc.mc_gpregs.gp_x[1])
+#define MCREG_X2(mc)   (mc.mc_gpregs.gp_x[2])
+#define MCREG_X3(mc)   (mc.mc_gpregs.gp_x[3])
+#define MCREG_X4(mc)   (mc.mc_gpregs.gp_x[4])
+#define MCREG_X5(mc)   (mc.mc_gpregs.gp_x[5])
+#define MCREG_X6(mc)   (mc.mc_gpregs.gp_x[6])
+#define MCREG_X7(mc)   (mc.mc_gpregs.gp_x[7])
+#define MCREG_X8(mc)   (mc.mc_gpregs.gp_x[8])
+#define MCREG_X9(mc)   (mc.mc_gpregs.gp_x[9])
+#define MCREG_X10(mc)  (mc.mc_gpregs.gp_x[10])
+#define MCREG_X11(mc)  (mc.mc_gpregs.gp_x[11])
+#define MCREG_X12(mc)  (mc.mc_gpregs.gp_x[12])
+#define MCREG_X13(mc)  (mc.mc_gpregs.gp_x[13])
+#define MCREG_X14(mc)  (mc.mc_gpregs.gp_x[14])
+#define MCREG_X15(mc)  (mc.mc_gpregs.gp_x[15])
+#define MCREG_X16(mc)  (mc.mc_gpregs.gp_x[16])
+#define MCREG_X17(mc)  (mc.mc_gpregs.gp_x[17])
+#define MCREG_X18(mc)  (mc.mc_gpregs.gp_x[18])
+#define MCREG_X19(mc)  (mc.mc_gpregs.gp_x[19])
+#define MCREG_X20(mc)  (mc.mc_gpregs.gp_x[20])
+#define MCREG_X21(mc)  (mc.mc_gpregs.gp_x[21])
+#define MCREG_X22(mc)  (mc.mc_gpregs.gp_x[22])
+#define MCREG_X23(mc)  (mc.mc_gpregs.gp_x[23])
+#define MCREG_X24(mc)  (mc.mc_gpregs.gp_x[24])
+#define MCREG_X25(mc)  (mc.mc_gpregs.gp_x[25])
+#define MCREG_X26(mc)  (mc.mc_gpregs.gp_x[26])
+#define MCREG_X27(mc)  (mc.mc_gpregs.gp_x[27])
+#define MCREG_X28(mc)  (mc.mc_gpregs.gp_x[28])
+#define MCREG_Lr(mc)   (mc.mc_gpregs.gp_lr)
+#define MCREG_Sp(mc)   (mc.mc_gpregs.gp_sp)
+#define MCREG_Pc(mc)   (mc.mc_gpregs.gp_elr)
+#define MCREG_Fp(mc)   (mc.mc_gpregs.gp_x[29])
+
+#elif defined(HOST_ARM64)
 
 #define MCREG_X0(mc)      ((mc).regs[0])
 #define MCREG_X1(mc)      ((mc).regs[1])