What does "input size" mean in "Compressed Displacement (disp8*N) Support in EVEX"?

119 Views Asked by At

In Intel(R) 64 and IA-32 Architectures Software Developer's Manual Combined Volumes: 1, 2A, 2B, 2C 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4 Order Number: 325462-080US June 2023.

2.7.5 Compressed Displacement (disp8*N) Support in EVEX For memory addressing using disp8 form, EVEX-encoded instructions always use a compressed displacement scheme by multiplying disp8 in conjunction with a scaling factor N that is determined based on the vector length, the value of EVEX.b bit (embedded broadcast) and the input element size of the instruction.

I want to know "the input element size of the instruction" exactly.

There are two questions about "the input element size" :

  1. What is the exact definition of "input element size" ?
  2. Is there a general law to know the input element size for the instruction in each row in the instruction tables in the Intel PDF Manual ?

I'm now making an x86_64 Assembler (Compiler) with SSE/AVX/AVX2/AVX512. So, if I mistook the input size incorrectly, it would fail to encode a displacement value in a disp8 byte.

1

There are 1 best solutions below

8
algorythms On

The "input element size of the instruction" refers to the size of the data being processed by the instruction in the Intel(R) 64 and IA-32 Architectures Software Developer's Manual.It varies depending on the specific instruction and the type of data being operated on.

For example, in SIMD instructions, it represents the size of the elements processed in parallel. To know the exact input element size, you need to refer to the specific instruction's documentation or the related section in the manual. The size is typically specified in terms of bits or bytes, depending on the architecture. You can check the instruction's documentation for accurate information about the input element size.