RETW.N — Narrow Windowed Return

Instruction Word

Slot
Inst16b
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 x16b - 16 bit(s) 110
RETW.N 1111 00011101
s 3210

Assembler Syntax

RETW.N

Description

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

RETW.N is the same as RETW in a 16-bit encoding.

Operation

n ← AR[0]31..30
nextPC ← PC31..30||AR[0]29..0
owb ← WindowBase
m ← if WindowStartWindowBase-4'b0001 then 2'b01
 elsif WindowStartWindowBase-4'b0010 then 2'b10
 elsif WindowStartWindowBase-4'b0011 then 2'b11
 else 2'b00
if n=2'b00 | (m!=2'b00 & m!=n) | PS.WOE=0 | PS.EXCM=1 then
	-- undefined operation
	-- may raise illegal instruction exception
else
	WindowBase ← WindowBase − (02||n)
	if WindowStartWindowBase != 0 then
		WindowStartowb ← 0
	else
		-- Underflow exception
		PS.EXCM ← 1
		EPC[1] ← PC
		PS.OWB ← owb
		nextPC ← if n = 2'b01 then WindowUnderflow4
			else if n = 2'b10 then WindowUnderflow8
			else WindowUnderflow12
	endif
	PS.CALLINC ← n -- in some implementations
endif

Exceptions

EveryInst Group (see EveryInst Group:)WindowUnderExcep if Windowed Register Option

Implementation Pipeline

In Out
WindowBase Rstage, WindowStart Rstage, PSEXCM Rstage, PSWOE Rstage, ars Estage WindowBase Estage, WindowStart Estage, PSCALLINC Estage