/* SPDX-License-Identifier: GPL-2.0 */ #include "common.h" /* * Checks that registers contain what we expect, ie. they were not clobbered by * the syscall. * * r15: pattern to check registers against. * * At the end r3 == 0 if everything's OK. */ nop # guaranteed to be illegal in reverse-endian mr r9,r15 cmpd r9,r3 # check r3 bne 1f addi r9,r15,4 # check r4 cmpd r9,r4 bne 1f lis r9,0x00FF # check CR ori r9,r9,0xF000 mfcr r10 and r10,r10,r9 cmpw r9,r10 addi r9,r15,34 bne 1f addi r9,r15,32 # check LR mflr r10 cmpd r9,r10 bne 1f addi r9,r15,5 # check r5 cmpd r9,r5 bne 1f addi r9,r15,6 # check r6 cmpd r9,r6 bne 1f addi r9,r15,7 # check r7 cmpd r9,r7 bne 1f addi r9,r15,8 # check r8 cmpd r9,r8 bne 1f addi r9,r15,13 # check r13 cmpd r9,r13 bne 1f addi r9,r15,14 # check r14 cmpd r9,r14 bne 1f addi r9,r15,16 # check r16 cmpd r9,r16 bne 1f addi r9,r15,17 # check r17 cmpd r9,r17 bne 1f addi r9,r15,18 # check r18 cmpd r9,r18 bne 1f addi r9,r15,19 # check r19 cmpd r9,r19 bne 1f addi r9,r15,20 # check r20 cmpd r9,r20 bne 1f addi r9,r15,21 # check r21 cmpd r9,r21 bne 1f addi r9,r15,22 # check r22 cmpd r9,r22 bne 1f addi r9,r15,23 # check r23 cmpd r9,r23 bne 1f addi r9,r15,24 # check r24 cmpd r9,r24 bne 1f addi r9,r15,25 # check r25 cmpd r9,r25 bne 1f addi r9,r15,26 # check r26 cmpd r9,r26 bne 1f addi r9,r15,27 # check r27 cmpd r9,r27 bne 1f addi r9,r15,28 # check r28 cmpd r9,r28 bne 1f addi r9,r15,29 # check r29 cmpd r9,r29 bne 1f addi r9,r15,30 # check r30 cmpd r9,r30 bne 1f addi r9,r15,31 # check r31 cmpd r9,r31 bne 1f b 2f 1: mr r3, r9 li r0, __NR_exit sc 2: li r0, __NR_switch_endian nop