llvm.org GIT mirror llvm / 75fe5f3
Add X86 disassembler support for RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141358 91177308-0d34-0410-b5e6-96231b3b80d8 Craig Topper 8 years ago
2 changed file(s) with 47 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
399399 def INVD : I<0x08, RawFrm, (outs), (ins), "invd", []>, TB;
400400 def WBINVD : I<0x09, RawFrm, (outs), (ins), "wbinvd", []>, TB;
401401
402 //===----------------------------------------------------------------------===//
403 // XSAVE instructions
402404 let Defs = [RDX, RAX], Uses = [RCX] in
403405 def XGETBV : I<0x01, MRM_D0, (outs), (ins), "xgetbv", []>, TB;
404406
441443 }
442444 let Defs = [RAX, RDX, RSI], Uses = [RAX, RSI] in
443445 def MONTMUL : I<0xc0, RawFrm, (outs), (ins), "montmul", []>, A6;
446
447 //===----------------------------------------------------------------------===//
448 // FS/GS Base Instructions
449 let Predicates = [In64BitMode] in {
450 def RDFSBASE : I<0xAE, MRM0r, (outs GR32:$dst), (ins),
451 "rdfsbase{l}\t$dst", []>, TB, XS;
452 def RDFSBASE64 : RI<0xAE, MRM0r, (outs GR64:$dst), (ins),
453 "rdfsbase{q}\t$dst", []>, TB, XS;
454 def RDGSBASE : I<0xAE, MRM1r, (outs GR32:$dst), (ins),
455 "rdgsbase{l}\t$dst", []>, TB, XS;
456 def RDGSBASE64 : RI<0xAE, MRM1r, (outs GR64:$dst), (ins),
457 "rdgsbase{q}\t$dst", []>, TB, XS;
458 def WRFSBASE : I<0xAE, MRM2r, (outs), (ins GR32:$dst),
459 "wrfsbase{l}\t$dst", []>, TB, XS;
460 def WRFSBASE64 : RI<0xAE, MRM2r, (outs), (ins GR64:$dst),
461 "wrfsbase{q}\t$dst", []>, TB, XS;
462 def WRGSBASE : I<0xAE, MRM3r, (outs), (ins GR32:$dst),
463 "wrgsbase{l}\t$dst", []>, TB, XS;
464 def WRGSBASE64 : RI<0xAE, MRM3r, (outs), (ins GR64:$dst),
465 "wrgsbase{q}\t$dst", []>, TB, XS;
466 }
430430
431431 # CHECK: xsaveopt (%rax)
432432 0x0f 0xae 0x30
433
434 # CHECK rdfsbasel %eax
435 0xf3 0x0f 0xae 0xc0
436
437 # CHECK rdgsbasel %eax
438 0xf3 0x0f 0xae 0xc8
439
440 # CHECK wrfsbasel %eax
441 0xf3 0x0f 0xae 0xd0
442
443 # CHECK wrgsbasel %eax
444 0xf3 0x0f 0xae 0xd8
445
446 # CHECK rdfsbaseq %rax
447 0xf3 0x48 0x0f 0xae 0xc0
448
449 # CHECK rdgsbaseq %rax
450 0xf3 0x48 0x0f 0xae 0xc8
451
452 # CHECK wrfsbaseq %rax
453 0xf3 0x48 0x0f 0xae 0xd0
454
455 # CHECK wrgsbaseq %rax
456 0xf3 0x48 0x0f 0xae 0xd8