mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
92910706f0
Key Locker provides a mechanism to encrypt and decrypt data with an AES key without having access to the raw key value by converting AES keys into “handles”. These handles can be used to perform the same encryption and decryption operations as the original AES keys, but they only work on the current system and only until they are revoked. If software revokes Key Locker handles (e.g., on a reboot), then any previous handles can no longer be used. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D88398
206 lines
8.2 KiB
ArmAsm
206 lines
8.2 KiB
ArmAsm
// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
|
|
|
|
// CHECK: aesdec128kl 268435456(%rbp,%r14,8), %xmm6
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xdd,0xb4,0xf5,0x00,0x00,0x00,0x10]
|
|
aesdec128kl 268435456(%rbp,%r14,8), %xmm6
|
|
|
|
// CHECK: aesdec128kl 291(%r8,%rax,4), %xmm6
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xdd,0xb4,0x80,0x23,0x01,0x00,0x00]
|
|
aesdec128kl 291(%r8,%rax,4), %xmm6
|
|
|
|
// CHECK: aesdec128kl (%rip), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdd,0x35,0x00,0x00,0x00,0x00]
|
|
aesdec128kl (%rip), %xmm6
|
|
|
|
// CHECK: aesdec128kl -1536(,%rbp,2), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdd,0x34,0x6d,0x00,0xfa,0xff,0xff]
|
|
aesdec128kl -1536(,%rbp,2), %xmm6
|
|
|
|
// CHECK: aesdec128kl 6096(%rcx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdd,0xb1,0xd0,0x17,0x00,0x00]
|
|
aesdec128kl 6096(%rcx), %xmm6
|
|
|
|
// CHECK: aesdec128kl -6144(%rdx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdd,0xb2,0x00,0xe8,0xff,0xff]
|
|
aesdec128kl -6144(%rdx), %xmm6
|
|
|
|
// CHECK: aesdec256kl 268435456(%rbp,%r14,8), %xmm6
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xdf,0xb4,0xf5,0x00,0x00,0x00,0x10]
|
|
aesdec256kl 268435456(%rbp,%r14,8), %xmm6
|
|
|
|
// CHECK: aesdec256kl 291(%r8,%rax,4), %xmm6
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xdf,0xb4,0x80,0x23,0x01,0x00,0x00]
|
|
aesdec256kl 291(%r8,%rax,4), %xmm6
|
|
|
|
// CHECK: aesdec256kl (%rip), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdf,0x35,0x00,0x00,0x00,0x00]
|
|
aesdec256kl (%rip), %xmm6
|
|
|
|
// CHECK: aesdec256kl -2048(,%rbp,2), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdf,0x34,0x6d,0x00,0xf8,0xff,0xff]
|
|
aesdec256kl -2048(,%rbp,2), %xmm6
|
|
|
|
// CHECK: aesdec256kl 8128(%rcx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdf,0xb1,0xc0,0x1f,0x00,0x00]
|
|
aesdec256kl 8128(%rcx), %xmm6
|
|
|
|
// CHECK: aesdec256kl -8192(%rdx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdf,0xb2,0x00,0xe0,0xff,0xff]
|
|
aesdec256kl -8192(%rdx), %xmm6
|
|
|
|
// CHECK: aesenc128kl 268435456(%rbp,%r14,8), %xmm6
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xdc,0xb4,0xf5,0x00,0x00,0x00,0x10]
|
|
aesenc128kl 268435456(%rbp,%r14,8), %xmm6
|
|
|
|
// CHECK: aesenc128kl 291(%r8,%rax,4), %xmm6
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xdc,0xb4,0x80,0x23,0x01,0x00,0x00]
|
|
aesenc128kl 291(%r8,%rax,4), %xmm6
|
|
|
|
// CHECK: aesenc128kl (%rip), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdc,0x35,0x00,0x00,0x00,0x00]
|
|
aesenc128kl (%rip), %xmm6
|
|
|
|
// CHECK: aesenc128kl -1536(,%rbp,2), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdc,0x34,0x6d,0x00,0xfa,0xff,0xff]
|
|
aesenc128kl -1536(,%rbp,2), %xmm6
|
|
|
|
// CHECK: aesenc128kl 6096(%rcx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdc,0xb1,0xd0,0x17,0x00,0x00]
|
|
aesenc128kl 6096(%rcx), %xmm6
|
|
|
|
// CHECK: aesenc128kl -6144(%rdx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdc,0xb2,0x00,0xe8,0xff,0xff]
|
|
aesenc128kl -6144(%rdx), %xmm6
|
|
|
|
// CHECK: aesenc256kl 268435456(%rbp,%r14,8), %xmm6
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xde,0xb4,0xf5,0x00,0x00,0x00,0x10]
|
|
aesenc256kl 268435456(%rbp,%r14,8), %xmm6
|
|
|
|
// CHECK: aesenc256kl 291(%r8,%rax,4), %xmm6
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xde,0xb4,0x80,0x23,0x01,0x00,0x00]
|
|
aesenc256kl 291(%r8,%rax,4), %xmm6
|
|
|
|
// CHECK: aesenc256kl (%rip), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xde,0x35,0x00,0x00,0x00,0x00]
|
|
aesenc256kl (%rip), %xmm6
|
|
|
|
// CHECK: aesenc256kl -2048(,%rbp,2), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xde,0x34,0x6d,0x00,0xf8,0xff,0xff]
|
|
aesenc256kl -2048(,%rbp,2), %xmm6
|
|
|
|
// CHECK: aesenc256kl 8128(%rcx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xde,0xb1,0xc0,0x1f,0x00,0x00]
|
|
aesenc256kl 8128(%rcx), %xmm6
|
|
|
|
// CHECK: aesenc256kl -8192(%rdx), %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xde,0xb2,0x00,0xe0,0xff,0xff]
|
|
aesenc256kl -8192(%rdx), %xmm6
|
|
|
|
// CHECK: encodekey128 %ecx, %ecx
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xfa,0xc9]
|
|
encodekey128 %ecx, %ecx
|
|
|
|
// CHECK: encodekey256 %ecx, %ecx
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xfb,0xc9]
|
|
encodekey256 %ecx, %ecx
|
|
|
|
// CHECK: loadiwkey %xmm7, %xmm6
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xdc,0xf7]
|
|
loadiwkey %xmm7, %xmm6
|
|
|
|
// CHECK: aesdecwide128kl 268435456(%rbp,%r14,8)
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xd8,0x8c,0xf5,0x00,0x00,0x00,0x10]
|
|
aesdecwide128kl 268435456(%rbp,%r14,8)
|
|
|
|
// CHECK: aesdecwide128kl 291(%r8,%rax,4)
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xd8,0x8c,0x80,0x23,0x01,0x00,0x00]
|
|
aesdecwide128kl 291(%r8,%rax,4)
|
|
|
|
// CHECK: aesdecwide128kl (%rip)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x0d,0x00,0x00,0x00,0x00]
|
|
aesdecwide128kl (%rip)
|
|
|
|
// CHECK: aesdecwide128kl -1536(,%rbp,2)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x0c,0x6d,0x00,0xfa,0xff,0xff]
|
|
aesdecwide128kl -1536(,%rbp,2)
|
|
|
|
// CHECK: aesdecwide128kl 6096(%rcx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x89,0xd0,0x17,0x00,0x00]
|
|
aesdecwide128kl 6096(%rcx)
|
|
|
|
// CHECK: aesdecwide128kl -6144(%rdx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x8a,0x00,0xe8,0xff,0xff]
|
|
aesdecwide128kl -6144(%rdx)
|
|
|
|
// CHECK: aesdecwide256kl 268435456(%rbp,%r14,8)
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xd8,0x9c,0xf5,0x00,0x00,0x00,0x10]
|
|
aesdecwide256kl 268435456(%rbp,%r14,8)
|
|
|
|
// CHECK: aesdecwide256kl 291(%r8,%rax,4)
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xd8,0x9c,0x80,0x23,0x01,0x00,0x00]
|
|
aesdecwide256kl 291(%r8,%rax,4)
|
|
|
|
// CHECK: aesdecwide256kl (%rip)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x1d,0x00,0x00,0x00,0x00]
|
|
aesdecwide256kl (%rip)
|
|
|
|
// CHECK: aesdecwide256kl -2048(,%rbp,2)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x1c,0x6d,0x00,0xf8,0xff,0xff]
|
|
aesdecwide256kl -2048(,%rbp,2)
|
|
|
|
// CHECK: aesdecwide256kl 8128(%rcx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x99,0xc0,0x1f,0x00,0x00]
|
|
aesdecwide256kl 8128(%rcx)
|
|
|
|
// CHECK: aesdecwide256kl -8192(%rdx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x9a,0x00,0xe0,0xff,0xff]
|
|
aesdecwide256kl -8192(%rdx)
|
|
|
|
// CHECK: aesencwide128kl 268435456(%rbp,%r14,8)
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xd8,0x84,0xf5,0x00,0x00,0x00,0x10]
|
|
aesencwide128kl 268435456(%rbp,%r14,8)
|
|
|
|
// CHECK: aesencwide128kl 291(%r8,%rax,4)
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xd8,0x84,0x80,0x23,0x01,0x00,0x00]
|
|
aesencwide128kl 291(%r8,%rax,4)
|
|
|
|
// CHECK: aesencwide128kl (%rip)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x05,0x00,0x00,0x00,0x00]
|
|
aesencwide128kl (%rip)
|
|
|
|
// CHECK: aesencwide128kl -1536(,%rbp,2)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x04,0x6d,0x00,0xfa,0xff,0xff]
|
|
aesencwide128kl -1536(,%rbp,2)
|
|
|
|
// CHECK: aesencwide128kl 6096(%rcx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x81,0xd0,0x17,0x00,0x00]
|
|
aesencwide128kl 6096(%rcx)
|
|
|
|
// CHECK: aesencwide128kl -6144(%rdx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x82,0x00,0xe8,0xff,0xff]
|
|
aesencwide128kl -6144(%rdx)
|
|
|
|
// CHECK: aesencwide256kl 268435456(%rbp,%r14,8)
|
|
// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xd8,0x94,0xf5,0x00,0x00,0x00,0x10]
|
|
aesencwide256kl 268435456(%rbp,%r14,8)
|
|
|
|
// CHECK: aesencwide256kl 291(%r8,%rax,4)
|
|
// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xd8,0x94,0x80,0x23,0x01,0x00,0x00]
|
|
aesencwide256kl 291(%r8,%rax,4)
|
|
|
|
// CHECK: aesencwide256kl (%rip)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x15,0x00,0x00,0x00,0x00]
|
|
aesencwide256kl (%rip)
|
|
|
|
// CHECK: aesencwide256kl -2048(,%rbp,2)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x14,0x6d,0x00,0xf8,0xff,0xff]
|
|
aesencwide256kl -2048(,%rbp,2)
|
|
|
|
// CHECK: aesencwide256kl 8128(%rcx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x91,0xc0,0x1f,0x00,0x00]
|
|
aesencwide256kl 8128(%rcx)
|
|
|
|
// CHECK: aesencwide256kl -8192(%rdx)
|
|
// CHECK: encoding: [0xf3,0x0f,0x38,0xd8,0x92,0x00,0xe0,0xff,0xff]
|
|
aesencwide256kl -8192(%rdx)
|