The first actual instruction you hit is lqr$ 3, number. 您所看到的第一个实际的指令是lqr$3,number,其含义是“loadquadwordrelative”。
The original quadword must be loaded, the appropriate value inserted into the right location in the quadword, and then the result stored back. 初始的四字必须要被加载,适当的值插入到四字的适当位置,然后再将结果存储回去。
It also provides for byte, halfword, word, and quadword operand fetches and stores between storage and a set of32 Vector Registers ( VRs). 它还规定在存储设备与一组32位矢量寄存器(VectorRegister,VR)之间存取和储存的字节、半字、字和四字操作数。
Note that all of the declared variables which will be copied using DMA are aligned on quadword boundaries and are multiples of quadwords. 注意所有声明的变量(使用DMA复制的)都是按四字边界对齐的且都是四字的整数倍。
Spu_rlmaskqw operates on the whole quadword at a time, but only up to7 bits ( it performs a modulus on count to put it in the proper range). spurlmaskqw会对整个4字同时进行操作,不过最多只能移动7位(它会对count取模,从而将其放入正确的范围内)。
To avoid this, you need to first load the quadword from memory, insert the value into the appropriate byte in the quadword, and then store it back. 要避免这些,需要首先从内存加载四字,将值插入到四字内合适的字节,然后再存储回去。
The cbd instruction takes an address and generates a control word that can be used by shufb to insert a byte at the proper location in the quadword for that address. cbd指令接受一个地址并会生成一个控制字,而该控制字可被shufb用来为该地址在四字里的合适地址插入一个字节。
All stack values must be doubleword ( 8-byte) aligned, and the whole frame should be quadword ( 16-byte) aligned. 所有堆栈的值都必须是双字(8个字节)对齐的,整个帧应该是4字(16个字节)对齐的。
Therefore, if you want to store only one byte, if you tried to do it directly on an unaligned address, it would both go into the wrong location and clobber the remaining bytes in the quadword. 因此,如果希望只存储一个字节,且试图在未对齐的地址直接存储,那么它就会进入到不正确的位置并会截断四字内剩余的字节。
Vector instructions operate on vectors of scalar quantities and on scalar quantities, where the scalar size is byte, halfword, word, and quadword. 矢量指令作用于标量的矢量及标量,其中标量范围为字节、半字、字和四字。
A quadword is identified by the address of the word containing the low-order bit ( bit0). 四倍字长地址由含最低位(0位)字的地址来标识。
On some RISC platforms, of course, you must have doubleword and quadword values aligned in this way. 当然,在一些精简指令集的平台上,你必须以这种方式两个字和四个字的值。