Работа с памятью - загрузка частей Alpha: Load 32-bit unsigned LDL LDU EXTLL
Load
destination = Memory[EA](Size) |
destination = sign_extent(Memory[EA](Size)) |
destination = zero_extent(Memory[EA](Size)) |
Memory[EA](Size) = source |
Memory[EA](Size) = Truncate(source, Size) |
Cache[EA] = Mem[EA] // Async |
SPARC prefetch functions 0 for several reads 1 for one read 2 for several writes 3 for one write 4 page |
destination = source |
mov %r5,%r6 => or %g0,%r5,%r6 |
destination = immediate_cosnt |
destination = sign_extent(immediate_const) |
set value,reg sethi %hi(value),reg or %g0, %lo(value), reg |
setuw value,reg sethi %hi(value),reg or reg,%lo(value),reg setsw value,reg sethi %hi(value),reg or reg,%lo(value),reg sra reg,%g0,reg |
setx value,reg,rd sethi %uhi(value), reg or reg, %ulo(value), reg sllx reg,32,reg ! shift on 32 bit sethi %hi(value),rd or rd, reg, rd or rd, %lo(value), rd |
destination[high_part] = immediate_const destination[low_part] = source[low_part] |