AE_S32M.IU — Store a 32-bit fractional values from the middle of an AE_DR register

Instruction Word

Slot
ae2_slot0
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 ae_format2 - 64 bit(s)0000 1110
AE_S32M.IU 1000000000010111 1 101
ae_fld_ls_v 3210
s 3210
ae_fld_immls32 321 0

Slot
ae_slot0
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 ae_format - 64 bit(s) 1111
AE_S32M.IU 10111011
ae_fld_ls_v 3210
s 3210
ae_fld_immls32 3210

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
AE_S32M.IU 11100101 0100
ae_fld_ls_v 3210
s 3210
ae_fld_immls32 3210

Slot
ae_slot0
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 ae_format1 - 64 bit(s)1 1110
AE_S32M.IU 10111011
ae_fld_ls_v 3210
s 3210
ae_fld_immls32 3210

Assembler Syntax

AE_S32M.IU aed0..15(ae_ls_v), a0..15(ars), -32..28

C Syntax

#include <xtensa/tie/xt_hifi2.h>

extern void AE_S32M_IU(ae_int64 d, ae_q32s * a /*inout*/, immediate off);

Description

AE_S32M.IU is a 32-bit store to memory from the AE_DR register. It forms a virtual address by adding the contents of the address register and an immediate value within the range {-32,...,28} encoded in the instruction word.

The store instruction writes a 32-bit value to this address, taken from the middle of the AE_DR register. p.

This instruction also updates the address register to the virtual address value that was just computed.

Note that this store operation is provided mainly to maintain compatibility with HiFi 2/EP.

Implementation Pipeline

In Out
ae_ls_v Mstage, ars Estage ars Estage

Protos that use AE_S32M.IU

proto AE_S32M.IU { in ae_int64 d, inout ae_q32s * a, in immediate off }{}{
AE_S32M.IU d, a, off + 0;
}
proto AE_SQ32F.IU { in ae_q56s d, inout ae_q32s * a, in immediate off }{}{
AE_S32M.IU d, a, off + 0;
}
proto ae_q32s_storeiu { in ae_q32s d, inout ae_q32s * a, in immediate off }{}{
AE_S32M.IU d, a, off + 0;
}