587 fsc[0] = TypeInt::CC; 588 fsc[1] = Type::MEMORY; 589 TypeTuple::STORECONDITIONAL = TypeTuple::make(2, fsc); 590 591 TypeInstPtr::NOTNULL = TypeInstPtr::make(TypePtr::NotNull, current->env()->Object_klass()); 592 TypeInstPtr::BOTTOM = TypeInstPtr::make(TypePtr::BotPTR, current->env()->Object_klass()); 593 TypeInstPtr::MIRROR = TypeInstPtr::make(TypePtr::NotNull, current->env()->Class_klass()); 594 TypeInstPtr::MARK = TypeInstPtr::make(TypePtr::BotPTR, current->env()->Object_klass(), 595 false, 0, Offset(oopDesc::mark_offset_in_bytes())); 596 TypeInstPtr::KLASS = TypeInstPtr::make(TypePtr::BotPTR, current->env()->Object_klass(), 597 false, 0, Offset(oopDesc::klass_offset_in_bytes())); 598 TypeOopPtr::BOTTOM = TypeOopPtr::make(TypePtr::BotPTR, Offset::bottom, TypeOopPtr::InstanceBot); 599 600 TypeMetadataPtr::BOTTOM = TypeMetadataPtr::make(TypePtr::BotPTR, NULL, Offset::bottom); 601 602 TypeNarrowOop::NULL_PTR = TypeNarrowOop::make( TypePtr::NULL_PTR ); 603 TypeNarrowOop::BOTTOM = TypeNarrowOop::make( TypeInstPtr::BOTTOM ); 604 605 TypeNarrowKlass::NULL_PTR = TypeNarrowKlass::make( TypePtr::NULL_PTR ); 606 607 TypeValueTypePtr::NOTNULL = (EnableValhalla || EnableMVT) ? TypeValueTypePtr::make(TypePtr::NotNull, current->env()->___Value_klass()->as_value_klass()) : NULL; 608 609 mreg2type[Op_Node] = Type::BOTTOM; 610 mreg2type[Op_Set ] = 0; 611 mreg2type[Op_RegN] = TypeNarrowOop::BOTTOM; 612 mreg2type[Op_RegI] = TypeInt::INT; 613 mreg2type[Op_RegP] = TypePtr::BOTTOM; 614 mreg2type[Op_RegF] = Type::FLOAT; 615 mreg2type[Op_RegD] = Type::DOUBLE; 616 mreg2type[Op_RegL] = TypeLong::LONG; 617 mreg2type[Op_RegFlags] = TypeInt::CC; 618 619 TypeAryPtr::RANGE = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(Type::BOTTOM,TypeInt::POS), NULL /* current->env()->Object_klass() */, false, Offset(arrayOopDesc::length_offset_in_bytes())); 620 621 TypeAryPtr::NARROWOOPS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeNarrowOop::BOTTOM, TypeInt::POS), NULL /*ciArrayKlass::make(o)*/, false, Offset::bottom); 622 623 #ifdef _LP64 624 if (UseCompressedOops) { 625 assert(TypeAryPtr::NARROWOOPS->is_ptr_to_narrowoop(), "array of narrow oops must be ptr to narrow oop"); 626 TypeAryPtr::OOPS = TypeAryPtr::NARROWOOPS; 627 } else 628 #endif 629 { 630 // There is no shared klass for Object[]. See note in TypeAryPtr::klass(). 631 TypeAryPtr::OOPS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInstPtr::BOTTOM,TypeInt::POS), NULL /*ciArrayKlass::make(o)*/, false, Offset::bottom); 632 } 633 TypeAryPtr::BYTES = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::BYTE ,TypeInt::POS), ciTypeArrayKlass::make(T_BYTE), true, Offset::bottom); 634 TypeAryPtr::SHORTS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::SHORT ,TypeInt::POS), ciTypeArrayKlass::make(T_SHORT), true, Offset::bottom); 635 TypeAryPtr::CHARS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::CHAR ,TypeInt::POS), ciTypeArrayKlass::make(T_CHAR), true, Offset::bottom); 636 TypeAryPtr::INTS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::INT ,TypeInt::POS), ciTypeArrayKlass::make(T_INT), true, Offset::bottom); 637 TypeAryPtr::LONGS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeLong::LONG ,TypeInt::POS), ciTypeArrayKlass::make(T_LONG), true, Offset::bottom); 638 TypeAryPtr::FLOATS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(Type::FLOAT ,TypeInt::POS), ciTypeArrayKlass::make(T_FLOAT), true, Offset::bottom); 639 TypeAryPtr::DOUBLES = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(Type::DOUBLE ,TypeInt::POS), ciTypeArrayKlass::make(T_DOUBLE), true, Offset::bottom); 640 641 // Nobody should ask _array_body_type[T_NARROWOOP]. Use NULL as assert. 642 TypeAryPtr::_array_body_type[T_NARROWOOP] = NULL; 643 TypeAryPtr::_array_body_type[T_OBJECT] = TypeAryPtr::OOPS; 644 TypeAryPtr::_array_body_type[T_ARRAY] = TypeAryPtr::OOPS; // arrays are stored in oop arrays 645 TypeAryPtr::_array_body_type[T_VALUETYPE] = TypeAryPtr::OOPS; 646 TypeAryPtr::_array_body_type[T_VALUETYPEPTR] = NULL; 647 TypeAryPtr::_array_body_type[T_BYTE] = TypeAryPtr::BYTES; 648 TypeAryPtr::_array_body_type[T_BOOLEAN] = TypeAryPtr::BYTES; // boolean[] is a byte array 649 TypeAryPtr::_array_body_type[T_SHORT] = TypeAryPtr::SHORTS; 650 TypeAryPtr::_array_body_type[T_CHAR] = TypeAryPtr::CHARS; 651 TypeAryPtr::_array_body_type[T_INT] = TypeAryPtr::INTS; 652 TypeAryPtr::_array_body_type[T_LONG] = TypeAryPtr::LONGS; 653 TypeAryPtr::_array_body_type[T_FLOAT] = TypeAryPtr::FLOATS; 654 TypeAryPtr::_array_body_type[T_DOUBLE] = TypeAryPtr::DOUBLES; 655 656 TypeKlassPtr::OBJECT = TypeKlassPtr::make(TypePtr::NotNull, current->env()->Object_klass(), Offset(0) ); 657 TypeKlassPtr::OBJECT_OR_NULL = TypeKlassPtr::make(TypePtr::BotPTR, current->env()->Object_klass(), Offset(0) ); 658 TypeKlassPtr::BOTTOM = (EnableValhalla || EnableMVT) ? TypeKlassPtr::make(TypePtr::BotPTR, NULL, Offset(0)) : TypeKlassPtr::OBJECT_OR_NULL; 659 TypeKlassPtr::VALUE = TypeKlassPtr::make(TypePtr::NotNull, current->env()->___Value_klass(), Offset(0)); 660 661 const Type **fi2c = TypeTuple::fields(2); 662 fi2c[TypeFunc::Parms+0] = TypeInstPtr::BOTTOM; // Method* 663 fi2c[TypeFunc::Parms+1] = TypeRawPtr::BOTTOM; // argument pointer 664 TypeTuple::START_I2C = TypeTuple::make(TypeFunc::Parms+2, fi2c); 665 666 const Type **intpair = TypeTuple::fields(2); 667 intpair[0] = TypeInt::INT; 668 intpair[1] = TypeInt::INT; 669 TypeTuple::INT_PAIR = TypeTuple::make(2, intpair); 670 671 const Type **longpair = TypeTuple::fields(2); 672 longpair[0] = TypeLong::LONG; 673 longpair[1] = TypeLong::LONG; 674 TypeTuple::LONG_PAIR = TypeTuple::make(2, longpair); 675 676 const Type **intccpair = TypeTuple::fields(2); 677 intccpair[0] = TypeInt::INT; 678 intccpair[1] = TypeInt::CC; 679 TypeTuple::INT_CC_PAIR = TypeTuple::make(2, intccpair); 680 681 const Type **longccpair = TypeTuple::fields(2); 682 longccpair[0] = TypeLong::LONG; 683 longccpair[1] = TypeInt::CC; 684 TypeTuple::LONG_CC_PAIR = TypeTuple::make(2, longccpair); 685 686 _const_basic_type[T_NARROWOOP] = TypeNarrowOop::BOTTOM; 687 _const_basic_type[T_NARROWKLASS] = Type::BOTTOM; 688 _const_basic_type[T_BOOLEAN] = TypeInt::BOOL; 689 _const_basic_type[T_CHAR] = TypeInt::CHAR; 690 _const_basic_type[T_BYTE] = TypeInt::BYTE; 691 _const_basic_type[T_SHORT] = TypeInt::SHORT; 692 _const_basic_type[T_INT] = TypeInt::INT; 693 _const_basic_type[T_LONG] = TypeLong::LONG; 694 _const_basic_type[T_FLOAT] = Type::FLOAT; 695 _const_basic_type[T_DOUBLE] = Type::DOUBLE; 696 _const_basic_type[T_OBJECT] = TypeInstPtr::BOTTOM; 697 _const_basic_type[T_VALUETYPEPTR]= TypeInstPtr::BOTTOM; 698 _const_basic_type[T_ARRAY] = TypeInstPtr::BOTTOM; // there is no separate bottom for arrays 699 _const_basic_type[T_VALUETYPE] = TypeInstPtr::BOTTOM; 700 _const_basic_type[T_VOID] = TypePtr::NULL_PTR; // reflection represents void this way 701 _const_basic_type[T_ADDRESS] = TypeRawPtr::BOTTOM; // both interpreter return addresses & random raw ptrs 702 _const_basic_type[T_CONFLICT] = Type::BOTTOM; // why not? 703 704 _zero_type[T_NARROWOOP] = TypeNarrowOop::NULL_PTR; 705 _zero_type[T_NARROWKLASS] = TypeNarrowKlass::NULL_PTR; 706 _zero_type[T_BOOLEAN] = TypeInt::ZERO; // false == 0 707 _zero_type[T_CHAR] = TypeInt::ZERO; // '\0' == 0 708 _zero_type[T_BYTE] = TypeInt::ZERO; // 0x00 == 0 709 _zero_type[T_SHORT] = TypeInt::ZERO; // 0x0000 == 0 710 _zero_type[T_INT] = TypeInt::ZERO; 711 _zero_type[T_LONG] = TypeLong::ZERO; 712 _zero_type[T_FLOAT] = TypeF::ZERO; 713 _zero_type[T_DOUBLE] = TypeD::ZERO; 714 _zero_type[T_OBJECT] = TypePtr::NULL_PTR; 715 _zero_type[T_VALUETYPEPTR]= TypePtr::NULL_PTR; 716 _zero_type[T_ARRAY] = TypePtr::NULL_PTR; // null array is null oop 717 _zero_type[T_VALUETYPE] = TypePtr::NULL_PTR; 718 _zero_type[T_ADDRESS] = TypePtr::NULL_PTR; // raw pointers use the same null 719 _zero_type[T_VOID] = Type::TOP; // the only void value is no value at all 720 721 // get_zero_type() should not happen for T_CONFLICT 722 _zero_type[T_CONFLICT]= NULL; 723 724 // Vector predefined types, it needs initialized _const_basic_type[]. 725 if (Matcher::vector_size_supported(T_BYTE,4)) { 726 TypeVect::VECTS = TypeVect::make(T_BYTE,4); 727 } 728 if (Matcher::vector_size_supported(T_FLOAT,2)) { 729 TypeVect::VECTD = TypeVect::make(T_FLOAT,2); 730 } 731 if (Matcher::vector_size_supported(T_FLOAT,4)) { 732 TypeVect::VECTX = TypeVect::make(T_FLOAT,4); 733 } 734 if (Matcher::vector_size_supported(T_FLOAT,8)) { 735 TypeVect::VECTY = TypeVect::make(T_FLOAT,8); 736 } 737 if (Matcher::vector_size_supported(T_FLOAT,16)) { | 587 fsc[0] = TypeInt::CC; 588 fsc[1] = Type::MEMORY; 589 TypeTuple::STORECONDITIONAL = TypeTuple::make(2, fsc); 590 591 TypeInstPtr::NOTNULL = TypeInstPtr::make(TypePtr::NotNull, current->env()->Object_klass()); 592 TypeInstPtr::BOTTOM = TypeInstPtr::make(TypePtr::BotPTR, current->env()->Object_klass()); 593 TypeInstPtr::MIRROR = TypeInstPtr::make(TypePtr::NotNull, current->env()->Class_klass()); 594 TypeInstPtr::MARK = TypeInstPtr::make(TypePtr::BotPTR, current->env()->Object_klass(), 595 false, 0, Offset(oopDesc::mark_offset_in_bytes())); 596 TypeInstPtr::KLASS = TypeInstPtr::make(TypePtr::BotPTR, current->env()->Object_klass(), 597 false, 0, Offset(oopDesc::klass_offset_in_bytes())); 598 TypeOopPtr::BOTTOM = TypeOopPtr::make(TypePtr::BotPTR, Offset::bottom, TypeOopPtr::InstanceBot); 599 600 TypeMetadataPtr::BOTTOM = TypeMetadataPtr::make(TypePtr::BotPTR, NULL, Offset::bottom); 601 602 TypeNarrowOop::NULL_PTR = TypeNarrowOop::make( TypePtr::NULL_PTR ); 603 TypeNarrowOop::BOTTOM = TypeNarrowOop::make( TypeInstPtr::BOTTOM ); 604 605 TypeNarrowKlass::NULL_PTR = TypeNarrowKlass::make( TypePtr::NULL_PTR ); 606 607 // TypeValueTypePtr::NOTNULL = (EnableValhalla || EnableMVT) ? TypeValueTypePtr::make(TypePtr::NotNull, current->env()->___Value_klass()->as_value_klass()) : NULL; 608 TypeValueTypePtr::NOTNULL = NULL; 609 610 mreg2type[Op_Node] = Type::BOTTOM; 611 mreg2type[Op_Set ] = 0; 612 mreg2type[Op_RegN] = TypeNarrowOop::BOTTOM; 613 mreg2type[Op_RegI] = TypeInt::INT; 614 mreg2type[Op_RegP] = TypePtr::BOTTOM; 615 mreg2type[Op_RegF] = Type::FLOAT; 616 mreg2type[Op_RegD] = Type::DOUBLE; 617 mreg2type[Op_RegL] = TypeLong::LONG; 618 mreg2type[Op_RegFlags] = TypeInt::CC; 619 620 TypeAryPtr::RANGE = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(Type::BOTTOM,TypeInt::POS), NULL /* current->env()->Object_klass() */, false, Offset(arrayOopDesc::length_offset_in_bytes())); 621 622 TypeAryPtr::NARROWOOPS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeNarrowOop::BOTTOM, TypeInt::POS), NULL /*ciArrayKlass::make(o)*/, false, Offset::bottom); 623 624 #ifdef _LP64 625 if (UseCompressedOops) { 626 assert(TypeAryPtr::NARROWOOPS->is_ptr_to_narrowoop(), "array of narrow oops must be ptr to narrow oop"); 627 TypeAryPtr::OOPS = TypeAryPtr::NARROWOOPS; 628 } else 629 #endif 630 { 631 // There is no shared klass for Object[]. See note in TypeAryPtr::klass(). 632 TypeAryPtr::OOPS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInstPtr::BOTTOM,TypeInt::POS), NULL /*ciArrayKlass::make(o)*/, false, Offset::bottom); 633 } 634 TypeAryPtr::BYTES = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::BYTE ,TypeInt::POS), ciTypeArrayKlass::make(T_BYTE), true, Offset::bottom); 635 TypeAryPtr::SHORTS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::SHORT ,TypeInt::POS), ciTypeArrayKlass::make(T_SHORT), true, Offset::bottom); 636 TypeAryPtr::CHARS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::CHAR ,TypeInt::POS), ciTypeArrayKlass::make(T_CHAR), true, Offset::bottom); 637 TypeAryPtr::INTS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeInt::INT ,TypeInt::POS), ciTypeArrayKlass::make(T_INT), true, Offset::bottom); 638 TypeAryPtr::LONGS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(TypeLong::LONG ,TypeInt::POS), ciTypeArrayKlass::make(T_LONG), true, Offset::bottom); 639 TypeAryPtr::FLOATS = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(Type::FLOAT ,TypeInt::POS), ciTypeArrayKlass::make(T_FLOAT), true, Offset::bottom); 640 TypeAryPtr::DOUBLES = TypeAryPtr::make(TypePtr::BotPTR, TypeAry::make(Type::DOUBLE ,TypeInt::POS), ciTypeArrayKlass::make(T_DOUBLE), true, Offset::bottom); 641 642 // Nobody should ask _array_body_type[T_NARROWOOP]. Use NULL as assert. 643 TypeAryPtr::_array_body_type[T_NARROWOOP] = NULL; 644 TypeAryPtr::_array_body_type[T_OBJECT] = TypeAryPtr::OOPS; 645 TypeAryPtr::_array_body_type[T_ARRAY] = TypeAryPtr::OOPS; // arrays are stored in oop arrays 646 TypeAryPtr::_array_body_type[T_VALUETYPEPTR] = NULL; 647 TypeAryPtr::_array_body_type[T_BYTE] = TypeAryPtr::BYTES; 648 TypeAryPtr::_array_body_type[T_BOOLEAN] = TypeAryPtr::BYTES; // boolean[] is a byte array 649 TypeAryPtr::_array_body_type[T_SHORT] = TypeAryPtr::SHORTS; 650 TypeAryPtr::_array_body_type[T_CHAR] = TypeAryPtr::CHARS; 651 TypeAryPtr::_array_body_type[T_INT] = TypeAryPtr::INTS; 652 TypeAryPtr::_array_body_type[T_LONG] = TypeAryPtr::LONGS; 653 TypeAryPtr::_array_body_type[T_FLOAT] = TypeAryPtr::FLOATS; 654 TypeAryPtr::_array_body_type[T_DOUBLE] = TypeAryPtr::DOUBLES; 655 656 TypeKlassPtr::OBJECT = TypeKlassPtr::make(TypePtr::NotNull, current->env()->Object_klass(), Offset(0) ); 657 TypeKlassPtr::OBJECT_OR_NULL = TypeKlassPtr::make(TypePtr::BotPTR, current->env()->Object_klass(), Offset(0) ); 658 TypeKlassPtr::BOTTOM = (EnableValhalla || EnableMVT) ? TypeKlassPtr::make(TypePtr::BotPTR, NULL, Offset(0)) : TypeKlassPtr::OBJECT_OR_NULL; 659 // TypeKlassPtr::VALUE = TypeKlassPtr::make(TypePtr::NotNull, current->env()->___Value_klass(), Offset(0)); 660 TypeKlassPtr::VALUE = NULL; 661 662 const Type **fi2c = TypeTuple::fields(2); 663 fi2c[TypeFunc::Parms+0] = TypeInstPtr::BOTTOM; // Method* 664 fi2c[TypeFunc::Parms+1] = TypeRawPtr::BOTTOM; // argument pointer 665 TypeTuple::START_I2C = TypeTuple::make(TypeFunc::Parms+2, fi2c); 666 667 const Type **intpair = TypeTuple::fields(2); 668 intpair[0] = TypeInt::INT; 669 intpair[1] = TypeInt::INT; 670 TypeTuple::INT_PAIR = TypeTuple::make(2, intpair); 671 672 const Type **longpair = TypeTuple::fields(2); 673 longpair[0] = TypeLong::LONG; 674 longpair[1] = TypeLong::LONG; 675 TypeTuple::LONG_PAIR = TypeTuple::make(2, longpair); 676 677 const Type **intccpair = TypeTuple::fields(2); 678 intccpair[0] = TypeInt::INT; 679 intccpair[1] = TypeInt::CC; 680 TypeTuple::INT_CC_PAIR = TypeTuple::make(2, intccpair); 681 682 const Type **longccpair = TypeTuple::fields(2); 683 longccpair[0] = TypeLong::LONG; 684 longccpair[1] = TypeInt::CC; 685 TypeTuple::LONG_CC_PAIR = TypeTuple::make(2, longccpair); 686 687 _const_basic_type[T_NARROWOOP] = TypeNarrowOop::BOTTOM; 688 _const_basic_type[T_NARROWKLASS] = Type::BOTTOM; 689 _const_basic_type[T_BOOLEAN] = TypeInt::BOOL; 690 _const_basic_type[T_CHAR] = TypeInt::CHAR; 691 _const_basic_type[T_BYTE] = TypeInt::BYTE; 692 _const_basic_type[T_SHORT] = TypeInt::SHORT; 693 _const_basic_type[T_INT] = TypeInt::INT; 694 _const_basic_type[T_LONG] = TypeLong::LONG; 695 _const_basic_type[T_FLOAT] = Type::FLOAT; 696 _const_basic_type[T_DOUBLE] = Type::DOUBLE; 697 _const_basic_type[T_OBJECT] = TypeInstPtr::BOTTOM; 698 _const_basic_type[T_VALUETYPEPTR]= TypeInstPtr::BOTTOM; 699 _const_basic_type[T_ARRAY] = TypeInstPtr::BOTTOM; // there is no separate bottom for arrays 700 _const_basic_type[T_VOID] = TypePtr::NULL_PTR; // reflection represents void this way 701 _const_basic_type[T_ADDRESS] = TypeRawPtr::BOTTOM; // both interpreter return addresses & random raw ptrs 702 _const_basic_type[T_CONFLICT] = Type::BOTTOM; // why not? 703 704 _zero_type[T_NARROWOOP] = TypeNarrowOop::NULL_PTR; 705 _zero_type[T_NARROWKLASS] = TypeNarrowKlass::NULL_PTR; 706 _zero_type[T_BOOLEAN] = TypeInt::ZERO; // false == 0 707 _zero_type[T_CHAR] = TypeInt::ZERO; // '\0' == 0 708 _zero_type[T_BYTE] = TypeInt::ZERO; // 0x00 == 0 709 _zero_type[T_SHORT] = TypeInt::ZERO; // 0x0000 == 0 710 _zero_type[T_INT] = TypeInt::ZERO; 711 _zero_type[T_LONG] = TypeLong::ZERO; 712 _zero_type[T_FLOAT] = TypeF::ZERO; 713 _zero_type[T_DOUBLE] = TypeD::ZERO; 714 _zero_type[T_OBJECT] = TypePtr::NULL_PTR; 715 _zero_type[T_VALUETYPEPTR]= TypePtr::NULL_PTR; 716 _zero_type[T_ARRAY] = TypePtr::NULL_PTR; // null array is null oop 717 _zero_type[T_ADDRESS] = TypePtr::NULL_PTR; // raw pointers use the same null 718 _zero_type[T_VOID] = Type::TOP; // the only void value is no value at all 719 720 // get_zero_type() should not happen for T_CONFLICT 721 _zero_type[T_CONFLICT]= NULL; 722 723 // Vector predefined types, it needs initialized _const_basic_type[]. 724 if (Matcher::vector_size_supported(T_BYTE,4)) { 725 TypeVect::VECTS = TypeVect::make(T_BYTE,4); 726 } 727 if (Matcher::vector_size_supported(T_FLOAT,2)) { 728 TypeVect::VECTD = TypeVect::make(T_FLOAT,2); 729 } 730 if (Matcher::vector_size_supported(T_FLOAT,4)) { 731 TypeVect::VECTX = TypeVect::make(T_FLOAT,4); 732 } 733 if (Matcher::vector_size_supported(T_FLOAT,8)) { 734 TypeVect::VECTY = TypeVect::make(T_FLOAT,8); 735 } 736 if (Matcher::vector_size_supported(T_FLOAT,16)) { |