Home | History | Annotate | Download | only in X86

Lines Matching full:x86

1 //===-- X86RegisterInfo.cpp - X86 Register Information --------------------===//
10 // This file contains the X86 implementation of the TargetRegisterInfo class.
12 // on X86.
17 #include "X86.h"
54 EnableBasePointer("x86-use-base-pointer", cl::Hidden, cl::init(true),
60 ? X86::RIP : X86::EIP),
64 ? X86::RIP : X86::EIP)),
75 StackPtr = X86::RSP;
76 FramePtr = X86::RBP;
79 StackPtr = X86::ESP;
80 FramePtr = X86::EBP;
85 BasePtr = Is64Bit ? X86::RBX : X86::ESI;
92 case X86::EBX: case X86::RBX: return 1;
93 case X86::ECX: case X86::R12: return 2;
94 case X86::EDX: case X86::R13: return 3;
95 case X86::EDI: case X86::R14: return 4;
96 case X86::ESI: case X86::R15: return 5;
97 case X86::EBP: case X86::RBP: return 6;
119 if (!Is64Bit && Idx == X86::sub_8bit)
120 Idx = X86::sub_8bit_hi;
131 if (!Is64Bit && SubIdx == X86::sub_8bit) {
132 A = X86GenRegisterInfo::getSubClassWithSubReg(A, X86::sub_8bit_hi);
149 if (RC == &X86::GR8_NOREXRegClass)
156 case X86::GR8RegClassID:
157 case X86::GR16RegClassID:
158 case X86::GR32RegClassID:
159 case X86::GR64RegClassID:
160 case X86::FR32RegClassID:
161 case X86::FR64RegClassID:
162 case X86::RFP32RegClassID:
163 case X86::RFP64RegClassID:
164 case X86::RFP80RegClassID:
165 case X86::VR128RegClassID:
166 case X86::VR256RegClassID:
185 return &X86::GR64RegClass;
186 return &X86::GR32RegClass;
189 return &X86::GR64_NOSPRegClass;
190 return &X86::GR32_NOSPRegClass;
193 return &X86::GR64_TCW64RegClass;
195 return &X86::GR64_TCRegClass;
200 return &X86::GR32RegClass;
201 return &X86::GR32_TCRegClass;
207 if (RC == &X86::CCRRegClass) {
209 return &X86::GR64RegClass;
211 return &X86::GR32RegClass;
225 case X86::GR32RegClassID:
227 case X86::GR64RegClassID:
229 case X86::VR128RegClassID:
231 case X86::VR64RegClassID:
309 Reserved.set(X86::RSP);
310 for (MCSubRegIterator I(X86::RSP, this); I.isValid(); ++I)
314 Reserved.set(X86::RIP);
315 for (MCSubRegIterator I(X86::RIP, this); I.isValid(); ++I)
320 Reserved.set(X86::RBP);
321 for (MCSubRegIterator I(X86::RBP, this); I.isValid(); ++I)
340 Reserved.set(X86::CS);
341 Reserved.set(X86::SS);
342 Reserved.set(X86::DS);
343 Reserved.set(X86::ES);
344 Reserved.set(X86::FS);
345 Reserved.set(X86::GS);
348 Reserved.set(X86::ST0);
349 Reserved.set(X86::ST1);
350 Reserved.set(X86::ST2);
351 Reserved.set(X86::ST3);
352 Reserved.set(X86::ST4);
353 Reserved.set(X86::ST5);
354 Reserved.set(X86::ST6);
355 Reserved.set(X86::ST7);
359 // These 8-bit registers are part of the x86-64 extension even though their
361 Reserved.set(X86::SIL);
362 Reserved.set(X86::DIL);
363 Reserved.set(X86::BPL);
364 Reserved.set(X86::SPL);
369 X86::R8, X86::R9, X86::R10, X86::R11,
370 X86::R12, X86::R13, X86::R14, X86::R15
376 assert(X86::XMM15 == X86::XMM8+7);
377 for (MCRegAliasIterator AI(X86::XMM8 + n, this, true); AI.isValid(); ++AI)
467 bool AfterFPPop = Opc == X86::TAILJMPm64 || Opc == X86::TAILJMPm;
527 case X86::SIL: case X86::SI: case X86::ESI: case X86::RSI:
528 return X86::SI;
529 case X86::DIL: case X86::DI: case X86::EDI: case X86::RDI:
530 return X86::DI;
531 case X86::BPL: case X86::BP: case X86::EBP: case X86::RBP:
532 return X86::BP;
533 case X86::SPL: case X86::SP: case X86::ESP: case X86::RSP:
534 return X86::SP;
535 case X86::AH: case X86::AL: case X86::AX: case X86::EAX: case X86::RAX:
536 return X86::AH;
537 case X86::DH: case X86::DL: case X86::DX: case X86::EDX: case X86::RDX:
538 return X86::DH;
539 case X86::CH: case X86::CL: case X86::CX: case X86::ECX: case X86::RCX:
540 return X86::CH;
541 case X86::BH: case X86::BL: case X86::BX: case X86::EBX: case X86::RBX:
542 return X86::BH;
547 case X86::AH: case X86::AL: case X86::AX: case X86::EAX: case X86::RAX:
548 return X86::AL;
549 case X86::DH: case X86::DL: case X86::DX: case X86::EDX: case X86::RDX:
550 return X86::DL;
551 case X86::CH: case X86::CL: case X86::CX: case X86::ECX: case X86::RCX:
552 return X86::CL;
553 case X86::BH: case X86::BL: case X86::BX: case X86::EBX: case X86::RBX:
554 return X86::BL;
555 case X86::SIL: case X86::SI: case X86::ESI: case X86::RSI:
556 return X86::SIL;
557 case X86::DIL: case X86::DI: case X86::EDI: case X86::RDI:
558 return X86::DIL;
559 case X86::BPL: case X86::BP: case X86::EBP: case X86::RBP:
560 return X86::BPL;
561 case X86::SPL: case X86::SP: case X86::ESP: case X86::RSP:
562 return X86::SPL;
563 case X86::R8B: case X86::R8W: case X86::R8D: case X86::R8:
564 return X86::R8B;
565 case X86::R9B: case X86::R9W: case X86::R9D: case X86::R9:
566 return X86::R9B;
567 case X86::R10B: case X86::R10W: case X86::R10D: case X86::R10:
568 return X86::R10B;
569 case X86::R11B: case X86::R11W: case X86::R11D: case X86::R11:
570 return X86::R11B;
571 case X86::R12B: case X86::R12W: case X86::R12D: case X86::R12:
572 return X86::R12B;
573 case X86::R13B: case X86::R13W: case X86::R13D: case X86::R13:
574 return X86::R13B;
575 case X86::R14B: case X86::R14W: case X86::R14D: case X86::R14:
576 return X86::R14B;
577 case X86::R15B: case X86::R15W: case X86::R15D: case X86::R15:
578 return X86::R15B;
584 case X86::AH: case X86::AL: case X86::AX: case X86::EAX: case X86::RAX:
585 return X86::AX;
586 case X86::DH: case X86::DL: case X86::DX: case X86::EDX: case X86::RDX:
587 return X86::DX;
588 case X86::CH: case X86::CL: case X86::CX: case X86::ECX: case X86::RCX:
589 return X86::CX;
590 case X86::BH: case X86::BL: case X86::BX: case X86::EBX: case X86::RBX:
591 return X86::BX;
592 case X86::SIL: case X86::SI: case X86::ESI: case X86::RSI:
593 return X86::SI;
594 case X86::DIL: case X86::DI: case X86::EDI: case X86::RDI:
595 return X86::DI;
596 case X86::BPL: case X86::BP: case X86::EBP: case X86::RBP:
597 return X86::BP;
598 case X86::SPL: case X86::SP: case X86::ESP: case X86::RSP:
599 return X86::SP;
600 case X86::R8B: case X86::R8W: case X86::R8D: case X86::R8:
601 return X86::R8W;
602 case X86::R9B: case X86::R9W: case X86::R9D: case X86::R9:
603 return X86::R9W;
604 case X86::R10B: case X86::R10W: case X86::R10D: case X86::R10:
605 return X86::R10W;
606 case X86::R11B: case X86::R11W: case X86::R11D: case X86::R11:
607 return X86::R11W;
608 case X86::R12B: case X86::R12W: case X86::R12D: case X86::R12:
609 return X86::R12W;
610 case X86::R13B: case X86::R13W: case X86::R13D: case X86::R13:
611 return X86::R13W;
612 case X86::R14B: case X86::R14W: case X86::R14D: case X86::R14:
613 return X86::R14W;
614 case X86::R15B: case X86::R15W: case X86::R15D: case X86::R15:
615 return X86::R15W;
620 case X86::AH: case X86::AL: case X86::AX: case X86::EAX: case X86::RAX:
621 return X86::EAX;
622 case X86::DH: case X86::DL: case X86::DX: case X86::EDX: case X86::RDX:
623 return X86::EDX;
624 case X86::CH: case X86::CL: case X86::CX: case X86::ECX: case X86::RCX:
625 return X86::ECX;
626 case X86::BH: case X86::BL: case X86::BX: case X86::EBX: case X86::RBX:
627 return X86::EBX;
628 case X86::SIL: case X86::SI: case X86::ESI: case X86::RSI:
629 return X86::ESI;
630 case X86::DIL: case X86::DI: case X86::EDI: case X86::RDI:
631 return X86::EDI;
632 case X86::BPL: case X86::BP: case X86::EBP: case X86::RBP:
633 return X86::EBP;
634 case X86::SPL: case X86::SP: case X86::ESP: case X86::RSP:
635 return X86::ESP;
636 case X86::R8B: case X86::R8W: case X86::R8D: case X86::R8:
637 return X86::R8D;
638 case X86::R9B: case X86::R9W: case X86::R9D: case X86::R9:
639 return X86::R9D;
640 case X86::R10B: case X86::R10W: case X86::R10D: case X86::R10:
641 return X86::R10D;
642 case X86::R11B: case X86::R11W: case X86::R11D: case X86::R11:
643 return X86::R11D;
644 case X86::R12B: case X86::R12W: case X86::R12D: case X86::R12:
645 return X86::R12D;
646 case X86::R13B: case X86::R13W: case X86::R13D: case X86::R13:
647 return X86::R13D;
648 case X86::R14B: case X86::R14W: case X86::R14D: case X86::R14:
649 return X86::R14D;
650 case X86::R15B: case X86::R15W: case X86::R15D: case X86::R15:
651 return X86::R15D;
656 case X86::AH: case X86::AL: case X86::AX: case X86::EAX: case X86::RAX:
657 return X86::RAX;
658 case X86::DH: case X86::DL: case X86::DX: case X86::EDX: case X86::RDX:
659 return X86::RDX;
660 case X86::CH: case X86::CL: case X86::CX: case X86::ECX: case X86::RCX:
661 return X86::RCX;
662 case X86::BH: case X86::BL: case X86::BX: case X86::EBX: case X86::RBX:
663 return X86::RBX;
664 case X86::SIL: case X86::SI: case X86::ESI: case X86::RSI:
665 return X86::RSI;
666 case X86::DIL: case X86::DI: case X86::EDI: case X86::RDI:
667 return X86::RDI;
668 case X86::BPL: case X86::BP: case X86::EBP: case X86::RBP:
669 return X86::RBP;
670 case X86::SPL: case X86::SP: case X86::ESP: case X86::RSP:
671 return X86::RSP;
672 case X86::R8B: case X86::R8W: case X86::R8D: case X86::R8:
673 return X86::R8;
674 case X86::R9B: case X86::R9W: case X86::R9D: case X86::R9:
675 return X86::R9;
676 case X86::R10B: case X86::R10W: case X86::R10D: case X86::R10:
677 return X86::R10;
678 case X86::R11B: case X86::R11W: case X86::R11D: case X86::R11:
679 return X86::R11;
680 case X86::R12B: case X86::R12W: case X86::R12D: case X86::R12:
681 return X86::R12;
682 case X86::R13B: case X86::R13W: case X86::R13D: case X86::R13:
683 return X86::R13;
684 case X86::R14B: case X86::R14W: case X86::R14D: case X86::R14:
685 return X86::R14;
686 case X86::R15B: case X86::R15W: case X86::R15D: case X86::R15:
687 return X86::R15;