NEON code crashing on OpenBSD/aarch64
Enabling the NEON code on OpenBSD/aarch64 I notice it is crashing.
ffmpeg -i samples/test-av1.mkv -c:a copy -c:v hevc /tmp/test.mkv
[libdav1d @ 0x1cb1e13000] libdav1d 1.4.3
Segmentation fault (core dumped)
Reading symbols from ffmpeg...
(No debugging symbols found in ffmpeg)
[New process 514806]
Core was generated by `ffmpeg'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 ipred_dc_128_8bpc_neon () at ../dav1d-1.4.3/src/arm/64/ipred.S:39
39 ldrh w3, [x5, w3, uxtw #1]
#0 ipred_dc_128_8bpc_neon () at ../dav1d-1.4.3/src/arm/64/ipred.S:39
No locals.
#1 0x0000001d057141d8 in dav1d_recon_b_intra_8bpc (t=<optimized out>, bs=BS_128x128, intra_edge_flags=EDGE_ALL_TOP_HAS_RIGHT, b=<optimized out>) at ../dav1d-1.4.3/src/recon_tmpl.c:1294
angle = <optimized out>
top_sb_edge = <optimized out>
m = <optimized out>
edge_flags = <optimized out>
dst = 0x1cca16b000 ""
stride = <optimized out>
x = 0
sm_uv_fl = <optimized out>
sb_has_tr = <optimized out>
sb_has_bl = <optimized out>
y = 0
sub_w4 = <optimized out>
uv_sb_has_tr = <optimized out>
uv_sb_has_bl = <optimized out>
sub_cw4 = <optimized out>
intra_flags = <optimized out>
init_x = 0
sub_h4 = 16
sub_ch4 = 8
init_y = <optimized out>
dsp = 0x1d40714e18
f = 0x1d2cec4000
b_dim = <optimized out>
bx4 = 0
by4 = 0
ts = 0x1cb38da000
bw4 = <optimized out>
bh4 = <optimized out>
w4 = 32
h4 = <optimized out>
ss_hor = <optimized out>
cw4 = 16
cby4 = 0
cbx4 = 0
ss_ver = <optimized out>
ch4 = 16
cbw4 = 16
edge = 0x1ce439a500 ""
uv_t_dim = 0x1d056cb8b8 <dav1d_txfm_dimensions+24>
t_dim = 0x1d056cb8b8 <dav1d_txfm_dimensions+24>
has_chroma = <optimized out>
intra_edge_filter_flag = 1024
cbh4 = 16
#2 0x0000001d057530ac [PAC] in decode_b (t=<optimized out>, bl=<optimized out>, bs=<optimized out>, bp=<optimized out>, intra_edge_flags=EDGE_ALL_TOP_HAS_RIGHT) at ../dav1d-1.4.3/src/decode.c:1228
ymode_cdf = <optimized out>
t_dim = 0x1d056cb8b8 <dav1d_txfm_dimensions+24>
y_mode_nofilt = <optimized out>
b_mem = {bl = 0 '\000', bs = 0 '\000', bp = 0 '\000', intra = 1 '\001', seg_id = 0 '\000', skip_mode = 0 '\000', skip = 0 '\000', uvtx = 3 '\003', {{y_mode = 0 '\000', uv_mode = 0 '\000', tx = 3 '\003', pal_sz = "\000", y_angle = 0 '\000',
uv_angle = 0 '\000', cfl_alpha = "\000\070"}, {{{mv = {{{y = 0, x = 3}, n = 196608}, {{y = 0, x = 0}, n = 0}}, wedge_idx = 56 '8', mask_sign = 77 'M', interintra_mode = 144 '\220'}, {mv2d = {{y = 0, x = 3}, n = 196608}, matrix = {0, 0, 19768,
-21872}}}, comp_type = 28 '\034', inter_mode = 0 '\000', motion_mode = 0 '\000', drl_idx = 0 '\000', ref = "\000", max_ytx = 0 '\000', filter2d = 0 '\000', interintra_type = 0 '\000', tx_split0 = 0 '\000', tx_split1 = 0}}}
ts = <optimized out>
f = <optimized out>
b = <optimized out>
b_dim = 0x1d056cb848 <dav1d_block_dimensions> " \005\005 \020\005\004\020 \004\005\020\020\004\004\020\b\004\003\020\004\004\002\b\020\003\004\b\b\003\003\b\004\003\002\b\002\003\001\004\020\002\004\004\b\002\003\004\004\002\002\004\002\002\001\004\001\002"
by4 = 0
bw4 = <optimized out>
bh4 = <optimized out>
w4 = <optimized out>
h4 = 32
ss_hor = <optimized out>
cby4 = 0
cbx4 = 0
ss_ver = <optimized out>
cbw4 = 16
have_left = <optimized out>
bx4 = <optimized out>
cbh4 = 16
have_top = <optimized out>
has_chroma = <optimized out>
cw4 = <optimized out>
ch4 = <optimized out>
seg_pred = 0
seg = <optimized out>
#3 0x0000001d05747728 [PAC] in decode_sb (t=<optimized out>, bl=<optimized out>, node=0x1d057d4710 <nodes>) at ../dav1d-1.4.3/src/decode.c:2187
b = 0x1d056cb7e4 <dav1d_block_sizes> ""
f = <optimized out>
hsz = 16
have_v_split = <optimized out>
have_h_split = <optimized out>
pc = <optimized out>
bx8 = <optimized out>
by8 = <optimized out>
ctx = <optimized out>
bp = <optimized out>
ts = <optimized out>
#4 0x0000001d0574724c [PAC] in dav1d_decode_tile_sbrow (t=0x1ce4395000) at ../dav1d-1.4.3/src/decode.c:2735
f = 0x1d2cec4000
ts = <optimized out>
tile_col = <optimized out>
c = <optimized out>
tile_row = 0
root_bl = <optimized out>
col_sb128_start = <optimized out>
sb128y = <optimized out>
align_h = <optimized out>
sb_step = <optimized out>
col_sb_start = <optimized out>
ss_ver = <optimized out>
#5 0x0000001d0574a464 [PAC] in dav1d_decode_frame_main (f=0x1d2cec4000) at ../dav1d-1.4.3/src/decode.c:3246
tile_col = 0
by_end = 16
sby = 0
sbh_end = 7
tile_row = 0
retval = <error reading variable retval (Cannot access memory at address 0xffffffffffffffea)>
c = <optimized out>
t = 0x1ce4395000
#6 0x0000001d0574a800 [PAC] in dav1d_decode_frame (f=0x1d2cec4000) at ../dav1d-1.4.3/src/decode.c:3329
res = 1920
#7 0x0000001d0574b72c [PAC] in dav1d_submit_frame (c=0x1d40708000) at ../dav1d-1.4.3/src/decode.c:3719
ref_coded_width = {0, 0, 0, 6, 0, 1081114784, 29}
res = <optimized out>
f = 0x1d2cec4000
out_delayed = <optimized out>
bpc = <optimized out>
cols = <optimized out>
refresh_frame_flags = 255
uses_2pass = <optimized out>
rows = <optimized out>
#8 0x0000001d057699c0 [PAC] in dav1d_parse_obus (c=0x1d40708000, in=0x1d407080a0) at ../dav1d-1.4.3/src/obu.c:1703
gb = {state = 0, bits_left = 0, error = 0, ptr = 0x1d1668739d "\302\200@\364<`.~D\034\316\204\265t5L:\337\234\216\017\231\023\024\224Q\264\375\260", ptr_start = 0x1d16687391 "2'\020", ptr_end = 0x1d166873ba ""}
obu_forbidden_bit = <optimized out>
type = <optimized out>
has_extension = <optimized out>
has_length_field = <optimized out>
spatial_id = <optimized out>
temporal_id = <optimized out>
res = <optimized out>