diff --git a/compiler-builtins/src/hexagon.rs b/compiler-builtins/src/hexagon.rs index 46062fc37..551186b1d 100644 --- a/compiler-builtins/src/hexagon.rs +++ b/compiler-builtins/src/hexagon.rs @@ -44,69 +44,34 @@ intrinsics! { } } -global_asm!(include_str!("hexagon/func_macro.s"), options(raw)); - +// All hexagon assembly must live in ONE `global_asm!` invocation, and +// `func_macro.s` must come first. global_asm!( + include_str!("hexagon/func_macro.s"), include_str!("hexagon/common_entry_exit_abi1.s"), - options(raw) -); - -global_asm!( include_str!("hexagon/common_entry_exit_abi2.s"), - options(raw) -); - -global_asm!( include_str!("hexagon/common_entry_exit_legacy.s"), - options(raw) -); - -global_asm!(include_str!("hexagon/dfaddsub.s"), options(raw)); - -global_asm!(include_str!("hexagon/dfdiv.s"), options(raw)); - -global_asm!(include_str!("hexagon/dffma.s"), options(raw)); - -global_asm!(include_str!("hexagon/dfminmax.s"), options(raw)); - -global_asm!(include_str!("hexagon/dfmul.s"), options(raw)); - -global_asm!(include_str!("hexagon/dfsqrt.s"), options(raw)); - -global_asm!(include_str!("hexagon/divdi3.s"), options(raw)); - -global_asm!(include_str!("hexagon/divsi3.s"), options(raw)); - -global_asm!(include_str!("hexagon/fastmath2_dlib_asm.s"), options(raw)); - -global_asm!(include_str!("hexagon/fastmath2_ldlib_asm.s"), options(raw)); - -global_asm!( + include_str!("hexagon/dfaddsub.s"), + include_str!("hexagon/dfdiv.s"), + include_str!("hexagon/dffma.s"), + include_str!("hexagon/dfminmax.s"), + include_str!("hexagon/dfmul.s"), + include_str!("hexagon/dfsqrt.s"), + include_str!("hexagon/divdi3.s"), + include_str!("hexagon/divsi3.s"), + include_str!("hexagon/fastmath2_dlib_asm.s"), + include_str!("hexagon/fastmath2_ldlib_asm.s"), include_str!("hexagon/memcpy_forward_vp4cp4n2.s"), - options(raw) -); - -global_asm!( include_str!("hexagon/memcpy_likely_aligned.s"), + include_str!("hexagon/moddi3.s"), + include_str!("hexagon/modsi3.s"), + include_str!("hexagon/sfdiv_opt.s"), + include_str!("hexagon/sfsqrt_opt.s"), + include_str!("hexagon/udivdi3.s"), + include_str!("hexagon/udivmoddi4.s"), + include_str!("hexagon/udivmodsi4.s"), + include_str!("hexagon/udivsi3.s"), + include_str!("hexagon/umoddi3.s"), + include_str!("hexagon/umodsi3.s"), options(raw) ); - -global_asm!(include_str!("hexagon/moddi3.s"), options(raw)); - -global_asm!(include_str!("hexagon/modsi3.s"), options(raw)); - -global_asm!(include_str!("hexagon/sfdiv_opt.s"), options(raw)); - -global_asm!(include_str!("hexagon/sfsqrt_opt.s"), options(raw)); - -global_asm!(include_str!("hexagon/udivdi3.s"), options(raw)); - -global_asm!(include_str!("hexagon/udivmoddi4.s"), options(raw)); - -global_asm!(include_str!("hexagon/udivmodsi4.s"), options(raw)); - -global_asm!(include_str!("hexagon/udivsi3.s"), options(raw)); - -global_asm!(include_str!("hexagon/umoddi3.s"), options(raw)); - -global_asm!(include_str!("hexagon/umodsi3.s"), options(raw));