cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

udivsi3.S (938B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
      4 */
      5
      6#include <linux/linkage.h>
      7
      8SYM_FUNC_START(__hexagon_udivsi3)
      9        {
     10                r2 = cl0(r0)
     11                r3 = cl0(r1)
     12                r5:4 = combine(#1,#0)
     13                p0 = cmp.gtu(r1,r0)
     14        }
     15        {
     16                r6 = sub(r3,r2)
     17                r4 = r1
     18                r1:0 = combine(r0,r4)
     19                if (p0) jumpr r31
     20        }
     21        {
     22                r3:2 = vlslw(r5:4,r6)
     23                loop0(1f,r6)
     24        }
     25        .falign
     261:
     27        {
     28                p0 = cmp.gtu(r2,r1)
     29                if (!p0.new) r1 = sub(r1,r2)
     30                if (!p0.new) r0 = add(r0,r3)
     31                r3:2 = vlsrw(r3:2,#1)
     32        }:endloop0
     33        {
     34                p0 = cmp.gtu(r2,r1)
     35                if (!p0.new) r0 = add(r0,r3)
     36                jumpr r31
     37        }
     38SYM_FUNC_END(__hexagon_udivsi3)