MAX — Maximum Value

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
MAX 01010011 0000
r 3210
s 3210
t 3210

Assembler Syntax

MAX ar, as, at

C Syntax

#include <xtensa/tie/xt_misc.h>

extern int XT_MAX(int s, int t);

Description

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

MAX computes the maximum of the twos complement contents of address registers as and at and writes the result to address register ar.

Operation

AR[r] ← if AR[s] < AR[t] then AR[t] else AR[s]

Exceptions

EveryInstR Group (see EveryInstR Group:)

Implementation Pipeline

In Out
ars Estage, art Estage arr Estage

Protos that use MAX

proto AE_INT16X4_RMAX { out int16 a, in ae_int16x4 d0 }{ae_int32x4 t, ae_int32x2 t0, int16 lo, int16 hi}{
AE_SEXT32X2D16.32 t->d1, d0;
AE_SEXT32X2D16.10 t->d0, d0;
AE_MAX32 t0, t->d0, t->d1;
AE_MOVAD32.L lo, t0;
AE_MOVAD32.H hi, t0;
MAX a, lo, hi;
}
proto AE_INT32X2_RMAX { out int32 a, in ae_int32x2 d0 }{int32 lo, int32 hi}{
AE_MOVAD32.L lo, d0;
AE_MOVAD32.H hi, d0;
MAX a, lo, hi;
}
proto MAX { out int32 r, in int32 s, in int32 t }{}{
MAX r, s, t;
}