1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 * Quadword loads and stores 4 * for use in instruction emulation. 5 * 6 * Copyright 2017 Paul Mackerras, IBM Corp. <paulus@au1.ibm.com> 7 */ 8 9#include <asm/processor.h> 10#include <asm/ppc_asm.h> 11#include <asm/ppc-opcode.h> 12#include <asm/reg.h> 13#include <asm/asm-offsets.h> 14#include <linux/errno.h> 15 16/* do_lq(unsigned long ea, unsigned long *regs) */ 17_GLOBAL(do_lq) 181: lq r6, 0(r3) 19 std r6, 0(r4) 20 std r7, 8(r4) 21 li r3, 0 22 blr 232: li r3, -EFAULT 24 blr 25 EX_TABLE(1b, 2b) 26 27/* do_stq(unsigned long ea, unsigned long val0, unsigned long val1) */ 28_GLOBAL(do_stq) 291: stq r4, 0(r3) 30 li r3, 0 31 blr 322: li r3, -EFAULT 33 blr 34 EX_TABLE(1b, 2b) 35 36/* do_lqarx(unsigned long ea, unsigned long *regs) */ 37_GLOBAL(do_lqarx) 381: PPC_LQARX(6, 0, 3, 0) 39 std r6, 0(r4) 40 std r7, 8(r4) 41 li r3, 0 42 blr 432: li r3, -EFAULT 44 blr 45 EX_TABLE(1b, 2b) 46 47/* do_stqcx(unsigned long ea, unsigned long val0, unsigned long val1, 48 unsigned int *crp) */ 49 50_GLOBAL(do_stqcx) 511: PPC_STQCX(4, 0, 3) 52 mfcr r5 53 stw r5, 0(r6) 54 li r3, 0 55 blr 562: li r3, -EFAULT 57 blr 58 EX_TABLE(1b, 2b) 59