
Typically, the number of registers present in the register file are equal to the registers directly accessible by the core. These registers are blazing fast but are limited in number (8 ~ 32). General purpose registers (GPR) are used to store data temporarily for CPU while performing various operations. Xtensa does not provide single-instruction shifts in which the shift amount is in general register (ar) operand. SAR register holds the shift amount required for shift instructions (logical left, logical right).

PC essentially holds the address which is going to be executed.ĪR is general purpose registers, there are 64 32-bit registers however only 16 of them are visible/accessible at a time. SAR = Shifts and the Shift Amount Register Xtensa has 24-bit instructions (few are even 16 bits!), unlike the conventional 32-bit instructions, to have code compactness. Xtensa is a post-RISC ISA 2 i.e it derives most of its features from RISC but also incorporates certain features where CISC is advantageous. In this post, I will be covering certain sections of Xtensa ISA, specifically windowed registers, calling convention and stack layout. Having a knowledge of the underlying architecture can, at times, help maximize the performance. Certain architectures have some special DSP/MAC instructions that the compiler is unaware of, so DSP algorithms are also partially developed in assembly. While the compiler does a great job in generating an (nearly) optimal assembly code, hand written assembly code dominates when programming performance critical routines, time critical interrupt handlers or interacting directly with the hardware.

It isn’t their fault either, the compiler does the heavy lifting of converting the higher level language (generally ISA-agnostic) into its assembly equivalent. I feel it’s because majority of the developers don’t even need to look at, let alone write code in assembly language (a language that has a direct correspondence to the ISA).
XTRAFINDER REGISTER WINDOW SOFTWARE
Instruction Set Architecture (ISA) is considered to be esoteric even among software developers.
