41 lines
1.5 KiB
ArmAsm
41 lines
1.5 KiB
ArmAsm
test_stvx_1:
|
|
# Basic 16-byte aligned store
|
|
#_ MEMORY_IN 0x0000000010001000 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
|
#_ REGISTER_IN r4 0x0000000010001000
|
|
#_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10]
|
|
li r5, 0
|
|
stvx v3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r4 0x0000000010001000
|
|
#_ REGISTER_OUT r5 0
|
|
#_ REGISTER_OUT v3 [01020304, 05060708, 090A0B0C, 0D0E0F10]
|
|
#_ MEMORY_OUT 10001000 0102030405060708090A0B0C0D0E0F10
|
|
|
|
test_stvx_2:
|
|
# Test with offset
|
|
#_ MEMORY_IN 0x0000000010001000 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
|
#_ MEMORY_IN 0x0000000010001010 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
|
#_ REGISTER_IN r4 0x0000000010001000
|
|
#_ REGISTER_IN v3 [AABBCCDD, EEFF0011, 22334455, 66778899]
|
|
li r5, 16
|
|
stvx v3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r4 0x0000000010001000
|
|
#_ REGISTER_OUT r5 16
|
|
#_ REGISTER_OUT v3 [AABBCCDD, EEFF0011, 22334455, 66778899]
|
|
#_ MEMORY_OUT 10001010 AABBCCDDEEFF00112233445566778899
|
|
|
|
test_stvx_3:
|
|
# Test unaligned address (should mask to 16-byte boundary)
|
|
#_ MEMORY_IN 0x0000000010001000 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
|
#_ REGISTER_IN r4 0x0000000010001000
|
|
#_ REGISTER_IN v3 [11223344, 55667788, 99AABBCC, DDEEFF00]
|
|
li r5, 13 # unaligned
|
|
stvx v3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r4 0x0000000010001000
|
|
#_ REGISTER_OUT r5 13
|
|
#_ REGISTER_OUT v3 [11223344, 55667788, 99AABBCC, DDEEFF00]
|
|
# Should store to aligned address 0x10001000
|
|
#_ MEMORY_OUT 10001000 112233445566778899AABBCCDDEEFF00
|