Skip to content

Commit 6d781e0

Browse files
authored
Merge pull request #22062 from alexrp/hexagon-fixes
Some follow-up fixes for #22029
2 parents e163ae7 + aa19e71 commit 6d781e0

File tree

2 files changed

+32
-29
lines changed

2 files changed

+32
-29
lines changed

lib/compiler_rt/hexagon.zig

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,7 @@ fn __hexagon_divdf3() align(32) callconv(.naked) noreturn {
938938
\\ }
939939
\\ {
940940
\\ p0 = cmp.gt(r12,#0)
941-
\\ if (p0.new) jump:nt .Lpossible_unf
941+
\\ if (p0.new) jump:nt .Ldiv_possible_unf
942942
\\ }
943943
\\ {
944944
\\ r13 = add(clb(r7:6),#-1)
@@ -981,7 +981,7 @@ fn __hexagon_divdf3() align(32) callconv(.naked) noreturn {
981981
\\ }
982982
\\
983983
\\
984-
\\ .Lpossible_unf:
984+
\\ .Ldiv_possible_unf:
985985
\\
986986
\\
987987
\\ {
@@ -1250,7 +1250,7 @@ fn __hexagon_muldf3() align(32) callconv(.naked) noreturn {
12501250
\\ }
12511251
\\
12521252
\\ .falign
1253-
\\ .Lpossible_unf:
1253+
\\ .Lmul_possible_unf:
12541254
\\ {
12551255
\\ p0 = cmp.eq(r0,#0)
12561256
\\ p0 = bitsclr(r1,r4)
@@ -1295,7 +1295,7 @@ fn __hexagon_muldf3() align(32) callconv(.naked) noreturn {
12951295
\\ }
12961296
\\ {
12971297
\\ p0 = cmp.gt(r7,#0)
1298-
\\ if (p0.new) jump:nt .Lpossible_unf
1298+
\\ if (p0.new) jump:nt .Lmul_possible_unf
12991299
\\ r5 = sub(r6,r5)
13001300
\\ r28 = #63
13011301
\\ }
@@ -1759,30 +1759,29 @@ fn __hexagon_sqrtdf2() align(32) callconv(.naked) noreturn {
17591759

17601760
comptime {
17611761
if (builtin.cpu.arch == .hexagon) {
1762-
@export(__hexagon_adddf3, .{ .name = "__hexagon_adddf3", .linkage = common.linkage, .visibility = common.visibility });
1763-
@export(__hexagon_adddf3, .{ .name = "__hexagon_fast_adddf3", .linkage = common.linkage, .visibility = common.visibility });
1764-
@export(__hexagon_subdf3, .{ .name = "__hexagon_subdf3", .linkage = common.linkage, .visibility = common.visibility });
1765-
@export(__hexagon_subdf3, .{ .name = "__hexagon_fast_subdf3", .linkage = common.linkage, .visibility = common.visibility });
1766-
@export(__hexagon_divdf3, .{ .name = "__hexagon_divdf3", .linkage = common.linkage, .visibility = common.visibility });
1767-
@export(__hexagon_divdf3, .{ .name = "__hexagon_fast_divdf3", .linkage = common.linkage, .visibility = common.visibility });
1768-
@export(__hexagon_muldf3, .{ .name = "__hexagon_muldf3", .linkage = common.linkage, .visibility = common.visibility });
1769-
@export(__hexagon_muldf3, .{ .name = "__hexagon_fast_muldf3", .linkage = common.linkage, .visibility = common.visibility });
1770-
@export(__hexagon_sqrtdf2, .{ .name = "__hexagon_sqrtdf2", .linkage = common.linkage, .visibility = common.visibility });
1771-
@export(__hexagon_sqrtdf2, .{ .name = "__hexagon_fast2_sqrtdf2", .linkage = common.linkage, .visibility = common.visibility });
1772-
@export(__hexagon_sqrtdf2, .{ .name = "__hexagon_sqrt", .linkage = common.linkage, .visibility = common.visibility });
1773-
@export(__hexagon_divsf3, .{ .name = "__hexagon_divsf3", .linkage = common.linkage, .visibility = common.visibility });
1774-
@export(__hexagon_divsf3, .{ .name = "__hexagon_fast_divsf3", .linkage = common.linkage, .visibility = common.visibility });
1775-
@export(__hexagon_divsi3, .{ .name = "__hexagon_divsi3", .linkage = common.linkage, .visibility = common.visibility });
1776-
@export(__hexagon_umodsi3, .{ .name = "__hexagon_umodsi3", .linkage = common.linkage, .visibility = common.visibility });
1777-
@export(__hexagon_sqrtf, .{ .name = "__hexagon_sqrtf", .linkage = common.linkage, .visibility = common.visibility });
1778-
@export(__hexagon_sqrtf, .{ .name = "__hexagon_fast2_sqrtf", .linkage = common.linkage, .visibility = common.visibility });
1779-
@export(__hexagon_moddi3, .{ .name = "__hexagon_moddi3", .linkage = common.linkage, .visibility = common.visibility });
1780-
@export(__hexagon_divdi3, .{ .name = "__hexagon_divdi3", .linkage = common.linkage, .visibility = common.visibility });
1781-
@export(__hexagon_divsf3, .{ .name = "__hexagon_divsf3", .linkage = common.linkage, .visibility = common.visibility });
1782-
@export(__hexagon_udivdi3, .{ .name = "__hexagon_udivdi3", .linkage = common.linkage, .visibility = common.visibility });
1783-
@export(__hexagon_umoddi3, .{ .name = "__hexagon_umoddi3", .linkage = common.linkage, .visibility = common.visibility });
1784-
@export(__hexagon_modsi3, .{ .name = "__hexagon_modsi3", .linkage = common.linkage, .visibility = common.visibility });
1785-
@export(__hexagon_memcpy_likely_aligned_min32bytes_mult8bytes, .{ .name = "__hexagon_memcpy_likely_aligned_min32bytes_mult8bytes", .linkage = common.linkage, .visibility = common.visibility });
1786-
@export(__hexagon_udivsi3, .{ .name = "__hexagon_udivsi3", .linkage = common.linkage, .visibility = common.visibility });
1762+
@export(&__hexagon_adddf3, .{ .name = "__hexagon_adddf3", .linkage = common.linkage, .visibility = common.visibility });
1763+
@export(&__hexagon_adddf3, .{ .name = "__hexagon_fast_adddf3", .linkage = common.linkage, .visibility = common.visibility });
1764+
@export(&__hexagon_subdf3, .{ .name = "__hexagon_subdf3", .linkage = common.linkage, .visibility = common.visibility });
1765+
@export(&__hexagon_subdf3, .{ .name = "__hexagon_fast_subdf3", .linkage = common.linkage, .visibility = common.visibility });
1766+
@export(&__hexagon_divdf3, .{ .name = "__hexagon_divdf3", .linkage = common.linkage, .visibility = common.visibility });
1767+
@export(&__hexagon_divdf3, .{ .name = "__hexagon_fast_divdf3", .linkage = common.linkage, .visibility = common.visibility });
1768+
@export(&__hexagon_muldf3, .{ .name = "__hexagon_muldf3", .linkage = common.linkage, .visibility = common.visibility });
1769+
@export(&__hexagon_muldf3, .{ .name = "__hexagon_fast_muldf3", .linkage = common.linkage, .visibility = common.visibility });
1770+
@export(&__hexagon_sqrtdf2, .{ .name = "__hexagon_sqrtdf2", .linkage = common.linkage, .visibility = common.visibility });
1771+
@export(&__hexagon_sqrtdf2, .{ .name = "__hexagon_fast2_sqrtdf2", .linkage = common.linkage, .visibility = common.visibility });
1772+
@export(&__hexagon_sqrtdf2, .{ .name = "__hexagon_sqrt", .linkage = common.linkage, .visibility = common.visibility });
1773+
@export(&__hexagon_divsf3, .{ .name = "__hexagon_divsf3", .linkage = common.linkage, .visibility = common.visibility });
1774+
@export(&__hexagon_divsf3, .{ .name = "__hexagon_fast_divsf3", .linkage = common.linkage, .visibility = common.visibility });
1775+
@export(&__hexagon_divsi3, .{ .name = "__hexagon_divsi3", .linkage = common.linkage, .visibility = common.visibility });
1776+
@export(&__hexagon_umodsi3, .{ .name = "__hexagon_umodsi3", .linkage = common.linkage, .visibility = common.visibility });
1777+
@export(&__hexagon_sqrtf, .{ .name = "__hexagon_sqrtf", .linkage = common.linkage, .visibility = common.visibility });
1778+
@export(&__hexagon_sqrtf, .{ .name = "__hexagon_fast2_sqrtf", .linkage = common.linkage, .visibility = common.visibility });
1779+
@export(&__hexagon_moddi3, .{ .name = "__hexagon_moddi3", .linkage = common.linkage, .visibility = common.visibility });
1780+
@export(&__hexagon_divdi3, .{ .name = "__hexagon_divdi3", .linkage = common.linkage, .visibility = common.visibility });
1781+
@export(&__hexagon_udivdi3, .{ .name = "__hexagon_udivdi3", .linkage = common.linkage, .visibility = common.visibility });
1782+
@export(&__hexagon_umoddi3, .{ .name = "__hexagon_umoddi3", .linkage = common.linkage, .visibility = common.visibility });
1783+
@export(&__hexagon_modsi3, .{ .name = "__hexagon_modsi3", .linkage = common.linkage, .visibility = common.visibility });
1784+
@export(&__hexagon_memcpy_likely_aligned_min32bytes_mult8bytes, .{ .name = "__hexagon_memcpy_likely_aligned_min32bytes_mult8bytes", .linkage = common.linkage, .visibility = common.visibility });
1785+
@export(&__hexagon_udivsi3, .{ .name = "__hexagon_udivsi3", .linkage = common.linkage, .visibility = common.visibility });
17871786
}
17881787
}

lib/zig.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,8 @@ typedef char bool;
256256
#define zig_trap() __asm__ volatile("udf #0xfe")
257257
#elif defined(__arm__) || defined(__aarch64__)
258258
#define zig_trap() __asm__ volatile("udf #0xfdee")
259+
#elif defined(__hexagon__)
260+
#define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)")
259261
#elif defined(__loongarch__) || defined(__powerpc__)
260262
#define zig_trap() __asm__ volatile(".word 0x0")
261263
#elif defined(__mips__)
@@ -280,6 +282,8 @@ typedef char bool;
280282
#define zig_breakpoint() __asm__ volatile("bkpt #0x0")
281283
#elif defined(__aarch64__)
282284
#define zig_breakpoint() __asm__ volatile("brk #0xf000")
285+
#elif defined(__hexagon__)
286+
#define zig_breakpoint() __asm__ volatile("brkpt")
283287
#elif defined(__loongarch__)
284288
#define zig_breakpoint() __asm__ volatile("break 0x0")
285289
#elif defined(__mips__)

0 commit comments

Comments
 (0)