mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-14 16:00:44 +02:00
Implements the rest of the TwoByte table unit tests
This commit is contained in:
1 parent
e1c7c9c0f3
commit
8e5fe4ba76
36 files changed
+1645
No files matched your search
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x80000000
|
||||
mov r11, 0x1
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jo .tgt_1
|
||||
jno .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x1
|
||||
mov r11, 0x0
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jno .tgt_1
|
||||
jo .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x1
|
||||
mov r11, 0x0
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jc .tgt_1
|
||||
jnc .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x2
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jnc .tgt_1
|
||||
jc .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x1
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jz .tgt_1
|
||||
jnz .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x2
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jnz .tgt_1
|
||||
jz .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x2
|
||||
mov r11, 0x0
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jbe .tgt_1
|
||||
jnbe .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x2
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jnbe .tgt_1
|
||||
jbe .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x1
|
||||
mov r11, 0x0
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
js .tgt_1
|
||||
jns .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x1
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jns .tgt_1
|
||||
js .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x4
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jp .tgt_1
|
||||
jnp .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x3
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jnp .tgt_1
|
||||
jp .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x1
|
||||
mov r11, 0x0
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jl .tgt_1
|
||||
jnl .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x2
|
||||
mov r11, 0x0
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jnl .tgt_1
|
||||
jl .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x1
|
||||
mov r11, 0x0
|
||||
mov r12, 0x2
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jle .tgt_1
|
||||
jnle .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1",
|
||||
"RBX": "0x0"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov r10, 0x2
|
||||
mov r11, 0x0
|
||||
mov r12, 0x1
|
||||
|
||||
cmp r10d, r12d
|
||||
|
||||
mov rax, 0
|
||||
mov rbx, 0
|
||||
|
||||
jnle .tgt_1
|
||||
jle .tgt_2
|
||||
jmp .end
|
||||
|
||||
.tgt_1:
|
||||
mov rax, 1
|
||||
jmp .end
|
||||
|
||||
.tgt_2:
|
||||
mov rbx, 1
|
||||
jmp .end
|
||||
|
||||
.end:
|
||||
hlt
|
||||
@@ -0,0 +1,22 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x1"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
; CPUID function zero
|
||||
mov rax, 0
|
||||
|
||||
cpuid
|
||||
|
||||
; CPUID function zero always returns >0 in EAX
|
||||
cmp eax, 0
|
||||
mov rax, 0
|
||||
setnz al
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,49 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0x3"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
%macro cfmerge 0
|
||||
|
||||
; Get CF
|
||||
sbb r14, r14
|
||||
and r14, 1
|
||||
|
||||
; Merge in to results
|
||||
shl r15, 1
|
||||
or r15, r14
|
||||
|
||||
%endmacro
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFF80000000
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov [rdx + 8 * 1], rax
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x01
|
||||
mov [rdx + 8 * 3], eax
|
||||
mov rax, 0x0
|
||||
mov [rdx + 8 * 3 + 4], eax
|
||||
|
||||
xor r15, r15 ; Will contain our results
|
||||
|
||||
mov r13, 1
|
||||
bt word [rdx], r13w
|
||||
cfmerge
|
||||
|
||||
mov r13, 32
|
||||
bt dword [rdx], r13d
|
||||
cfmerge
|
||||
|
||||
mov r13, 64 * 3
|
||||
bt qword [rdx], r13
|
||||
cfmerge
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,58 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x4142434457584857",
|
||||
"RBX": "0x6162636467687576",
|
||||
"RCX": "0x8788919291929394",
|
||||
"RDX": "0xA7A8919293949596",
|
||||
"RSI": "0xB1B2B3B4B5B6B7B8"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0x4142434445464748
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov rax, 0x5152535455565758
|
||||
mov [rdx + 8 * 1], rax
|
||||
|
||||
mov rax, 0x6162636465666768
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x7172737475767778
|
||||
mov [rdx + 8 * 3], rax
|
||||
|
||||
mov rax, 0x8182838485868788
|
||||
mov [rdx + 8 * 4], rax
|
||||
mov rax, 0x9192939495969798
|
||||
mov [rdx + 8 * 5], rax
|
||||
mov rax, 0xA1A2A3A4A5A6A7A8
|
||||
mov [rdx + 8 * 6], rax
|
||||
mov rax, 0xB1B2B3B4B5B6B7B8
|
||||
mov [rdx + 8 * 7], rax
|
||||
|
||||
mov rax, [rdx + 8 * 1]
|
||||
shld word [rdx + 8 * 0 + 0], ax, 8
|
||||
shld word [rdx + 8 * 0 + 2], ax, 16
|
||||
shld word [rdx + 8 * 0 + 4], ax, 32
|
||||
|
||||
mov rax, [rdx + 8 * 3]
|
||||
shld dword [rdx + 8 * 2 + 0], eax, 16
|
||||
shld dword [rdx + 8 * 2 + 4], eax, 32
|
||||
|
||||
mov rax, [rdx + 8 * 5]
|
||||
shld qword [rdx + 8 * 4 + 0], rax, 16
|
||||
shld qword [rdx + 8 * 4 + 0], rax, 32
|
||||
shld qword [rdx + 8 * 6 + 0], rax, 48
|
||||
shld qword [rdx + 8 * 7 + 0], rax, 64
|
||||
|
||||
mov rax, qword [rdx + 8 * 0]
|
||||
mov rbx, qword [rdx + 8 * 2]
|
||||
mov rcx, qword [rdx + 8 * 4]
|
||||
mov rsi, qword [rdx + 8 * 7]
|
||||
mov rdx, qword [rdx + 8 * 6]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,67 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x4142434457584857",
|
||||
"RBX": "0x6162636467687576",
|
||||
"RCX": "0x8788919291929394",
|
||||
"RDX": "0xA7A8919293949596",
|
||||
"RSI": "0xB1B2B3B4B5B6B7B8"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0x4142434445464748
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov rax, 0x5152535455565758
|
||||
mov [rdx + 8 * 1], rax
|
||||
|
||||
mov rax, 0x6162636465666768
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x7172737475767778
|
||||
mov [rdx + 8 * 3], rax
|
||||
|
||||
mov rax, 0x8182838485868788
|
||||
mov [rdx + 8 * 4], rax
|
||||
mov rax, 0x9192939495969798
|
||||
mov [rdx + 8 * 5], rax
|
||||
mov rax, 0xA1A2A3A4A5A6A7A8
|
||||
mov [rdx + 8 * 6], rax
|
||||
mov rax, 0xB1B2B3B4B5B6B7B8
|
||||
mov [rdx + 8 * 7], rax
|
||||
|
||||
mov rax, [rdx + 8 * 1]
|
||||
mov cl, 8
|
||||
shld word [rdx + 8 * 0 + 0], ax, cl
|
||||
mov cl, 16
|
||||
shld word [rdx + 8 * 0 + 2], ax, cl
|
||||
mov cl, 32
|
||||
shld word [rdx + 8 * 0 + 4], ax, cl
|
||||
|
||||
mov rax, [rdx + 8 * 3]
|
||||
mov cl, 16
|
||||
shld dword [rdx + 8 * 2 + 0], eax, cl
|
||||
mov cl, 32
|
||||
shld dword [rdx + 8 * 2 + 4], eax, cl
|
||||
|
||||
mov rax, [rdx + 8 * 5]
|
||||
mov cl, 16
|
||||
shld qword [rdx + 8 * 4 + 0], rax, cl
|
||||
mov cl, 32
|
||||
shld qword [rdx + 8 * 4 + 0], rax, cl
|
||||
mov cl, 48
|
||||
shld qword [rdx + 8 * 6 + 0], rax, cl
|
||||
mov cl, 64
|
||||
shld qword [rdx + 8 * 7 + 0], rax, cl
|
||||
|
||||
mov rax, qword [rdx + 8 * 0]
|
||||
mov rbx, qword [rdx + 8 * 2]
|
||||
mov rcx, qword [rdx + 8 * 4]
|
||||
mov rsi, qword [rdx + 8 * 7]
|
||||
mov rdx, qword [rdx + 8 * 6]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,62 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0x1F"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
%macro cfmerge 0
|
||||
|
||||
; Get CF
|
||||
sbb r14, r14
|
||||
and r14, 1
|
||||
|
||||
; Merge in to results
|
||||
shl r15, 1
|
||||
or r15, r14
|
||||
|
||||
%endmacro
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFF80000000
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov [rdx + 8 * 1], rax
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x01
|
||||
mov [rdx + 8 * 3], eax
|
||||
mov rax, 0x0
|
||||
mov [rdx + 8 * 3 + 4], eax
|
||||
|
||||
xor r15, r15 ; Will contain our results
|
||||
|
||||
; Test and set
|
||||
mov r13, 1
|
||||
bts word [rdx], r13w
|
||||
cfmerge
|
||||
|
||||
; Ensure it is set
|
||||
mov r13, 1
|
||||
bt word [rdx], r13w
|
||||
cfmerge
|
||||
|
||||
mov r13, 32
|
||||
bts dword [rdx], r13d
|
||||
cfmerge
|
||||
|
||||
bt dword [rdx], r13d
|
||||
cfmerge
|
||||
|
||||
mov r13, 64 * 3
|
||||
bts qword [rdx], r13
|
||||
cfmerge
|
||||
|
||||
mov r13, 64 * 3
|
||||
bt qword [rdx], r13
|
||||
cfmerge
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,58 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x4142434457585847",
|
||||
"RBX": "0x6162636477786566",
|
||||
"RCX": "0x9596979897988182",
|
||||
"RDX": "0x939495969798A1A2",
|
||||
"RSI": "0xB1B2B3B4B5B6B7B8"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0x4142434445464748
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov rax, 0x5152535455565758
|
||||
mov [rdx + 8 * 1], rax
|
||||
|
||||
mov rax, 0x6162636465666768
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x7172737475767778
|
||||
mov [rdx + 8 * 3], rax
|
||||
|
||||
mov rax, 0x8182838485868788
|
||||
mov [rdx + 8 * 4], rax
|
||||
mov rax, 0x9192939495969798
|
||||
mov [rdx + 8 * 5], rax
|
||||
mov rax, 0xA1A2A3A4A5A6A7A8
|
||||
mov [rdx + 8 * 6], rax
|
||||
mov rax, 0xB1B2B3B4B5B6B7B8
|
||||
mov [rdx + 8 * 7], rax
|
||||
|
||||
mov rax, [rdx + 8 * 1]
|
||||
shrd word [rdx + 8 * 0 + 0], ax, 8
|
||||
shrd word [rdx + 8 * 0 + 2], ax, 16
|
||||
shrd word [rdx + 8 * 0 + 4], ax, 32
|
||||
|
||||
mov rax, [rdx + 8 * 3]
|
||||
shrd dword [rdx + 8 * 2 + 0], eax, 16
|
||||
shrd dword [rdx + 8 * 2 + 4], eax, 32
|
||||
|
||||
mov rax, [rdx + 8 * 5]
|
||||
shrd qword [rdx + 8 * 4 + 0], rax, 16
|
||||
shrd qword [rdx + 8 * 4 + 0], rax, 32
|
||||
shrd qword [rdx + 8 * 6 + 0], rax, 48
|
||||
shrd qword [rdx + 8 * 7 + 0], rax, 64
|
||||
|
||||
mov rax, qword [rdx + 8 * 0]
|
||||
mov rbx, qword [rdx + 8 * 2]
|
||||
mov rcx, qword [rdx + 8 * 4]
|
||||
mov rsi, qword [rdx + 8 * 7]
|
||||
mov rdx, qword [rdx + 8 * 6]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,67 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x4142434457585847",
|
||||
"RBX": "0x6162636477786566",
|
||||
"RCX": "0x9596979897988182",
|
||||
"RDX": "0x939495969798A1A2",
|
||||
"RSI": "0xB1B2B3B4B5B6B7B8"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0x4142434445464748
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov rax, 0x5152535455565758
|
||||
mov [rdx + 8 * 1], rax
|
||||
|
||||
mov rax, 0x6162636465666768
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x7172737475767778
|
||||
mov [rdx + 8 * 3], rax
|
||||
|
||||
mov rax, 0x8182838485868788
|
||||
mov [rdx + 8 * 4], rax
|
||||
mov rax, 0x9192939495969798
|
||||
mov [rdx + 8 * 5], rax
|
||||
mov rax, 0xA1A2A3A4A5A6A7A8
|
||||
mov [rdx + 8 * 6], rax
|
||||
mov rax, 0xB1B2B3B4B5B6B7B8
|
||||
mov [rdx + 8 * 7], rax
|
||||
|
||||
mov rax, [rdx + 8 * 1]
|
||||
mov cl, 8
|
||||
shrd word [rdx + 8 * 0 + 0], ax, cl
|
||||
mov cl, 16
|
||||
shrd word [rdx + 8 * 0 + 2], ax, cl
|
||||
mov cl, 32
|
||||
shrd word [rdx + 8 * 0 + 4], ax, cl
|
||||
|
||||
mov rax, [rdx + 8 * 3]
|
||||
mov cl, 16
|
||||
shrd dword [rdx + 8 * 2 + 0], eax, cl
|
||||
mov cl, 32
|
||||
shrd dword [rdx + 8 * 2 + 4], eax, cl
|
||||
|
||||
mov rax, [rdx + 8 * 5]
|
||||
mov cl, 16
|
||||
shrd qword [rdx + 8 * 4 + 0], rax, cl
|
||||
mov cl, 32
|
||||
shrd qword [rdx + 8 * 4 + 0], rax, cl
|
||||
mov cl, 48
|
||||
shrd qword [rdx + 8 * 6 + 0], rax, cl
|
||||
mov cl, 64
|
||||
shrd qword [rdx + 8 * 7 + 0], rax, cl
|
||||
|
||||
mov rax, qword [rdx + 8 * 0]
|
||||
mov rbx, qword [rdx + 8 * 2]
|
||||
mov rcx, qword [rdx + 8 * 4]
|
||||
mov rsi, qword [rdx + 8 * 7]
|
||||
mov rdx, qword [rdx + 8 * 6]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,42 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x5C00",
|
||||
"RBX": "0x54D45400",
|
||||
"RSI": "0x4ECE4DCD4CCC4C00"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r15, 0xe0000000
|
||||
|
||||
mov rax, 0x4142434445464748
|
||||
mov [r15 + 8 * 0], rax
|
||||
mov rax, 0x5152535455565758
|
||||
mov [r15 + 8 * 1], rax
|
||||
mov rax, 0x6162636465666768
|
||||
mov [r15 + 8 * 2], rax
|
||||
|
||||
mov rax, 0x0
|
||||
mov [r15 + 8 * 3], rax
|
||||
mov [r15 + 8 * 4], rax
|
||||
|
||||
mov ax, -128
|
||||
imul ax, word [r15 + 8 * 0 + 0]
|
||||
mov word [r15 + 8 * 3 + 0], ax
|
||||
|
||||
mov eax, -128
|
||||
imul eax, dword [r15 + 8 * 1 + 0]
|
||||
mov dword [r15 + 8 * 4 + 0], eax
|
||||
|
||||
mov rax, -128
|
||||
imul rax, qword [r15 + 8 * 2 + 0]
|
||||
mov rsi, rax
|
||||
|
||||
mov rax, [r15 + 8 * 3]
|
||||
mov rbx, [r15 + 8 * 4]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,96 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x414243444546FF48",
|
||||
"RBX": "0x51525354FFFF5758",
|
||||
"RCX": "0xFFFFFFFF65666768",
|
||||
"RDX": "0xFFFFFFFFFFFFFFFF",
|
||||
"RBP": "0x4748",
|
||||
"RSI": "0x55565758",
|
||||
"RDI": "0x6162636465666768",
|
||||
"RSP": "0x7172737475767778",
|
||||
"R8": "0x7172737475767778"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r10, 0xe0000000
|
||||
|
||||
mov rax, 0x4142434445464748
|
||||
mov [r10 + 8 * 0], rax
|
||||
mov rax, 0x5152535455565758
|
||||
mov [r10 + 8 * 1], rax
|
||||
mov rax, 0x6162636465666768
|
||||
mov [r10 + 8 * 2], rax
|
||||
mov rax, 0x7172737475767778
|
||||
mov [r10 + 8 * 3], rax
|
||||
|
||||
mov rax, 0
|
||||
mov [r10 + 8 * 4], rax
|
||||
mov [r10 + 8 * 5], rax
|
||||
mov [r10 + 8 * 6], rax
|
||||
mov [r10 + 8 * 7], rax
|
||||
mov [r10 + 8 * 8], rax
|
||||
|
||||
; False
|
||||
mov rax, 0
|
||||
mov rcx, 0xFF
|
||||
cmpxchg [r10 + 8 * 0 + 0], cl
|
||||
mov [r10 + 8 * 4 + 0], al
|
||||
|
||||
; True
|
||||
mov rax, 0x47
|
||||
mov rcx, 0xFF
|
||||
cmpxchg [r10 + 8 * 0 + 1], cl
|
||||
mov [r10 + 8 * 4 + 1], al
|
||||
|
||||
; False
|
||||
mov rax, 0
|
||||
mov rcx, 0xFFFF
|
||||
cmpxchg [r10 + 8 * 1 + 0], cx
|
||||
mov [r10 + 8 * 5 + 0], ax
|
||||
|
||||
; True
|
||||
mov rax, 0x5556
|
||||
mov rcx, 0xFFFF
|
||||
cmpxchg [r10 + 8 * 1 + 2], cx
|
||||
mov [r10 + 8 * 5 + 2], ax
|
||||
|
||||
; False
|
||||
mov rax, 0
|
||||
mov rcx, 0xFFFFFFFF
|
||||
cmpxchg [r10 + 8 * 2 + 0], ecx
|
||||
mov [r10 + 8 * 6 + 0], eax
|
||||
|
||||
; True
|
||||
mov rax, 0x61626364
|
||||
mov rcx, 0xFFFFFFFF
|
||||
cmpxchg [r10 + 8 * 2 + 4], ecx
|
||||
mov [r10 + 8 * 6 + 4], eax
|
||||
|
||||
; False
|
||||
mov rax, 0
|
||||
mov rcx, 0xFFFFFFFFFFFFFFFF
|
||||
cmpxchg [r10 + 8 * 3 + 0], rcx
|
||||
mov [r10 + 8 * 7 + 0], rax
|
||||
|
||||
; True
|
||||
mov rax, 0x7172737475767778
|
||||
mov rcx, 0xFFFFFFFFFFFFFFFF
|
||||
cmpxchg [r10 + 8 * 3 + 0], rcx
|
||||
mov [r10 + 8 * 8], rax
|
||||
|
||||
mov rax, [r10 + 8 * 0]
|
||||
mov rbx, [r10 + 8 * 1]
|
||||
mov rcx, [r10 + 8 * 2]
|
||||
mov rdx, [r10 + 8 * 3]
|
||||
mov rbp, [r10 + 8 * 4]
|
||||
mov rsi, [r10 + 8 * 5]
|
||||
mov rdi, [r10 + 8 * 6]
|
||||
mov rsp, [r10 + 8 * 7]
|
||||
mov r8, [r10 + 8 * 8]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,64 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0xA"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
%macro cfmerge 0
|
||||
|
||||
; Get CF
|
||||
sbb r14, r14
|
||||
and r14, 1
|
||||
|
||||
; Merge in to results
|
||||
shl r15, 1
|
||||
or r15, r14
|
||||
|
||||
%endmacro
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFF80000000
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov [rdx + 8 * 1], rax
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x01
|
||||
mov [rdx + 8 * 3], eax
|
||||
mov rax, 0x0
|
||||
mov [rdx + 8 * 3 + 4], eax
|
||||
|
||||
xor r15, r15 ; Will contain our results
|
||||
|
||||
; Test and set
|
||||
mov r13, 1
|
||||
btr word [rdx], r13w
|
||||
cfmerge
|
||||
|
||||
; Ensure it is set
|
||||
mov r13, 1
|
||||
bt word [rdx], r13w
|
||||
cfmerge
|
||||
|
||||
mov r13, 32
|
||||
btr dword [rdx], r13d
|
||||
cfmerge
|
||||
|
||||
bt dword [rdx], r13d
|
||||
cfmerge
|
||||
|
||||
mov r13, 64 * 3
|
||||
btr qword [rdx], r13
|
||||
cfmerge
|
||||
|
||||
mov r13, 64 * 3
|
||||
bt qword [rdx], r13
|
||||
cfmerge
|
||||
|
||||
hlt
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0x41424344454600FF",
|
||||
"R14": "0x00000000000000FF",
|
||||
"R13": "0x00000000000000FF",
|
||||
"R12": "0x41424344454600FF",
|
||||
"R11": "0x00000000000000FF",
|
||||
"R10": "0x00000000000000FF"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFFFFFFFFFF
|
||||
mov [rdx + 8 * 0], rax
|
||||
|
||||
mov r15, 0x4142434445464748
|
||||
mov r14, 0x4142434445464748
|
||||
mov r13, 0x4142434445464748
|
||||
mov r12, 0x4142434445464748
|
||||
mov r11, 0x4142434445464748
|
||||
mov r10, 0x4142434445464748
|
||||
|
||||
movzx r15w, byte [rdx + 8 * 0]
|
||||
movzx r14d, byte [rdx + 8 * 0]
|
||||
movzx r13, byte [rdx + 8 * 0]
|
||||
|
||||
movzx r12w, al
|
||||
movzx r11d, al
|
||||
movzx r10, al
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,31 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R14": "0x000000000000FFFF",
|
||||
"R13": "0x000000000000FFFF",
|
||||
"R12": "0x000000000000FFFF",
|
||||
"R11": "0x000000000000FFFF"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFFFFFFFFFF
|
||||
mov [rdx + 8 * 0], rax
|
||||
|
||||
mov r14, 0x4142434445464748
|
||||
mov r13, 0x4142434445464748
|
||||
mov r12, 0x4142434445464748
|
||||
mov r11, 0x4142434445464748
|
||||
|
||||
movzx r14d, word [rdx + 8 * 0]
|
||||
movzx r13, word [rdx + 8 * 0]
|
||||
|
||||
movzx r12d, ax
|
||||
movzx r11, ax
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,62 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0x1A"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
%macro cfmerge 0
|
||||
|
||||
; Get CF
|
||||
sbb r14, r14
|
||||
and r14, 1
|
||||
|
||||
; Merge in to results
|
||||
shl r15, 1
|
||||
or r15, r14
|
||||
|
||||
%endmacro
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFF80000000
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov [rdx + 8 * 1], rax
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x01
|
||||
mov [rdx + 8 * 3], eax
|
||||
mov rax, 0x0
|
||||
mov [rdx + 8 * 3 + 4], eax
|
||||
|
||||
xor r15, r15 ; Will contain our results
|
||||
|
||||
; Test and set
|
||||
mov r13, 1
|
||||
btc word [rdx], r13w
|
||||
cfmerge
|
||||
|
||||
; Ensure it is set
|
||||
mov r13, 1
|
||||
bt word [rdx], r13w
|
||||
cfmerge
|
||||
|
||||
mov r13, 32
|
||||
btc dword [rdx], r13d
|
||||
cfmerge
|
||||
|
||||
bt dword [rdx], r13d
|
||||
cfmerge
|
||||
|
||||
mov r13, 64 * 3
|
||||
btc qword [rdx], r13
|
||||
cfmerge
|
||||
|
||||
mov r13, 64 * 3
|
||||
bt qword [rdx], r13
|
||||
cfmerge
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,51 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0xFFFFFFFFFFFF0000",
|
||||
"R14": "0x0",
|
||||
"R13": "0x0",
|
||||
"R12": "0xFFFFFFFFFFFF0004",
|
||||
"R11": "0x04",
|
||||
"R10": "0x04",
|
||||
"R9": "0xFFFFFFFFFFFFFFFF",
|
||||
"R8": "0xFFFFFFFFFFFFFFFF",
|
||||
"RSI": "0xFFFFFFFFFFFFFFFF"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFFFFFFFFFF
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov rax, 0x1010101010101010
|
||||
mov [rdx + 8 * 1], rax
|
||||
mov rax, 0
|
||||
mov [rdx + 8 * 2], rax
|
||||
|
||||
mov r15, -1
|
||||
mov r14, -1
|
||||
mov r13, -1
|
||||
mov r12, -1
|
||||
mov r11, -1
|
||||
mov r10, -1
|
||||
mov r9, -1
|
||||
mov r8, -1
|
||||
mov rsi, -1
|
||||
|
||||
bsf r15w, word [rdx + 8 * 0]
|
||||
bsf r14d, dword [rdx + 8 * 0]
|
||||
bsf r13, qword [rdx + 8 * 0]
|
||||
|
||||
bsf r12w, word [rdx + 8 * 1]
|
||||
bsf r11d, dword [rdx + 8 * 1]
|
||||
bsf r10, qword [rdx + 8 * 1]
|
||||
|
||||
bsf r9w, word [rdx + 8 * 2]
|
||||
bsf r8d, dword [rdx + 8 * 2]
|
||||
bsf rsi, qword [rdx + 8 * 2]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,51 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0xFFFFFFFFFFFF000F",
|
||||
"R14": "0x1F",
|
||||
"R13": "0x3F",
|
||||
"R12": "0xFFFFFFFFFFFF000C",
|
||||
"R11": "0x1C",
|
||||
"R10": "0x3C",
|
||||
"R9": "0xFFFFFFFFFFFFFFFF",
|
||||
"R8": "0xFFFFFFFFFFFFFFFF",
|
||||
"RSI": "0xFFFFFFFFFFFFFFFF"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFFFFFFFFFF
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov rax, 0x1010101010101010
|
||||
mov [rdx + 8 * 1], rax
|
||||
mov rax, 0
|
||||
mov [rdx + 8 * 2], rax
|
||||
|
||||
mov r15, -1
|
||||
mov r14, -1
|
||||
mov r13, -1
|
||||
mov r12, -1
|
||||
mov r11, -1
|
||||
mov r10, -1
|
||||
mov r9, -1
|
||||
mov r8, -1
|
||||
mov rsi, -1
|
||||
|
||||
bsr r15w, word [rdx + 8 * 0]
|
||||
bsr r14d, dword [rdx + 8 * 0]
|
||||
bsr r13, qword [rdx + 8 * 0]
|
||||
|
||||
bsr r12w, word [rdx + 8 * 1]
|
||||
bsr r11d, dword [rdx + 8 * 1]
|
||||
bsr r10, qword [rdx + 8 * 1]
|
||||
|
||||
bsr r9w, word [rdx + 8 * 2]
|
||||
bsr r8d, dword [rdx + 8 * 2]
|
||||
bsr rsi, qword [rdx + 8 * 2]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,37 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0x414243444546FFFF",
|
||||
"R14": "0x00000000FFFFFFFF",
|
||||
"R13": "0xFFFFFFFFFFFFFFFF",
|
||||
"R12": "0x414243444546FFFF",
|
||||
"R11": "0x00000000FFFFFFFF",
|
||||
"R10": "0xFFFFFFFFFFFFFFFF"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFFFFFFFFFF
|
||||
mov [rdx + 8 * 0], rax
|
||||
|
||||
mov r15, 0x4142434445464748
|
||||
mov r14, 0x4142434445464748
|
||||
mov r13, 0x4142434445464748
|
||||
mov r12, 0x4142434445464748
|
||||
mov r11, 0x4142434445464748
|
||||
mov r10, 0x4142434445464748
|
||||
|
||||
movsx r15w, byte [rdx + 8 * 0]
|
||||
movsx r14d, byte [rdx + 8 * 0]
|
||||
movsx r13, byte [rdx + 8 * 0]
|
||||
|
||||
movsx r12w, al
|
||||
movsx r11d, al
|
||||
movsx r10, al
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,31 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R14": "0x00000000FFFFFFFF",
|
||||
"R13": "0xFFFFFFFFFFFFFFFF",
|
||||
"R12": "0x00000000FFFFFFFF",
|
||||
"R11": "0xFFFFFFFFFFFFFFFF"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0xFFFFFFFFFFFFFFFF
|
||||
mov [rdx + 8 * 0], rax
|
||||
|
||||
mov r14, 0x4142434445464748
|
||||
mov r13, 0x4142434445464748
|
||||
mov r12, 0x4142434445464748
|
||||
mov r11, 0x4142434445464748
|
||||
|
||||
movsx r14d, word [rdx + 8 * 0]
|
||||
movsx r13, word [rdx + 8 * 0]
|
||||
|
||||
movsx r12d, ax
|
||||
movsx r11, ax
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,53 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x4142434445464749",
|
||||
"RBX": "0x5152535455565759",
|
||||
"RCX": "0x6162636465666769",
|
||||
"RDX": "0x7172737475767779",
|
||||
"R15": "0x49",
|
||||
"R14": "0x5759",
|
||||
"R13": "0x65666769",
|
||||
"R12": "0x7172737475767779"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov r10, 0xe0000000
|
||||
|
||||
mov rax, 0x4142434445464748
|
||||
mov [r10 + 8 * 0], rax
|
||||
mov rax, 0x5152535455565758
|
||||
mov [r10 + 8 * 1], rax
|
||||
mov rax, 0x6162636465666768
|
||||
mov [r10 + 8 * 2], rax
|
||||
mov rax, 0x7172737475767778
|
||||
mov [r10 + 8 * 3], rax
|
||||
|
||||
mov rax, 0x01
|
||||
xadd byte [r10 + 8 * 0], al
|
||||
mov rax, 0x01
|
||||
xadd word [r10 + 8 * 1], ax
|
||||
mov rax, 0x01
|
||||
xadd dword [r10 + 8 * 2], eax
|
||||
mov rax, 0x01
|
||||
xadd qword [r10 + 8 * 3], rax
|
||||
|
||||
mov rax, [r10 + 8 * 0]
|
||||
mov rbx, [r10 + 8 * 1]
|
||||
mov rcx, [r10 + 8 * 2]
|
||||
mov rdx, [r10 + 8 * 3]
|
||||
|
||||
mov r15, 0x00
|
||||
xadd byte [r10 + 8 * 0], r15b
|
||||
mov r14, 0x00
|
||||
xadd word [r10 + 8 * 1], r14w
|
||||
mov r13, 0x00
|
||||
xadd dword [r10 + 8 * 2], r13d
|
||||
mov r12, 0x00
|
||||
xadd qword [r10 + 8 * 3], r12
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,51 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"XMM0": ["0xFFFFFFFFFFFFFFFF", "0x0"],
|
||||
"XMM1": ["0x0", "0xFFFFFFFF00000000"],
|
||||
"XMM2": ["0xFFFFFFFFFFFFFFFF", "0xFFFFFFFF00000000"],
|
||||
"XMM3": ["0x3f80000040000000", "0x4000000040800000"],
|
||||
"XMM4": ["0x0", "0xFFFFFFFFFFFFFFFF"],
|
||||
"XMM5": ["0xFFFFFFFFFFFFFFFF", "0x00000000FFFFFFFF"],
|
||||
"XMM6": ["0x0000000000000000", "0x00000000FFFFFFFF"],
|
||||
"XMM7": ["0x3f80000040000000", "0x4000000040800000"],
|
||||
"XMM8": ["0x3f80000040000000", "0x40a000003f800000"]
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0x3f80000040000000
|
||||
mov [rdx + 8 * 0], rax
|
||||
mov rax, 0x4000000040800000
|
||||
mov [rdx + 8 * 1], rax
|
||||
|
||||
mov rax, 0x3f80000040000000
|
||||
mov [rdx + 8 * 2], rax
|
||||
mov rax, 0x40a000003f800000
|
||||
mov [rdx + 8 * 3], rax
|
||||
|
||||
movapd xmm0, [rdx + 8 * 0]
|
||||
movapd xmm1, [rdx + 8 * 0]
|
||||
movapd xmm2, [rdx + 8 * 0]
|
||||
movapd xmm3, [rdx + 8 * 0]
|
||||
movapd xmm4, [rdx + 8 * 0]
|
||||
movapd xmm5, [rdx + 8 * 0]
|
||||
movapd xmm6, [rdx + 8 * 0]
|
||||
movapd xmm7, [rdx + 8 * 0]
|
||||
movapd xmm8, [rdx + 8 * 2]
|
||||
|
||||
cmpps xmm0, xmm8, 0x00 ; EQ
|
||||
cmpps xmm1, xmm8, 0x01 ; LT
|
||||
cmpps xmm2, xmm8, 0x02 ; LTE
|
||||
;cmpps xmm3, xmm8, 0x03 ; Unordered
|
||||
cmpps xmm4, xmm8, 0x04 ; NEQ
|
||||
cmpps xmm5, xmm8, 0x05 ; NLT
|
||||
cmpps xmm6, xmm8, 0x06 ; NLTE
|
||||
;cmpps xmm7, xmm8, 0x07 ; Ordered
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,64 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"R15": "0x0000000008070605",
|
||||
"R14": "0x00000000F8F7F6F5",
|
||||
"R13": "0x00000000E8E7E6E5",
|
||||
"R12": "0x00000000D8D7D6D5",
|
||||
"R11": "0x00000000C8C7C6C5",
|
||||
"R10": "0x00000000B8B7B6B5",
|
||||
"R9": "0x00000000A8A7A6A5",
|
||||
"R8": "0x0000000098979695",
|
||||
"RSP": "0x8887868584838281",
|
||||
"RDI": "0x7877767574737271",
|
||||
"RSI": "0x6867666564636261",
|
||||
"RBP": "0x5857565554535251",
|
||||
"RDX": "0x4847464544434241",
|
||||
"RCX": "0x3837363534333231",
|
||||
"RBX": "0x2827262524232221",
|
||||
"RAX": "0x1817161514131211"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
mov rdx, 0xe0000000
|
||||
|
||||
mov rax, 0x1112131415161718
|
||||
mov rbx, 0x2122232425262728
|
||||
mov rcx, 0x3132333435363738
|
||||
mov rdx, 0x4142434445464748
|
||||
mov rbp, 0x5152535455565758
|
||||
mov rsi, 0x6162636465666768
|
||||
mov rdi, 0x7172737475767778
|
||||
mov rsp, 0x8182838485868788
|
||||
mov r8, 0x9192939495969798
|
||||
mov r9, 0xA1A2A3A4A5A6A7A8
|
||||
mov r10, 0xB1B2B3B4B5B6B7B8
|
||||
mov r11, 0xC1C2C3C4C5C6C7C8
|
||||
mov r12, 0xD1D2D3D4D5D6D7D8
|
||||
mov r13, 0xE1E2E3E4E5E6E7E8
|
||||
mov r14, 0xF1F2F3F4F5F6F7F8
|
||||
mov r15, 0x0102030405060708
|
||||
|
||||
bswap rax
|
||||
bswap rbx
|
||||
bswap rcx
|
||||
bswap rdx
|
||||
bswap rbp
|
||||
bswap rsi
|
||||
bswap rdi
|
||||
bswap rsp
|
||||
|
||||
bswap r8d
|
||||
bswap r9d
|
||||
bswap r10d
|
||||
bswap r11d
|
||||
bswap r12d
|
||||
bswap r13d
|
||||
bswap r14d
|
||||
bswap r15d
|
||||
|
||||
hlt
|
||||
Reference in new issue
Block a user