at v2.6.16 41 lines 886 B view raw
1/* 2 * arch/ppc/syslib/dcr.S 3 * 4 * "Indirect" DCR access 5 * 6 * Copyright (c) 2004 Eugene Surovegin <ebs@ebshome.net> 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License as published by the 10 * Free Software Foundation; either version 2 of the License, or (at your 11 * option) any later version. 12 */ 13 14#include <asm/ppc_asm.h> 15#include <asm/processor.h> 16 17#define DCR_ACCESS_PROLOG(table) \ 18 rlwinm r3,r3,4,18,27; \ 19 lis r5,table@h; \ 20 ori r5,r5,table@l; \ 21 add r3,r3,r5; \ 22 mtctr r3; \ 23 bctr 24 25_GLOBAL(__mfdcr) 26 DCR_ACCESS_PROLOG(__mfdcr_table) 27 28_GLOBAL(__mtdcr) 29 DCR_ACCESS_PROLOG(__mtdcr_table) 30 31__mfdcr_table: 32 mfdcr r3,0; blr 33__mtdcr_table: 34 mtdcr 0,r4; blr 35 36dcr = 1 37 .rept 1023 38 mfdcr r3,dcr; blr 39 mtdcr dcr,r4; blr 40 dcr = dcr + 1 41 .endr