brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 4015d5e Raw
66 lines · plain
1//===----------------------Hexagon builtin routine ------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9 10 11	.macro FUNCTION_BEGIN name12	.text13	.p2align 514	.globl \name15	.type  \name, @function16\name:17	.endm18 19	.macro FUNCTION_END name20	.size  \name, . - \name21	.endm22 23 24FUNCTION_BEGIN __hexagon_modsi325	{26		p2 = cmp.ge(r0,#0)27		r2 = abs(r0)28		r1 = abs(r1)29	}30	{31		r3 = cl0(r2)32		r4 = cl0(r1)33		p0 = cmp.gtu(r1,r2)34	}35	{36		r3 = sub(r4,r3)37		if (p0) jumpr r3138	}39	{40		p1 = cmp.eq(r3,#0)41		loop0(1f,r3)42		r0 = r243		r2 = lsl(r1,r3)44	}45	.falign461:47	{48		p0 = cmp.gtu(r2,r0)49		if (!p0.new) r0 = sub(r0,r2)50		r2 = lsr(r2,#1)51		if (p1) r1 = #052	}:endloop053	{54		p0 = cmp.gtu(r2,r0)55		if (!p0.new) r0 = sub(r0,r1)56		if (p2) jumpr r3157	}58	{59		r0 = neg(r0)60		jumpr r3161	}62FUNCTION_END __hexagon_modsi363 64  .globl __qdsp_modsi365  .set   __qdsp_modsi3, __hexagon_modsi366