// RUN: llvm-mc -triple x86_64- -x86-asm-syntax=intel --output-asm-variant=0 --show-encoding %s | FileCheck %s // These should map mov -> movabs // CHECK: movabsb %al, 78187493520 // CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov [0x1234567890], al // CHECK: movabsw %ax, 78187493520 // CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov [0x1234567890], ax // CHECK: movabsl %eax, 78187493520 // CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov [0x1234567890], eax // CHECK: movabsq %rax, 78187493520 // CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov [0x1234567890], rax // CHECK: movabsb 78187493520, %al // CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov al, [0x1234567890] // CHECK: movabsw 78187493520, %ax // CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov ax, [0x1234567890] // CHECK: movabsl 78187493520, %eax // CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov eax, [0x1234567890] // CHECK: movabsq 78187493520, %rax // CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0x00,0x00,0x00] mov rax, [0x1234567890] // These should *NOT* map mov -> movabs // CHECK: movb %al, 305419896 // CHECK: encoding: [0x88,0x04,0x25,0x78,0x56,0x34,0x12] mov [0x12345678], al // CHECK: movw %ax, 305419896 // CHECK: encoding: [0x66,0x89,0x04,0x25,0x78,0x56,0x34,0x12] mov [0x12345678], ax // CHECK: movl %eax, 305419896 // CHECK: encoding: [0x89,0x04,0x25,0x78,0x56,0x34,0x12] mov [0x12345678], eax // CHECK: movq %rax, 305419896 // CHECK: encoding: [0x48,0x89,0x04,0x25,0x78,0x56,0x34,0x12] mov [0x12345678], rax // CHECK: movb 305419896, %al // CHECK: encoding: [0x8a,0x04,0x25,0x78,0x56,0x34,0x12] mov al, [0x12345678] // CHECK: movw 305419896, %ax // CHECK: encoding: [0x66,0x8b,0x04,0x25,0x78,0x56,0x34,0x12] mov ax, [0x12345678] // CHECK: movl 305419896, %eax // CHECK: encoding: [0x8b,0x04,0x25,0x78,0x56,0x34,0x12] mov eax, [0x12345678] // CHECK: movq 305419896, %rax // CHECK: encoding: [0x48,0x8b,0x04,0x25,0x78,0x56,0x34,0x12] mov rax, [0x12345678] // Test sign extension // CHECK: movb %al, 2147483647 // CHECK: encoding: [0x88,0x04,0x25,0xff,0xff,0xff,0x7f] mov [0x7fffffff], al // CHECK: movabsb %al, 2147483648 // CHECK: encoding: [0xa2,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00] mov [0x80000000], al // CHECK: movb %al, -2147483648 // CHECK: encoding: [0x88,0x04,0x25,0x00,0x00,0x00,0x80] mov [0xffffffff80000000], al