613 call32_operand = 2, // embedded 32-bit self-relative displacement
614 #ifndef _LP64
615 _WhichOperand_limit = 3
616 #else
617 narrow_oop_operand = 3, // embedded 32-bit immediate narrow oop
618 _WhichOperand_limit = 4
619 #endif
620 };
621
622 enum ComparisonPredicate {
623 eq = 0,
624 lt = 1,
625 le = 2,
626 _false = 3,
627 neq = 4,
628 nlt = 5,
629 nle = 6,
630 _true = 7
631 };
632
633
634 // NOTE: The general philopsophy of the declarations here is that 64bit versions
635 // of instructions are freely declared without the need for wrapping them an ifdef.
636 // (Some dangerous instructions are ifdef's out of inappropriate jvm's.)
637 // In the .cpp file the implementations are wrapped so that they are dropped out
638 // of the resulting jvm. This is done mostly to keep the footprint of MINIMAL
639 // to the size it was prior to merging up the 32bit and 64bit assemblers.
640 //
641 // This does mean you'll get a linker/runtime error if you use a 64bit only instruction
642 // in a 32bit vm. This is somewhat unfortunate but keeps the ifdef noise down.
643
644 private:
645
646 bool _legacy_mode_bw;
647 bool _legacy_mode_dq;
648 bool _legacy_mode_vl;
649 bool _legacy_mode_vlbw;
650 bool _is_managed;
651 bool _vector_masking; // For stub code use only
652
|
613 call32_operand = 2, // embedded 32-bit self-relative displacement
614 #ifndef _LP64
615 _WhichOperand_limit = 3
616 #else
617 narrow_oop_operand = 3, // embedded 32-bit immediate narrow oop
618 _WhichOperand_limit = 4
619 #endif
620 };
621
622 enum ComparisonPredicate {
623 eq = 0,
624 lt = 1,
625 le = 2,
626 _false = 3,
627 neq = 4,
628 nlt = 5,
629 nle = 6,
630 _true = 7
631 };
632
633 //---< calculate length of instruction >---
634 // As instruction size can't be found out easily on x86/x64,
635 // we just use '4' for len and maxlen.
636 // instruction must start at passed address
637 static unsigned int instr_len(unsigned char *instr) { return 4; }
638
639 //---< longest instructions >---
640 // Max instruction length is not specified in architecture documentation.
641 // We could use a "safe enough" estimate (15), but just default to
642 // instruction length guess from above.
643 static unsigned int instr_maxlen() { return 4; }
644
645 // NOTE: The general philopsophy of the declarations here is that 64bit versions
646 // of instructions are freely declared without the need for wrapping them an ifdef.
647 // (Some dangerous instructions are ifdef's out of inappropriate jvm's.)
648 // In the .cpp file the implementations are wrapped so that they are dropped out
649 // of the resulting jvm. This is done mostly to keep the footprint of MINIMAL
650 // to the size it was prior to merging up the 32bit and 64bit assemblers.
651 //
652 // This does mean you'll get a linker/runtime error if you use a 64bit only instruction
653 // in a 32bit vm. This is somewhat unfortunate but keeps the ifdef noise down.
654
655 private:
656
657 bool _legacy_mode_bw;
658 bool _legacy_mode_dq;
659 bool _legacy_mode_vl;
660 bool _legacy_mode_vlbw;
661 bool _is_managed;
662 bool _vector_masking; // For stub code use only
663
|