Skip to content

Commit 74bf807

Browse files
vineetgarcartemiy-volkov
authored andcommitted
arc64: fp: reused the ARCv2 C macros for code-diversity management (gcc-mirror#97)
This helps reduce the #ifdef'ery in downstream projects (glibc). The old scheme would add yet another set of macros for ARCv3:32 Signed-off-by: Vineet Gupta <[email protected]>
1 parent c8d8b89 commit 74bf807

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

gcc/config/arc64/arc64-c.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ arc64_cpu_cpp_builtins (cpp_reader * pfile)
6363
else if (arc64_cmodel_var == ARC64_CMODEL_LARGE)
6464
builtin_define ("__ARC64_CMODEL_LARGE__");
6565

66+
if (TARGET_HARD_FLOAT)
67+
{
68+
builtin_define ("__arc_hard_float__");
69+
builtin_define ("__ARC_HARD_FLOAT__");
70+
}
71+
else
72+
{
73+
builtin_define ("__arc_soft_float__");
74+
builtin_define ("__ARC_SOFT_FLOAT__");
75+
}
76+
6677
#undef ARC64_C_DEF
6778
#define ARC64_C_DEF(NAME, CONDITION) \
6879
def_or_undef_macro (pfile, NAME, CONDITION);

gcc/config/arc64/arc64-c.def

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ ARC64_C_DEF ("__ARC64_ATOMIC_1__", arc64_atomic_option == 1)
2121
ARC64_C_DEF ("__ARC64_ATOMIC_2__", arc64_atomic_option == 2)
2222
ARC64_C_DEF ("__ARC64_ATOMIC_3__", arc64_atomic_option == 3)
2323
ARC64_C_DEF ("__ARC64_UNALIGNED__", unaligned_access)
24-
ARC64_C_DEF ("__ARC64_FPUS__", ARC64_HAS_FPUS)
25-
ARC64_C_DEF ("__ARC64_FPUD__", ARC64_HAS_FPUD)
24+
ARC64_C_DEF ("__ARC_FPU_SP__", ARC64_HAS_FPUS)
25+
ARC64_C_DEF ("__ARC_FPU_DP__", ARC64_HAS_FPUD)
2626
ARC64_C_DEF ("__ARC64_M128__", TARGET_WIDE_LDST)
2727
ARC64_C_DEF ("__ARC64_WIDE_VECTOR__", TARGET_WIDE_SIMD)
2828

gcc/config/arc64/arc64.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,8 @@ extern const enum reg_class arc64_regno_to_regclass[];
604604
#define ARC64_HAS_FPUS (arc64_fp_model > 0)
605605
#define ARC64_HAS_FPUD (arc64_fp_model > 1)
606606

607+
#define TARGET_HARD_FLOAT ARC64_HAS_FP_BASE
608+
607609
/* Vector SIMD length. */
608610
#define ARC64_VFP_32 (arc64_fp_model == 1)
609611
#define ARC64_VFP_64 ((arc64_fp_model == 2) && !TARGET_WIDE_SIMD)

0 commit comments

Comments
 (0)