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

umodsi3.S (848B)


      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_umodsi3)
      9        {
     10                r2 = cl0(r0)
     11                r3 = cl0(r1)
     12                p0 = cmp.gtu(r1,r0)
     13        }
     14        {
     15                r2 = sub(r3,r2)
     16                if (p0) jumpr r31
     17        }
     18        {
     19                loop0(1f,r2)
     20                p1 = cmp.eq(r2,#0)
     21                r2 = lsl(r1,r2)
     22        }
     23        .falign
     241:
     25        {
     26                p0 = cmp.gtu(r2,r0)
     27                if (!p0.new) r0 = sub(r0,r2)
     28                r2 = lsr(r2,#1)
     29                if (p1) r1 = #0
     30        }:endloop0
     31        {
     32                p0 = cmp.gtu(r2,r0)
     33                if (!p0.new) r0 = sub(r0,r1)
     34                jumpr r31
     35        }
     36SYM_FUNC_END(__hexagon_umodsi3)