12874c5fdSThomas Gleixner/* SPDX-License-Identifier: GPL-2.0-or-later */ 273760931SAnshuman Khandual/* 373760931SAnshuman Khandual * Basic assembly code to read BHRB entries 473760931SAnshuman Khandual * 573760931SAnshuman Khandual * Copyright 2013 Anshuman Khandual, IBM Corporation. 673760931SAnshuman Khandual */ 773760931SAnshuman Khandual#include <asm/ppc_asm.h> 873760931SAnshuman Khandual#include <asm/ppc-opcode.h> 973760931SAnshuman Khandual 1073760931SAnshuman Khandual .text 1173760931SAnshuman Khandual 1273760931SAnshuman Khandual.balign 8 1373760931SAnshuman Khandual 1473760931SAnshuman Khandual/* r3 = n (where n = [0-31]) 1573760931SAnshuman Khandual * The maximum number of BHRB entries supported with PPC_MFBHRBE instruction 1673760931SAnshuman Khandual * is 1024. We have limited number of table entries here as POWER8 implements 1773760931SAnshuman Khandual * 32 BHRB entries. 1873760931SAnshuman Khandual */ 1973760931SAnshuman Khandual 2073760931SAnshuman Khandual/* .global read_bhrb */ 2173760931SAnshuman Khandual_GLOBAL(read_bhrb) 2273760931SAnshuman Khandual cmpldi r3,31 2373760931SAnshuman Khandual bgt 1f 24*dab3b8f4SNicholas Piggin LOAD_REG_ADDR(r4, bhrb_table) 2573760931SAnshuman Khandual sldi r3,r3,3 2673760931SAnshuman Khandual add r3,r4,r3 2773760931SAnshuman Khandual mtctr r3 2873760931SAnshuman Khandual bctr 2973760931SAnshuman Khandual1: li r3,0 3073760931SAnshuman Khandual blr 3173760931SAnshuman Khandual 3273760931SAnshuman Khandual#define MFBHRB_TABLE1(n) PPC_MFBHRBE(R3,n); blr 3373760931SAnshuman Khandual#define MFBHRB_TABLE2(n) MFBHRB_TABLE1(n); MFBHRB_TABLE1(n+1) 3473760931SAnshuman Khandual#define MFBHRB_TABLE4(n) MFBHRB_TABLE2(n); MFBHRB_TABLE2(n+2) 3573760931SAnshuman Khandual#define MFBHRB_TABLE8(n) MFBHRB_TABLE4(n); MFBHRB_TABLE4(n+4) 3673760931SAnshuman Khandual#define MFBHRB_TABLE16(n) MFBHRB_TABLE8(n); MFBHRB_TABLE8(n+8) 3773760931SAnshuman Khandual#define MFBHRB_TABLE32(n) MFBHRB_TABLE16(n); MFBHRB_TABLE16(n+16) 3873760931SAnshuman Khandual 3973760931SAnshuman Khandualbhrb_table: 4073760931SAnshuman Khandual MFBHRB_TABLE32(0) 41