mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 08:00:15 +02:00
Clarify new tests
This commit is contained in:
1 parent
0ddd46ba44
commit
0206479a08
2 files changed
+38
-36
No files matched your search
@@ -2,11 +2,11 @@
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": ["2"],
|
||||
"RDX": ["16"],
|
||||
"XMM0": ["0x00060F000F000D01", "0x0000000101070007"],
|
||||
"XMM1": ["0x3111313131311111", "0x0000001111313131"],
|
||||
"XMM2": ["0x000000000010FFE0", "0x0000000000000000"],
|
||||
"XMM3": ["0x7FFFFFF000050030", "0x00410010FFE08000"]
|
||||
"RDX": ["6"],
|
||||
"XMM0": ["0x00060F000F000D01", "0x0000000504070007"],
|
||||
"XMM1": ["0x3111313131311111", "0x0000001919313131"],
|
||||
"XMM2": ["0x000000000010FFF0", "0x0000000000000000"],
|
||||
"XMM3": ["0xFFEF0011FF80007F", "0x000100000010FFF0"]
|
||||
},
|
||||
"HostFeatures": ["SSE4.2"]
|
||||
}
|
||||
@@ -113,20 +113,21 @@ CompareAndStore 9, 0b00110101
|
||||
; Range unsigned word check (msb, negative masked)
|
||||
CompareAndStore 10, 0b01110101
|
||||
|
||||
; --- Signed tests (range is empty when read as unsigned) ---
|
||||
; --- 8-bit signed byte tests ---
|
||||
movaps xmm2, [rel .data_signed]
|
||||
movaps xmm3, [rel .data_signed + 32]
|
||||
|
||||
mov rax, 2
|
||||
mov rdx, 16
|
||||
; Range signed byte check (lsb, positive polarity)
|
||||
mov rax, 2
|
||||
mov rdx, 6
|
||||
CompareAndStore 11, 0b00000110
|
||||
|
||||
; --- 16-bit signed word tests ---
|
||||
movaps xmm2, [rel .data16_signed]
|
||||
movaps xmm3, [rel .data16_signed + 32]
|
||||
|
||||
; Range signed word check (lsb, positive polarity)
|
||||
CompareAndStore 12, 0b00000111
|
||||
; Range signed word check (msb, positive polarity)
|
||||
CompareAndStore 12, 0b01000111
|
||||
|
||||
; Load all our stored indices and flags for result comparing
|
||||
movaps xmm0, [rel .indices]
|
||||
@@ -158,26 +159,26 @@ dq 0x8888888888888888
|
||||
dq 0x9999999999999999
|
||||
|
||||
.data_signed:
|
||||
dq 0x00000000000010E0 ; Range [-32, 16] as signed bytes, [224, 16] as unsigned
|
||||
dq 0x00000000000010F0 ; -16, 16 (240, 16 as unsigned, an empty range)
|
||||
dq 0x0000000000000000
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
|
||||
dq 0x1110E0907FF00530 ; 48, 5, -16, 127, -112, -32, 16, 17
|
||||
dq 0x004142434445FFDF ; -33, -1, then "EDCBA" (valid, all outside the range)
|
||||
dq 0x010010F0EF11807F ; 127, -128, 17, -17, -16, 16 (followed by null and junk)
|
||||
dq 0x0101010101010101
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
|
||||
.data16_signed:
|
||||
dq 0x000000000010FFE0 ; Range [-32, 16] as signed words, [65504, 16] as unsigned
|
||||
dq 0x000000000010FFF0 ; -16, 16 (65520, 16 as unsigned, an empty range)
|
||||
dq 0x0000000000000000
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
dq 0xAAAAAAAAAAAAAAAA
|
||||
dq 0xBBBBBBBBBBBBBBBB
|
||||
|
||||
dq 0x7FFFFFF000050030 ; 48, 5, -16, 32767
|
||||
dq 0x00410010FFE08000 ; -32768, -32, 16, 65
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
dq 0xFFEF0011FF80007F ; 127, -128, 17, -17
|
||||
dq 0x000100000010FFF0 ; -16, 16 (followed by null and junk)
|
||||
dq 0x8888888888888888
|
||||
dq 0x9999999999999999
|
||||
|
||||
.indices:
|
||||
dq 0x0000000000000000
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"XMM0": ["0x00060F000F000D01", "0x0001011010070007"],
|
||||
"XMM0": ["0x00060F000F000D01", "0x0005041010070007"],
|
||||
"XMM1": ["0x3111313131311111", "0x0019191818313131"],
|
||||
"XMM2": ["0x000000000010FFE0", "0x0000000000000000"],
|
||||
"XMM3": ["0x7FFFFFF000050030", "0x00000010FFE08000"]
|
||||
"XMM2": ["0x000000000010FFF0", "0x0000000000000000"],
|
||||
"XMM3": ["0xFFEF0011FF80007F", "0x000100000010FFF0"]
|
||||
},
|
||||
"HostFeatures": ["SSE4.2"]
|
||||
}
|
||||
@@ -115,18 +115,19 @@ CompareAndStore 11, 0b01000110
|
||||
; Range signed byte check (lsb)
|
||||
CompareAndStore 12, 0b01000110
|
||||
|
||||
; --- Signed tests (range is empty when read as unsigned) ---
|
||||
; --- 8-bit signed byte tests ---
|
||||
movaps xmm2, [rel .data_signed]
|
||||
movaps xmm3, [rel .data_signed + 32]
|
||||
|
||||
; Range signed byte check (lsb, positive polarity)
|
||||
CompareAndStore 13, 0b00000110
|
||||
|
||||
; --- 16-bit signed word tests ---
|
||||
movaps xmm2, [rel .data16_signed]
|
||||
movaps xmm3, [rel .data16_signed + 32]
|
||||
|
||||
; Range signed word check (lsb, positive polarity)
|
||||
CompareAndStore 14, 0b00000111
|
||||
; Range signed word check (msb, positive polarity)
|
||||
CompareAndStore 14, 0b01000111
|
||||
|
||||
; Load all our stored indices and flags for result comparing
|
||||
movaps xmm0, [rel .indices]
|
||||
@@ -169,26 +170,26 @@ dq 0x8888888888888888
|
||||
dq 0x9999999999999999
|
||||
|
||||
.data_signed:
|
||||
dq 0x00000000000010E0 ; Range [-32, 16] as signed bytes, [224, 16] as unsigned
|
||||
dq 0x00000000000010F0 ; -16, 16 (240, 16 as unsigned, an empty range)
|
||||
dq 0x0000000000000000
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
|
||||
dq 0x1110E0907FF00530 ; 48, 5, -16, 127, -112, -32, 16, 17
|
||||
dq 0x000000000000FFDF ; -33, -1, then null
|
||||
dq 0x010010F0EF11807F ; 127, -128, 17, -17, -16, 16 (followed by null and junk)
|
||||
dq 0x0101010101010101
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
|
||||
.data16_signed:
|
||||
dq 0x000000000010FFE0 ; Range [-32, 16] as signed words, [65504, 16] as unsigned
|
||||
dq 0x000000000010FFF0 ; -16, 16 (65520, 16 as unsigned, an empty range)
|
||||
dq 0x0000000000000000
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
dq 0xAAAAAAAAAAAAAAAA
|
||||
dq 0xBBBBBBBBBBBBBBBB
|
||||
|
||||
dq 0x7FFFFFF000050030 ; 48, 5, -16, 32767
|
||||
dq 0x00000010FFE08000 ; -32768, -32, 16, then null
|
||||
dq 0xFFFFFFFFFFFFFFFF
|
||||
dq 0xEEEEEEEEEEEEEEEE
|
||||
dq 0xFFEF0011FF80007F ; 127, -128, 17, -17
|
||||
dq 0x000100000010FFF0 ; -16, 16 (followed by null and junk)
|
||||
dq 0x8888888888888888
|
||||
dq 0x9999999999999999
|
||||
|
||||
.indices:
|
||||
dq 0x0000000000000000
|
||||
|
||||
Reference in new issue
Block a user