summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/regs/regs-macro.h
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-06-13 19:03:33 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-06-15 22:27:34 +0200
commit017667c2dc9843eb5082e991f421c773636dcf36 (patch)
tree60432008dd3bc012ac60cbfa771305f6d894dd84 /firmware/target/arm/imx233/regs/regs-macro.h
parent97b9ade63945fd8b8261fb0cf1dd0aa225c1a319 (diff)
downloadrockbox-017667c2dc9843eb5082e991f421c773636dcf36.tar.gz
rockbox-017667c2dc9843eb5082e991f421c773636dcf36.zip
imx233: generate register headers for stmp3600, stmp3700 and imx233
Change-Id: Ia87086f4f4f4ecbb844ffd869407b14ea2509934
Diffstat (limited to 'firmware/target/arm/imx233/regs/regs-macro.h')
-rw-r--r--firmware/target/arm/imx233/regs/regs-macro.h496
1 files changed, 496 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/regs/regs-macro.h b/firmware/target/arm/imx233/regs/regs-macro.h
new file mode 100644
index 0000000000..c53bc8609b
--- /dev/null
+++ b/firmware/target/arm/imx233/regs/regs-macro.h
@@ -0,0 +1,496 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * This file was automatically generated by headergen, DO NOT EDIT it.
9 * headergen version: 2.1.7
10 *
11 * Copyright (C) 2013 by Amaury Pouly
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
17 *
18 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 * KIND, either express or implied.
20 *
21 ****************************************************************************/
22#ifndef __REGS__MACRO__H__
23#define __REGS__MACRO__H__
24
25#ifndef REG_WRITE
26#define REG_WRITE(var,value) ((var) = (value))
27#endif /* REG_WRITE */
28
29#ifndef REG_READ
30#define REG_READ(var) (var)
31#endif /* REG_READ */
32
33#define BF_SET(reg, field) REG_WRITE(HW_##reg##_SET, BM_##reg##_##field)
34#define BF_CLR(reg, field) REG_WRITE(HW_##reg##_CLR, BM_##reg##_##field)
35#define BF_TOG(reg, field) REG_WRITE(HW_##reg##_TOG, BM_##reg##_##field)
36
37#define BF_SETV(reg, field, v) REG_WRITE(HW_##reg##_SET, BF_##reg##_##field(v))
38#define BF_CLRV(reg, field, v) REG_WRITE(HW_##reg##_CLR, BF_##reg##_##field(v))
39#define BF_TOGV(reg, field, v) REG_WRITE(HW_##reg##_TOG, BF_##reg##_##field(v))
40
41#define BF_RDX(val, reg, field) ((REG_READ(val) & BM_##reg##_##field) >> BP_##reg##_##field)
42#define BF_RD(reg, field) BF_RDX(REG_READ(HW_##reg), reg, field)
43#define BF_WRX(val, reg, field, v) REG_WRITE(val, (REG_READ(val) & ~BM_##reg##_##field) | (((v) << BP_##reg##_##field) & BM_##reg##_##field))
44#define BF_WR(reg, field, v) BF_WRX(HW_##reg, reg, field, v)
45#define BF_WR_V(reg, field, sy) BF_WR(reg, field, BV_##reg##_##field##__##sy)
46#define BF_WR_VX(val, reg, field, sy) BF_WRX(val, reg, field, BV_##reg##_##field##__##sy)
47
48#define BF_SETn(reg, n, field) REG_WRITE(HW_##reg##_SET(n), BM_##reg##_##field)
49#define BF_CLRn(reg, n, field) REG_WRITE(HW_##reg##_CLR(n), BM_##reg##_##field)
50#define BF_TOGn(reg, n, field) REG_WRITE(HW_##reg##_TOG(n), BM_##reg##_##field)
51
52#define BF_SETVn(reg, n, field, v) REG_WRITE(HW_##reg##_SET(n), BF_##reg##_##field(v))
53#define BF_CLRVn(reg, n, field, v) REG_WRITE(HW_##reg##_CLR(n), BF_##reg##_##field(v))
54#define BF_TOGVn(reg, n, field, v) REG_WRITE(HW_##reg##_TOG(n), BF_##reg##_##field(v))
55
56#define BF_RDn(reg, n, field) BF_RDX(HW_##reg(n), reg, field)
57#define BF_WRn(reg, n, field, v) BF_WRX(HW_##reg(n), reg, field, v)
58#define BF_WRn_V(reg, n, field, sy) BF_WRn(reg, n, field, BV_##reg##_##field##__##sy)
59
60#define BM_OR1(reg, f01) \
61 (BM_##reg##_##f01)
62#define BM_OR2(reg, f01, f02) \
63 (BM_##reg##_##f01 | BM_##reg##_##f02)
64#define BM_OR3(reg, f01, f02, f03) \
65 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03)
66#define BM_OR4(reg, f01, f02, f03, f04) \
67 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04)
68#define BM_OR5(reg, f01, f02, f03, f04, f05) \
69 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
70 BM_##reg##_##f05)
71#define BM_OR6(reg, f01, f02, f03, f04, f05, f06) \
72 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
73 BM_##reg##_##f05 | BM_##reg##_##f06)
74#define BM_OR7(reg, f01, f02, f03, f04, f05, f06, f07) \
75 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
76 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07)
77#define BM_OR8(reg, f01, f02, f03, f04, f05, f06, f07, f08) \
78 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
79 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08)
80#define BM_OR9(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09) \
81 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
82 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
83 BM_##reg##_##f09)
84#define BM_OR10(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10) \
85 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
86 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
87 BM_##reg##_##f09 | BM_##reg##_##f10)
88#define BM_OR11(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
89 f11) \
90 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
91 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
92 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11)
93#define BM_OR12(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
94 f11, f12) \
95 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
96 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
97 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12)
98#define BM_OR13(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
99 f11, f12, f13) \
100 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
101 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
102 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
103 BM_##reg##_##f13)
104#define BM_OR14(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
105 f11, f12, f13, f14) \
106 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
107 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
108 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
109 BM_##reg##_##f13 | BM_##reg##_##f14)
110#define BM_OR15(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
111 f11, f12, f13, f14, f15) \
112 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
113 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
114 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
115 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15)
116#define BM_OR16(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
117 f11, f12, f13, f14, f15, f16) \
118 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
119 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
120 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
121 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16)
122#define BM_OR17(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
123 f11, f12, f13, f14, f15, f16, f17) \
124 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
125 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
126 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
127 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
128 BM_##reg##_##f17)
129#define BM_OR18(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
130 f11, f12, f13, f14, f15, f16, f17, f18) \
131 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
132 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
133 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
134 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
135 BM_##reg##_##f17 | BM_##reg##_##f18)
136#define BM_OR19(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
137 f11, f12, f13, f14, f15, f16, f17, f18, f19) \
138 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
139 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
140 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
141 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
142 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19)
143#define BM_OR20(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
144 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20) \
145 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
146 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
147 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
148 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
149 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20)
150#define BM_OR21(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
151 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
152 f21) \
153 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
154 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
155 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
156 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
157 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
158 BM_##reg##_##f21)
159#define BM_OR22(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
160 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
161 f21, f22) \
162 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
163 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
164 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
165 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
166 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
167 BM_##reg##_##f21 | BM_##reg##_##f22)
168#define BM_OR23(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
169 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
170 f21, f22, f23) \
171 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
172 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
173 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
174 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
175 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
176 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23)
177#define BM_OR24(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
178 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
179 f21, f22, f23, f24) \
180 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
181 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
182 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
183 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
184 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
185 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24)
186#define BM_OR25(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
187 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
188 f21, f22, f23, f24, f25) \
189 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
190 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
191 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
192 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
193 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
194 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
195 BM_##reg##_##f25)
196#define BM_OR26(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
197 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
198 f21, f22, f23, f24, f25, f26) \
199 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
200 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
201 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
202 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
203 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
204 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
205 BM_##reg##_##f25 | BM_##reg##_##f26)
206#define BM_OR27(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
207 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
208 f21, f22, f23, f24, f25, f26, f27) \
209 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
210 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
211 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
212 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
213 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
214 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
215 BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27)
216#define BM_OR28(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
217 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
218 f21, f22, f23, f24, f25, f26, f27, f28) \
219 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
220 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
221 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
222 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
223 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
224 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
225 BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28)
226#define BM_OR29(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
227 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
228 f21, f22, f23, f24, f25, f26, f27, f28, f29) \
229 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
230 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
231 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
232 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
233 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
234 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
235 BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \
236 BM_##reg##_##f29)
237#define BM_OR30(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
238 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
239 f21, f22, f23, f24, f25, f26, f27, f28, f29, f30) \
240 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
241 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
242 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
243 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
244 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
245 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
246 BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \
247 BM_##reg##_##f29 | BM_##reg##_##f30)
248#define BM_OR31(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
249 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
250 f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \
251 f31) \
252 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
253 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
254 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
255 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
256 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
257 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
258 BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \
259 BM_##reg##_##f29 | BM_##reg##_##f30 | BM_##reg##_##f31)
260#define BM_OR32(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
261 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
262 f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \
263 f31, f32) \
264 (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \
265 BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \
266 BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \
267 BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \
268 BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \
269 BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \
270 BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \
271 BM_##reg##_##f29 | BM_##reg##_##f30 | BM_##reg##_##f31 | BM_##reg##_##f32)
272
273#define BF_OR1(reg, f01) \
274 (BF_##reg##_##f01)
275#define BF_OR2(reg, f01, f02) \
276 (BF_##reg##_##f01 | BF_##reg##_##f02)
277#define BF_OR3(reg, f01, f02, f03) \
278 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03)
279#define BF_OR4(reg, f01, f02, f03, f04) \
280 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04)
281#define BF_OR5(reg, f01, f02, f03, f04, f05) \
282 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
283 BF_##reg##_##f05)
284#define BF_OR6(reg, f01, f02, f03, f04, f05, f06) \
285 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
286 BF_##reg##_##f05 | BF_##reg##_##f06)
287#define BF_OR7(reg, f01, f02, f03, f04, f05, f06, f07) \
288 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
289 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07)
290#define BF_OR8(reg, f01, f02, f03, f04, f05, f06, f07, f08) \
291 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
292 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08)
293#define BF_OR9(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09) \
294 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
295 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
296 BF_##reg##_##f09)
297#define BF_OR10(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10) \
298 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
299 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
300 BF_##reg##_##f09 | BF_##reg##_##f10)
301#define BF_OR11(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
302 f11) \
303 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
304 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
305 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11)
306#define BF_OR12(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
307 f11, f12) \
308 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
309 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
310 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12)
311#define BF_OR13(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
312 f11, f12, f13) \
313 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
314 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
315 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
316 BF_##reg##_##f13)
317#define BF_OR14(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
318 f11, f12, f13, f14) \
319 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
320 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
321 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
322 BF_##reg##_##f13 | BF_##reg##_##f14)
323#define BF_OR15(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
324 f11, f12, f13, f14, f15) \
325 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
326 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
327 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
328 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15)
329#define BF_OR16(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
330 f11, f12, f13, f14, f15, f16) \
331 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
332 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
333 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
334 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16)
335#define BF_OR17(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
336 f11, f12, f13, f14, f15, f16, f17) \
337 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
338 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
339 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
340 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
341 BF_##reg##_##f17)
342#define BF_OR18(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
343 f11, f12, f13, f14, f15, f16, f17, f18) \
344 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
345 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
346 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
347 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
348 BF_##reg##_##f17 | BF_##reg##_##f18)
349#define BF_OR19(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
350 f11, f12, f13, f14, f15, f16, f17, f18, f19) \
351 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
352 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
353 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
354 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
355 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19)
356#define BF_OR20(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
357 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20) \
358 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
359 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
360 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
361 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
362 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20)
363#define BF_OR21(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
364 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
365 f21) \
366 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
367 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
368 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
369 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
370 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
371 BF_##reg##_##f21)
372#define BF_OR22(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
373 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
374 f21, f22) \
375 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
376 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
377 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
378 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
379 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
380 BF_##reg##_##f21 | BF_##reg##_##f22)
381#define BF_OR23(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
382 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
383 f21, f22, f23) \
384 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
385 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
386 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
387 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
388 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
389 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23)
390#define BF_OR24(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
391 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
392 f21, f22, f23, f24) \
393 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
394 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
395 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
396 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
397 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
398 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24)
399#define BF_OR25(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
400 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
401 f21, f22, f23, f24, f25) \
402 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
403 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
404 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
405 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
406 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
407 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
408 BF_##reg##_##f25)
409#define BF_OR26(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
410 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
411 f21, f22, f23, f24, f25, f26) \
412 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
413 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
414 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
415 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
416 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
417 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
418 BF_##reg##_##f25 | BF_##reg##_##f26)
419#define BF_OR27(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
420 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
421 f21, f22, f23, f24, f25, f26, f27) \
422 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
423 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
424 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
425 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
426 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
427 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
428 BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27)
429#define BF_OR28(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
430 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
431 f21, f22, f23, f24, f25, f26, f27, f28) \
432 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
433 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
434 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
435 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
436 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
437 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
438 BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28)
439#define BF_OR29(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
440 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
441 f21, f22, f23, f24, f25, f26, f27, f28, f29) \
442 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
443 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
444 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
445 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
446 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
447 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
448 BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \
449 BF_##reg##_##f29)
450#define BF_OR30(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
451 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
452 f21, f22, f23, f24, f25, f26, f27, f28, f29, f30) \
453 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
454 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
455 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
456 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
457 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
458 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
459 BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \
460 BF_##reg##_##f29 | BF_##reg##_##f30)
461#define BF_OR31(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
462 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
463 f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \
464 f31) \
465 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
466 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
467 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
468 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
469 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
470 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
471 BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \
472 BF_##reg##_##f29 | BF_##reg##_##f30 | BF_##reg##_##f31)
473#define BF_OR32(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \
474 f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \
475 f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \
476 f31, f32) \
477 (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \
478 BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \
479 BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \
480 BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \
481 BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \
482 BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \
483 BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \
484 BF_##reg##_##f29 | BF_##reg##_##f30 | BF_##reg##_##f31 | BF_##reg##_##f32)
485
486#define REG_NARG(...) REG_NARGS_(__VA_ARGS__, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
487#define REG_NARGS_(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, N, ...) N
488
489#define REG_VARIADIC(macro, reg, ...) REG_VARIADIC_(macro, NARG(__VA_ARGS__), reg, __VA_ARGS__)
490#define REG_VARIADIC_(macro, cnt, reg, ...) REG_VARIADIC__(macro, cnt, reg, __VA_ARGS__)
491#define REG_VARIADIC__(macro, cnt, reg, ...) REG_VARIADIC___(macro##cnt, reg, ...)
492#define REG_VARIADIC___(macro, reg, ...) macro(reg, __VA_ARGS__)
493
494#define BM_OR(reg, ...) REG_VARIADIC(BM_OR, reg, __VA_ARGS__)
495#define BF_OR(reg, ...) REG_VARIADIC(BF_OR, reg, __VA_ARGS__)
496#endif /* __REGS__MACRO__H__ */