SIMCALL — Simulator Call

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
SIMCALL 000000000101000100000000

Assembler Syntax

SIMCALL

C Syntax

#include <xtensa/tie/xt_core.h>

extern void XT_SIMCALL(void);

Description

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

SIMCALL is not implemented as a simulator call by any Xtensa processor hardware. Some older processors may raise an illegal instruction exception for this opcode while newer processors treat it as a NOP instruction. It is implemented by the Xtensa Instruction Set Simulator to allow simulated programs to request services of the simulator host processor. See the Xtensa Instruction Set Simulator (ISS) User's Guide.

The value in address register a2 is the request code. Most codes request host system call services while others are used for special purposes such as debugging. Arguments needed by host system calls will be found in a3, a4, and a5 and a return code will be stored to a2 and an error number to a3.

Operation

See the Xtensa Instruction Set Simulator (ISS) User's Guide. 

Exceptions

EveryInst Group (see EveryInst Group:)GenExcep(IllegalInstructionCause) if Exception Option

Protos that use SIMCALL

proto SIMCALL { }{}{
SIMCALL;
}