ORB — Boolean Or

Instruction Word

Slot
Inst
6
3
6
2
6
1
6
0
5
9
5
8
5
7
5
6
5
5
5
4
5
3
5
2
5
1
5
0
4
9
4
8
4
7
4
6
4
5
4
4
4
3
4
2
4
1
4
0
3
9
3
8
3
7
3
6
3
5
3
4
3
3
3
2
3
1
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
9876543210
Format x24 - 24 bit(s) 0
ORB 00100010 0000
r 3210
s 3210
t 3210

Assembler Syntax

ORB br, bs, bt

C Syntax

#include <xtensa/tie/xt_booleans.h>

extern xtbool XT_ORB(xtbool bs, xtbool bt);

Description

(please consult the Xtensa ® Instruction Set Architecture Reference Manual for any cross references and additional information)

ORB performs the logical or of Boolean registers bs and bt, and writes the result to Boolean register br.

When the sense of one of the source Booleans is inverted (0 ® true, 1 ® false), use ORBC. When the sense of both of the source Booleans is inverted, use ANDB and an inverted test of the result.

Operation

BRr ← BRs or BRt

Exceptions

EveryInst Group (see EveryInst Group:)

Implementation Pipeline

In Out
bs Estage, bt Estage br Estage

Protos that use ORB

proto ORB { out xtbool br, in xtbool bs, in xtbool bt }{}{
ORB br, bs, bt;
}
proto xtbool2_extract_0 { out xtbool dst, in xtbool2 src }{}{
ORB dst, src->b0, src->b0;
}
proto xtbool2_extract_1 { out xtbool dst, in xtbool2 src }{}{
ORB dst, src->b1, src->b1;
}
proto xtbool4_extract_0 { out xtbool dst, in xtbool4 src }{}{
ORB dst, src->b0, src->b0;
}
proto xtbool4_extract_1 { out xtbool dst, in xtbool4 src }{}{
ORB dst, src->b1, src->b1;
}
proto xtbool4_extract_2 { out xtbool dst, in xtbool4 src }{}{
ORB dst, src->b2, src->b2;
}
proto xtbool4_extract_3 { out xtbool dst, in xtbool4 src }{}{
ORB dst, src->b3, src->b3;
}
proto xtbool_join_xtbool2 { out xtbool2 dst, in xtbool src0, in xtbool src1 }{}{
ORB dst->b0, src0, src0;
ORB dst->b1, src1, src1;
}
proto xtbool_join_xtbool4 { out xtbool4 dst, in xtbool src0, in xtbool src1, in xtbool src2, in xtbool src3 }{}{
ORB dst->b0, src0, src0;
ORB dst->b1, src1, src1;
ORB dst->b2, src2, src2;
ORB dst->b3, src3, src3;
}