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

loop.S (1300B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright 2013, Michael Ellerman, IBM Corp.
      4 */
      5
      6#include <ppc-asm.h>
      7
      8	.text
      9
     10FUNC_START(thirty_two_instruction_loop)
     11	cmpdi	r3,0
     12	beqlr
     13	addi	r4,r3,1
     14	addi	r4,r4,1
     15	addi	r4,r4,1
     16	addi	r4,r4,1
     17	addi	r4,r4,1
     18	addi	r4,r4,1
     19	addi	r4,r4,1
     20	addi	r4,r4,1
     21	addi	r4,r4,1
     22	addi	r4,r4,1
     23	addi	r4,r4,1
     24	addi	r4,r4,1
     25	addi	r4,r4,1
     26	addi	r4,r4,1
     27	addi	r4,r4,1
     28	addi	r4,r4,1
     29	addi	r4,r4,1
     30	addi	r4,r4,1
     31	addi	r4,r4,1
     32	addi	r4,r4,1
     33	addi	r4,r4,1
     34	addi	r4,r4,1
     35	addi	r4,r4,1
     36	addi	r4,r4,1
     37	addi	r4,r4,1
     38	addi	r4,r4,1
     39	addi	r4,r4,1
     40	addi	r4,r4,1	# 28 addi's
     41	subi	r3,r3,1
     42	b	FUNC_NAME(thirty_two_instruction_loop)
     43FUNC_END(thirty_two_instruction_loop)
     44
     45FUNC_START(thirty_two_instruction_loop_with_ll_sc)
     46	cmpdi	r3,0
     47	beqlr
     48	addi	r5,r5,1
     49	addi	r5,r5,1
     50	addi	r5,r5,1		# 5
     51	addi	r5,r5,1
     52	addi	r5,r5,1
     53	addi	r5,r5,1
     54	addi	r5,r5,1
     551:	ldarx	r6,0,r4		# 10
     56	addi	r5,r5,1
     57	addi	r5,r5,1
     58	addi	r5,r5,1
     59	addi	r5,r5,1
     60	addi	r5,r5,1		# 15
     61	addi	r5,r5,1
     62	addi	r5,r5,1
     63	stdcx.	r6,0,r4
     64	bne-	1b
     65	addi	r5,r5,1		# 20
     66	addi	r5,r5,1
     67	addi	r5,r5,1
     68	addi	r5,r5,1
     69	addi	r5,r5,1
     70	addi	r5,r5,1		# 25
     71	addi	r5,r5,1
     72	addi	r5,r5,1
     73	addi	r5,r5,1
     74	addi	r5,r5,1
     75	addi	r5,r5,1		# 30
     76	subi	r3,r3,1
     77	b	FUNC_NAME(thirty_two_instruction_loop_with_ll_sc)
     78FUNC_END(thirty_two_instruction_loop_with_ll_sc)