PageRenderTime 10ms CodeModel.GetById 1ms app.highlight 4ms RepoModel.GetById 2ms app.codeStats 0ms

/arch/ppc/syslib/dcr.S

https://bitbucket.org/evzijst/gittest
Assembly | 41 lines | 35 code | 6 blank | 0 comment | 0 complexity | 226b0607329d8a0ab75fee69c04f3d90 MD5 | raw file
 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