TILELOADD, TILELOADDT1
Carga Azulejos
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
VEX.128.F2.0F38.W0 4B !(11):rrr:100 | TILELOADD tmm1, sibmem | A | Valido | No codificable | Cargar datos en tmm1 como se especifica por información en sibmem. |
VEX.128.66.0F38.W0 4B !(11):rrr:100 | TILELOADDT1 tmm1, sibmem | A | Valido | No codificable | Cargar datos en tmm1 tal como se especifica en la información en sibmem con la pista para optimizar el caché de datos. |
Codificacion de operandos
Cada modo es un valor de la columna Op/En de arriba. Dice en que campo de la instruccion codificada va cada operando, en el orden en que se escriben, y si la instruccion lo lee, lo escribe o ambas cosas.
A
modrm.regescriturabyte ModRM, campo reg (bits 5-3)modrm.rmlecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
Coste medido
Cargando las mediciones de arch-data...
Descripción
Esta instrucción es necesaria para usar el tratamiento SIB. El registro de índices sirve como indicador de paso. Si la codificación SIB omite un registro índice, el valor cero se asume para el contenido del registro índice.
Esta instrucción carga un destino de baldosas con filas y columnas según lo especificado por la configuración de baldosas. La versión "T1" proporciona un indicio a la implementación de que los datos serían reutilizados pero no necesita ser residente en los niveles de caché más cercanos.
El TILECFG.start_row en los datos TILECFG debe ser inicializado a '0' para cargar toda la ficha y se establece a cero en la terminación exitosa de la instrucción TILELOADD. TILELOADD es una instrucción de descanso y el TILECFG.start_row no será cero cuando los eventos de descanso ocurren durante la ejecución de la instrucción.
Sólo operandos de memoria son compatibles y sólo pueden accederse mediante un modo de dirección SIB, similar al V[P]GATHER/V[P]SCATTER.
Cualquier intento de ejecutar las instrucciones TILELOADD/TILELOADDT1 dentro de una transacción Intel TSX resultará en un aborto de transacción.
Operación
TILELOADD[,T1] tdest, tsib
start := tilecfg.start_row
zero_upper_rows(tdest,start)
membegin := tsib.base + displacement
// if no index register in the SIB encoding, the value zero is used.
stride := tsib.index << tsib.scale
nbytes := tdest.colsb
while start < tdest.rows:
memptr := membegin + start * stride
write_row_and_zero(tdest, start, read_memory(memptr, nbytes), nbytes)
start := start + 1
zero_tilecfg_start()
// In the case of a memory fault in the middle of an instruction, the tilecfg.start_row := startIntel C/C++ compilador intrínseco
TILELOADD void _tile_loadd(__tile dst, const void *base, int stride);
TILELOADDT1 void _tile_stream_loadd(__tile dst, const void *base, int stride);Banderas afectadas
None.
Excepciones AMX-E3; ver Sección 2.10, "Intel(R) AMX Clases de Excepción de Instrucción", para más detalles.