/*************************************************************************** * __________ __ ___. * Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * \/ \/ \/ \/ \/ * This file was automatically generated by headergen, DO NOT EDIT it. * headergen version: 2.1.7 * * Copyright (C) 2013 by Amaury Pouly * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/ #ifndef __REGS__MACRO__H__ #define __REGS__MACRO__H__ #ifndef REG_WRITE #define REG_WRITE(var,value) ((var) = (value)) #endif /* REG_WRITE */ #ifndef REG_READ #define REG_READ(var) (var) #endif /* REG_READ */ #define BF_SET(reg, field) REG_WRITE(HW_##reg##_SET, BM_##reg##_##field) #define BF_CLR(reg, field) REG_WRITE(HW_##reg##_CLR, BM_##reg##_##field) #define BF_TOG(reg, field) REG_WRITE(HW_##reg##_TOG, BM_##reg##_##field) #define BF_SETV(reg, field, v) REG_WRITE(HW_##reg##_SET, BF_##reg##_##field(v)) #define BF_CLRV(reg, field, v) REG_WRITE(HW_##reg##_CLR, BF_##reg##_##field(v)) #define BF_TOGV(reg, field, v) REG_WRITE(HW_##reg##_TOG, BF_##reg##_##field(v)) #define BF_RDX(val, reg, field) ((REG_READ(val) & BM_##reg##_##field) >> BP_##reg##_##field) #define BF_RD(reg, field) BF_RDX(REG_READ(HW_##reg), reg, field) #define BF_WRX(val, reg, field, v) REG_WRITE(val, (REG_READ(val) & ~BM_##reg##_##field) | (((v) << BP_##reg##_##field) & BM_##reg##_##field)) #define BF_WR(reg, field, v) BF_WRX(HW_##reg, reg, field, v) #define BF_WR_V(reg, field, sy) BF_WR(reg, field, BV_##reg##_##field##__##sy) #define BF_WR_VX(val, reg, field, sy) BF_WRX(val, reg, field, BV_##reg##_##field##__##sy) #define BF_SETn(reg, n, field) REG_WRITE(HW_##reg##_SET(n), BM_##reg##_##field) #define BF_CLRn(reg, n, field) REG_WRITE(HW_##reg##_CLR(n), BM_##reg##_##field) #define BF_TOGn(reg, n, field) REG_WRITE(HW_##reg##_TOG(n), BM_##reg##_##field) #define BF_SETVn(reg, n, field, v) REG_WRITE(HW_##reg##_SET(n), BF_##reg##_##field(v)) #define BF_CLRVn(reg, n, field, v) REG_WRITE(HW_##reg##_CLR(n), BF_##reg##_##field(v)) #define BF_TOGVn(reg, n, field, v) REG_WRITE(HW_##reg##_TOG(n), BF_##reg##_##field(v)) #define BF_RDn(reg, n, field) BF_RDX(HW_##reg(n), reg, field) #define BF_WRn(reg, n, field, v) BF_WRX(HW_##reg(n), reg, field, v) #define BF_WRn_V(reg, n, field, sy) BF_WRn(reg, n, field, BV_##reg##_##field##__##sy) #define BM_OR1(reg, f01) \ (BM_##reg##_##f01) #define BM_OR2(reg, f01, f02) \ (BM_##reg##_##f01 | BM_##reg##_##f02) #define BM_OR3(reg, f01, f02, f03) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03) #define BM_OR4(reg, f01, f02, f03, f04) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04) #define BM_OR5(reg, f01, f02, f03, f04, f05) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05) #define BM_OR6(reg, f01, f02, f03, f04, f05, f06) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06) #define BM_OR7(reg, f01, f02, f03, f04, f05, f06, f07) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07) #define BM_OR8(reg, f01, f02, f03, f04, f05, f06, f07, f08) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08) #define BM_OR9(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09) #define BM_OR10(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10) #define BM_OR11(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11) #define BM_OR12(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12) #define BM_OR13(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13) #define BM_OR14(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14) #define BM_OR15(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15) #define BM_OR16(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16) #define BM_OR17(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17) #define BM_OR18(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18) #define BM_OR19(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19) #define BM_OR20(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20) #define BM_OR21(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21) #define BM_OR22(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22) #define BM_OR23(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23) #define BM_OR24(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24) #define BM_OR25(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25) #define BM_OR26(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25 | BM_##reg##_##f26) #define BM_OR27(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27) #define BM_OR28(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28) #define BM_OR29(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \ BM_##reg##_##f29) #define BM_OR30(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29, f30) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \ BM_##reg##_##f29 | BM_##reg##_##f30) #define BM_OR31(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \ f31) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \ BM_##reg##_##f29 | BM_##reg##_##f30 | BM_##reg##_##f31) #define BM_OR32(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \ f31, f32) \ (BM_##reg##_##f01 | BM_##reg##_##f02 | BM_##reg##_##f03 | BM_##reg##_##f04 | \ BM_##reg##_##f05 | BM_##reg##_##f06 | BM_##reg##_##f07 | BM_##reg##_##f08 | \ BM_##reg##_##f09 | BM_##reg##_##f10 | BM_##reg##_##f11 | BM_##reg##_##f12 | \ BM_##reg##_##f13 | BM_##reg##_##f14 | BM_##reg##_##f15 | BM_##reg##_##f16 | \ BM_##reg##_##f17 | BM_##reg##_##f18 | BM_##reg##_##f19 | BM_##reg##_##f20 | \ BM_##reg##_##f21 | BM_##reg##_##f22 | BM_##reg##_##f23 | BM_##reg##_##f24 | \ BM_##reg##_##f25 | BM_##reg##_##f26 | BM_##reg##_##f27 | BM_##reg##_##f28 | \ BM_##reg##_##f29 | BM_##reg##_##f30 | BM_##reg##_##f31 | BM_##reg##_##f32) #define BF_OR1(reg, f01) \ (BF_##reg##_##f01) #define BF_OR2(reg, f01, f02) \ (BF_##reg##_##f01 | BF_##reg##_##f02) #define BF_OR3(reg, f01, f02, f03) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03) #define BF_OR4(reg, f01, f02, f03, f04) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04) #define BF_OR5(reg, f01, f02, f03, f04, f05) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05) #define BF_OR6(reg, f01, f02, f03, f04, f05, f06) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06) #define BF_OR7(reg, f01, f02, f03, f04, f05, f06, f07) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07) #define BF_OR8(reg, f01, f02, f03, f04, f05, f06, f07, f08) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08) #define BF_OR9(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09) #define BF_OR10(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10) #define BF_OR11(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11) #define BF_OR12(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12) #define BF_OR13(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13) #define BF_OR14(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14) #define BF_OR15(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15) #define BF_OR16(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16) #define BF_OR17(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17) #define BF_OR18(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18) #define BF_OR19(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19) #define BF_OR20(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20) #define BF_OR21(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21) #define BF_OR22(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22) #define BF_OR23(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23) #define BF_OR24(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24) #define BF_OR25(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25) #define BF_OR26(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25 | BF_##reg##_##f26) #define BF_OR27(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27) #define BF_OR28(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28) #define BF_OR29(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \ BF_##reg##_##f29) #define BF_OR30(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29, f30) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \ BF_##reg##_##f29 | BF_##reg##_##f30) #define BF_OR31(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \ f31) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \ BF_##reg##_##f29 | BF_##reg##_##f30 | BF_##reg##_##f31) #define BF_OR32(reg, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, \ f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, \ f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, \ f31, f32) \ (BF_##reg##_##f01 | BF_##reg##_##f02 | BF_##reg##_##f03 | BF_##reg##_##f04 | \ BF_##reg##_##f05 | BF_##reg##_##f06 | BF_##reg##_##f07 | BF_##reg##_##f08 | \ BF_##reg##_##f09 | BF_##reg##_##f10 | BF_##reg##_##f11 | BF_##reg##_##f12 | \ BF_##reg##_##f13 | BF_##reg##_##f14 | BF_##reg##_##f15 | BF_##reg##_##f16 | \ BF_##reg##_##f17 | BF_##reg##_##f18 | BF_##reg##_##f19 | BF_##reg##_##f20 | \ BF_##reg##_##f21 | BF_##reg##_##f22 | BF_##reg##_##f23 | BF_##reg##_##f24 | \ BF_##reg##_##f25 | BF_##reg##_##f26 | BF_##reg##_##f27 | BF_##reg##_##f28 | \ BF_##reg##_##f29 | BF_##reg##_##f30 | BF_##reg##_##f31 | BF_##reg##_##f32) #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) #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 #define REG_VARIADIC(macro, reg, ...) REG_VARIADIC_(macro, NARG(__VA_ARGS__), reg, __VA_ARGS__) #define REG_VARIADIC_(macro, cnt, reg, ...) REG_VARIADIC__(macro, cnt, reg, __VA_ARGS__) #define REG_VARIADIC__(macro, cnt, reg, ...) REG_VARIADIC___(macro##cnt, reg, ...) #define REG_VARIADIC___(macro, reg, ...) macro(reg, __VA_ARGS__) #define BM_OR(reg, ...) REG_VARIADIC(BM_OR, reg, __VA_ARGS__) #define BF_OR(reg, ...) REG_VARIADIC(BF_OR, reg, __VA_ARGS__) #endif /* __REGS__MACRO__H__ */