COND
{(FORMAT2(0, 2) | COND(8)), "ba", "a,m"},
{(FORMAT2(0, 2) | COND(0)), "bn", "a,m"},
{(FORMAT2(0, 2) | COND(9)), "bne", "a,m"},
{(FORMAT2(0, 2) | COND(1)), "be", "a,m"},
{(FORMAT2(0, 2) | COND(10)), "bg", "a,m"},
{(FORMAT2(0, 2) | COND(2)), "ble", "a,m"},
{(FORMAT2(0, 2) | COND(11)), "bge", "a,m"},
{(FORMAT2(0, 2) | COND(3)), "bl", "a,m"},
{(FORMAT2(0, 2) | COND(12)), "bgu", "a,m"},
{(FORMAT2(0, 2) | COND(4)), "bleu", "a,m"},
{(FORMAT2(0, 2) | COND(13)), "bcc", "a,m"},
{(FORMAT2(0, 2) | COND(5)), "bcs", "a,m"},
{(FORMAT2(0, 2) | COND(14)), "bpos", "a,m"},
{(FORMAT2(0, 2) | COND(6)), "bneg", "a,m"},
{(FORMAT2(0, 2) | COND(15)), "bvc", "a,m"},
{(FORMAT2(0, 2) | COND(7)), "bvs", "a,m"},
{(FORMAT2(0, 1) | COND(8)), "ba", "ap,u"},
{(FORMAT2(0, 1) | COND(0)), "bn", "ap,u"},
{(FORMAT2(0, 1) | COND(9)), "bne", "ap,u"},
{(FORMAT2(0, 1) | COND(1)), "be", "ap,u"},
{(FORMAT2(0, 1) | COND(10)), "bg", "ap,u"},
{(FORMAT2(0, 1) | COND(2)), "ble", "ap,u"},
{(FORMAT2(0, 1) | COND(11)), "bge", "ap,u"},
{(FORMAT2(0, 1) | COND(3)), "bl", "ap,u"},
{(FORMAT2(0, 1) | COND(12)), "bgu", "ap,u"},
{(FORMAT2(0, 1) | COND(4)), "bleu", "ap,u"},
{(FORMAT2(0, 1) | COND(13)), "bcc", "ap,u"},
{(FORMAT2(0, 1) | COND(5)), "bcs", "ap,u"},
{(FORMAT2(0, 1) | COND(14)), "bpos", "ap,u"},
{(FORMAT2(0, 1) | COND(6)), "bneg", "ap,u"},
{(FORMAT2(0, 1) | COND(15)), "bvc", "ap,u"},
{(FORMAT2(0, 1) | COND(7)), "bvs", "ap,u"},
{(FORMAT2(0, 5) | COND(8)), "fba", "ap,m"},
{(FORMAT2(0, 5) | COND(0)), "fbn", "ap,m"},
{(FORMAT2(0, 5) | COND(7)), "fbu", "ap,m"},
{(FORMAT2(0, 5) | COND(6)), "fbg", "ap,m"},
{(FORMAT2(0, 5) | COND(5)), "fbug", "ap,m"},
{(FORMAT2(0, 5) | COND(4)), "fbl", "ap,m"},
{(FORMAT2(0, 5) | COND(3)), "fbul", "ap,m"},
{(FORMAT2(0, 5) | COND(2)), "fblg", "ap,m"},
{(FORMAT2(0, 5) | COND(1)), "fbne", "ap,m"},
{(FORMAT2(0, 5) | COND(9)), "fbe", "ap,m"},
{(FORMAT2(0, 5) | COND(10)), "fbue", "ap,m"},
{(FORMAT2(0, 5) | COND(11)), "fbge", "ap,m"},
{(FORMAT2(0, 5) | COND(12)), "fbuge", "ap,m"},
{(FORMAT2(0, 5) | COND(13)), "fble", "ap,m"},
{(FORMAT2(0, 5) | COND(14)), "fbule", "ap,m"},
{(FORMAT2(0, 5) | COND(15)), "fbo", "ap,m"},
{(FORMAT2(0, 6) | COND(8)), "fba", "a,m"},
{(FORMAT2(0, 6) | COND(0)), "fbn", "a,m"},
{(FORMAT2(0, 6) | COND(7)), "fbu", "a,m"},
{(FORMAT2(0, 6) | COND(6)), "fbg", "a,m"},
{(FORMAT2(0, 6) | COND(5)), "fbug", "a,m"},
{(FORMAT2(0, 6) | COND(4)), "fbl", "a,m"},
{(FORMAT2(0, 6) | COND(3)), "fbul", "a,m"},
{(FORMAT2(0, 6) | COND(2)), "fblg", "a,m"},
{(FORMAT2(0, 6) | COND(1)), "fbne", "a,m"},
{(FORMAT2(0, 6) | COND(9)), "fbe", "a,m"},
{(FORMAT2(0, 6) | COND(10)), "fbue", "a,m"},
{(FORMAT2(0, 6) | COND(11)), "fbge", "a,m"},
{(FORMAT2(0, 6) | COND(12)), "fbuge", "a,m"},
{(FORMAT2(0, 6) | COND(13)), "fble", "a,m"},
{(FORMAT2(0, 6) | COND(14)), "fbule", "a,m"},
{(FORMAT2(0, 6) | COND(15)), "fbo", "a,m"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x8)), "ta", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x8)), "ta", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x0)), "tn", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x0)), "tn", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x9)), "tne", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x9)), "tne", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x1)), "te", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x1)), "te", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0xa)), "tg", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0xa)), "tg", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x2)), "tle", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x2)), "tle", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0xb)), "tge", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0xb)), "tge", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x3)), "tl", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x3)), "tl", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0xc)), "tgu", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0xc)), "tgu", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x4)), "tleu", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x4)), "tleu", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0xd)), "tcc", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0xd)), "tcc", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x5)), "tcs", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x5)), "tcs", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0xe)), "tpos", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0xe)), "tpos", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x6)), "tneg", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x6)), "tneg", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0xf)), "tvc", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0xf)), "tvc", "0F"},
{(FORMAT3(2, OP3_X(3,10), 0) | COND(0x7)), "tvs", "12F"},
{(FORMAT3(2, OP3_X(3,10), 1) | COND(0x7)), "tvs", "0F"},
you_lose &= (FORMAT2(0x3,0x7)|COND(0xf));
you_lose &= (FORMAT3(0x3,0x3f,0x1) | COND(0xf));
#define DMAWAIT(SC, COND, MSG, DONTPANIC) do if (COND) { \
while ((COND) && --count > 0) DELAY(1); \
ret__ = _wait_for((COND), (US), 10, 10); \
ret__ = _wait_for_atomic((COND), (US), 0); \
#define wait_for_atomic_us(COND, US) \
_wait_for_atomic((COND), (US), 1); \
#define wait_for_atomic(COND, MS) wait_for_atomic_us((COND), (MS) * 1000)
#define __wait_for(OP, COND, US, Wmin, Wmax) ({ \
if (COND) { \
#define _wait_for(COND, US, Wmin, Wmax) __wait_for(, (COND), (US), (Wmin), \
#define wait_for(COND, MS) _wait_for((COND), (MS) * 1000, 10, 1000)
#define _wait_for_atomic(COND, US, ATOMIC) \
if (COND) { \
#define wait_for_us(COND, US) \
if (COND) {
ret = _wait_for(COND, timeout_base_ms * 1000, 10, 10);
ret = wait_for_atomic(COND, 50);
if (wait_for(COND, 2000) == -ETIMEDOUT) {
#define CONDITIONAL_SET_FLAG(COND,FLAG) \
if (COND) SET_FLAG(FLAG); else CLEAR_FLAG(FLAG)
if (DEBUG(COND))
if (DEBUG(COND))
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++)
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {
for (count = 0, run = 1; COND; count++) {