diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst --- a/llvm/docs/ReleaseNotes.rst +++ b/llvm/docs/ReleaseNotes.rst @@ -137,6 +137,7 @@ -------------------------- * Add support for the ``RDMSRLIST and WRMSRLIST`` instructions. +* Add support for the ``WRMSRNS`` instruction. Changes to the OCaml bindings ----------------------------- diff --git a/llvm/lib/Target/X86/X86InstrSystem.td b/llvm/lib/Target/X86/X86InstrSystem.td --- a/llvm/lib/Target/X86/X86InstrSystem.td +++ b/llvm/lib/Target/X86/X86InstrSystem.td @@ -425,6 +425,8 @@ let SchedRW = [WriteSystem] in { let Uses = [EAX, ECX, EDX] in def WRMSR : I<0x30, RawFrm, (outs), (ins), "wrmsr", []>, TB; +let Uses = [EAX, ECX, EDX] in +def WRMSRNS : I<0x01, MRM_C6, (outs), (ins), "wrmsrns", []>, PS; let Defs = [EAX, EDX], Uses = [ECX] in def RDMSR : I<0x32, RawFrm, (outs), (ins), "rdmsr", []>, TB; diff --git a/llvm/test/MC/Disassembler/X86/wrmsrns.txt b/llvm/test/MC/Disassembler/X86/wrmsrns.txt new file mode 100644 --- /dev/null +++ b/llvm/test/MC/Disassembler/X86/wrmsrns.txt @@ -0,0 +1,8 @@ +# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT +# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL +# RUN: llvm-mc --disassemble %s -triple=i386 | FileCheck %s --check-prefixes=ATT +# RUN: llvm-mc --disassemble %s -triple=i386 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL + +# ATT: wrmsrns +# INTEL: wrmsrns +0x0f,0x01,0xc6 diff --git a/llvm/test/MC/X86/wrmsrns.s b/llvm/test/MC/X86/wrmsrns.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/X86/wrmsrns.s @@ -0,0 +1,8 @@ +// RUN: llvm-mc -triple x86_64 --show-encoding %s | FileCheck %s +// RUN: llvm-mc -triple x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s +// RUN: llvm-mc -triple i386 --show-encoding %s | FileCheck %s +// RUN: llvm-mc -triple i386 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s + +// CHECK: wrmsrns +// CHECK: encoding: [0x0f,0x01,0xc6] + wrmsrns