vfp.hh (12032:d218c2fe9440) vfp.hh (12616:4b463b4dc098)
1/*
2 * Copyright (c) 2010-2013 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 876 unchanged lines hidden (view full) ---

885
886 FpCondCompRegOp(const char *mnem, ExtMachInst _machInst,
887 OpClass __opClass, IntRegIndex _op1, IntRegIndex _op2,
888 ConditionCode _condCode, uint8_t _defCc) :
889 FpOp(mnem, _machInst, __opClass),
890 op1(_op1), op2(_op2), condCode(_condCode), defCc(_defCc)
891 {}
892
1/*
2 * Copyright (c) 2010-2013 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 876 unchanged lines hidden (view full) ---

885
886 FpCondCompRegOp(const char *mnem, ExtMachInst _machInst,
887 OpClass __opClass, IntRegIndex _op1, IntRegIndex _op2,
888 ConditionCode _condCode, uint8_t _defCc) :
889 FpOp(mnem, _machInst, __opClass),
890 op1(_op1), op2(_op2), condCode(_condCode), defCc(_defCc)
891 {}
892
893 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
893 std::string generateDisassembly(
894 Addr pc, const SymbolTable *symtab) const override;
894};
895
896class FpCondSelOp : public FpOp
897{
898 protected:
899 IntRegIndex dest, op1, op2;
900 ConditionCode condCode;
901
902 FpCondSelOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
903 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
904 ConditionCode _condCode) :
905 FpOp(mnem, _machInst, __opClass),
906 dest(_dest), op1(_op1), op2(_op2), condCode(_condCode)
907 {}
908
895};
896
897class FpCondSelOp : public FpOp
898{
899 protected:
900 IntRegIndex dest, op1, op2;
901 ConditionCode condCode;
902
903 FpCondSelOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
904 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
905 ConditionCode _condCode) :
906 FpOp(mnem, _machInst, __opClass),
907 dest(_dest), op1(_op1), op2(_op2), condCode(_condCode)
908 {}
909
909 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
910 std::string generateDisassembly(
911 Addr pc, const SymbolTable *symtab) const override;
910};
911
912class FpRegRegOp : public FpOp
913{
914 protected:
915 IntRegIndex dest;
916 IntRegIndex op1;
917
918 FpRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
919 IntRegIndex _dest, IntRegIndex _op1,
920 VfpMicroMode mode = VfpNotAMicroop) :
921 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1)
922 {
923 setVfpMicroFlags(mode, flags);
924 }
925
912};
913
914class FpRegRegOp : public FpOp
915{
916 protected:
917 IntRegIndex dest;
918 IntRegIndex op1;
919
920 FpRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
921 IntRegIndex _dest, IntRegIndex _op1,
922 VfpMicroMode mode = VfpNotAMicroop) :
923 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1)
924 {
925 setVfpMicroFlags(mode, flags);
926 }
927
926 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
928 std::string generateDisassembly(
929 Addr pc, const SymbolTable *symtab) const override;
927};
928
929class FpRegImmOp : public FpOp
930{
931 protected:
932 IntRegIndex dest;
933 uint64_t imm;
934
935 FpRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
936 IntRegIndex _dest, uint64_t _imm,
937 VfpMicroMode mode = VfpNotAMicroop) :
938 FpOp(mnem, _machInst, __opClass), dest(_dest), imm(_imm)
939 {
940 setVfpMicroFlags(mode, flags);
941 }
942
930};
931
932class FpRegImmOp : public FpOp
933{
934 protected:
935 IntRegIndex dest;
936 uint64_t imm;
937
938 FpRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
939 IntRegIndex _dest, uint64_t _imm,
940 VfpMicroMode mode = VfpNotAMicroop) :
941 FpOp(mnem, _machInst, __opClass), dest(_dest), imm(_imm)
942 {
943 setVfpMicroFlags(mode, flags);
944 }
945
943 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
946 std::string generateDisassembly(
947 Addr pc, const SymbolTable *symtab) const override;
944};
945
946class FpRegRegImmOp : public FpOp
947{
948 protected:
949 IntRegIndex dest;
950 IntRegIndex op1;
951 uint64_t imm;
952
953 FpRegRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
954 IntRegIndex _dest, IntRegIndex _op1,
955 uint64_t _imm, VfpMicroMode mode = VfpNotAMicroop) :
956 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), imm(_imm)
957 {
958 setVfpMicroFlags(mode, flags);
959 }
960
948};
949
950class FpRegRegImmOp : public FpOp
951{
952 protected:
953 IntRegIndex dest;
954 IntRegIndex op1;
955 uint64_t imm;
956
957 FpRegRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
958 IntRegIndex _dest, IntRegIndex _op1,
959 uint64_t _imm, VfpMicroMode mode = VfpNotAMicroop) :
960 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), imm(_imm)
961 {
962 setVfpMicroFlags(mode, flags);
963 }
964
961 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
965 std::string generateDisassembly(
966 Addr pc, const SymbolTable *symtab) const override;
962};
963
964class FpRegRegRegOp : public FpOp
965{
966 protected:
967 IntRegIndex dest;
968 IntRegIndex op1;
969 IntRegIndex op2;
970
971 FpRegRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
972 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
973 VfpMicroMode mode = VfpNotAMicroop) :
974 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), op2(_op2)
975 {
976 setVfpMicroFlags(mode, flags);
977 }
978
967};
968
969class FpRegRegRegOp : public FpOp
970{
971 protected:
972 IntRegIndex dest;
973 IntRegIndex op1;
974 IntRegIndex op2;
975
976 FpRegRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
977 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
978 VfpMicroMode mode = VfpNotAMicroop) :
979 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), op2(_op2)
980 {
981 setVfpMicroFlags(mode, flags);
982 }
983
979 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
984 std::string generateDisassembly(
985 Addr pc, const SymbolTable *symtab) const override;
980};
981
982class FpRegRegRegCondOp : public FpOp
983{
984 protected:
985 IntRegIndex dest;
986 IntRegIndex op1;
987 IntRegIndex op2;

--- 4 unchanged lines hidden (view full) ---

992 IntRegIndex _op2, ConditionCode _cond,
993 VfpMicroMode mode = VfpNotAMicroop) :
994 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), op2(_op2),
995 cond(_cond)
996 {
997 setVfpMicroFlags(mode, flags);
998 }
999
986};
987
988class FpRegRegRegCondOp : public FpOp
989{
990 protected:
991 IntRegIndex dest;
992 IntRegIndex op1;
993 IntRegIndex op2;

--- 4 unchanged lines hidden (view full) ---

998 IntRegIndex _op2, ConditionCode _cond,
999 VfpMicroMode mode = VfpNotAMicroop) :
1000 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), op2(_op2),
1001 cond(_cond)
1002 {
1003 setVfpMicroFlags(mode, flags);
1004 }
1005
1000 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
1006 std::string generateDisassembly(
1007 Addr pc, const SymbolTable *symtab) const override;
1001};
1002
1003class FpRegRegRegRegOp : public FpOp
1004{
1005 protected:
1006 IntRegIndex dest;
1007 IntRegIndex op1;
1008 IntRegIndex op2;
1009 IntRegIndex op3;
1010
1011 FpRegRegRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
1012 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
1013 IntRegIndex _op3, VfpMicroMode mode = VfpNotAMicroop) :
1014 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), op2(_op2),
1015 op3(_op3)
1016 {
1017 setVfpMicroFlags(mode, flags);
1018 }
1019
1008};
1009
1010class FpRegRegRegRegOp : public FpOp
1011{
1012 protected:
1013 IntRegIndex dest;
1014 IntRegIndex op1;
1015 IntRegIndex op2;
1016 IntRegIndex op3;
1017
1018 FpRegRegRegRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
1019 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
1020 IntRegIndex _op3, VfpMicroMode mode = VfpNotAMicroop) :
1021 FpOp(mnem, _machInst, __opClass), dest(_dest), op1(_op1), op2(_op2),
1022 op3(_op3)
1023 {
1024 setVfpMicroFlags(mode, flags);
1025 }
1026
1020 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
1027 std::string generateDisassembly(
1028 Addr pc, const SymbolTable *symtab) const override;
1021};
1022
1023class FpRegRegRegImmOp : public FpOp
1024{
1025 protected:
1026 IntRegIndex dest;
1027 IntRegIndex op1;
1028 IntRegIndex op2;

--- 4 unchanged lines hidden (view full) ---

1033 IntRegIndex _op1, IntRegIndex _op2,
1034 uint64_t _imm, VfpMicroMode mode = VfpNotAMicroop) :
1035 FpOp(mnem, _machInst, __opClass),
1036 dest(_dest), op1(_op1), op2(_op2), imm(_imm)
1037 {
1038 setVfpMicroFlags(mode, flags);
1039 }
1040
1029};
1030
1031class FpRegRegRegImmOp : public FpOp
1032{
1033 protected:
1034 IntRegIndex dest;
1035 IntRegIndex op1;
1036 IntRegIndex op2;

--- 4 unchanged lines hidden (view full) ---

1041 IntRegIndex _op1, IntRegIndex _op2,
1042 uint64_t _imm, VfpMicroMode mode = VfpNotAMicroop) :
1043 FpOp(mnem, _machInst, __opClass),
1044 dest(_dest), op1(_op1), op2(_op2), imm(_imm)
1045 {
1046 setVfpMicroFlags(mode, flags);
1047 }
1048
1041 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
1049 std::string generateDisassembly(
1050 Addr pc, const SymbolTable *symtab) const override;
1042};
1043
1044}
1045
1046#endif //__ARCH_ARM_INSTS_VFP_HH__
1051};
1052
1053}
1054
1055#endif //__ARCH_ARM_INSTS_VFP_HH__