comparison src/cpu/sparc/vm/vm_version_sparc.hpp @ 6269:8cb110fd7627

7188227: VM should recognize M-series SPARC Summary: Check kstat data for SPARC-M. Reviewed-by: roland
author kvn
date Wed, 01 Aug 2012 14:10:32 -0700
parents baf763f388e6
children 3a327d0b8586
comparison
equal deleted inserted replaced
6268:6c5b7a6becc8 6269:8cb110fd7627
42 sun4v_instructions = 8, 42 sun4v_instructions = 8,
43 blk_init_instructions = 9, 43 blk_init_instructions = 9,
44 fmaf_instructions = 10, 44 fmaf_instructions = 10,
45 fmau_instructions = 11, 45 fmau_instructions = 11,
46 vis3_instructions = 12, 46 vis3_instructions = 12,
47 sparc64_family = 13, 47 cbcond_instructions = 13,
48 T_family = 14, 48 sparc64_family = 14,
49 T1_model = 15, 49 M_family = 15,
50 cbcond_instructions = 16 50 T_family = 16,
51 T1_model = 17
51 }; 52 };
52 53
53 enum Feature_Flag_Set { 54 enum Feature_Flag_Set {
54 unknown_m = 0, 55 unknown_m = 0,
55 all_features_m = -1, 56 all_features_m = -1,
65 sun4v_m = 1 << sun4v_instructions, 66 sun4v_m = 1 << sun4v_instructions,
66 blk_init_instructions_m = 1 << blk_init_instructions, 67 blk_init_instructions_m = 1 << blk_init_instructions,
67 fmaf_instructions_m = 1 << fmaf_instructions, 68 fmaf_instructions_m = 1 << fmaf_instructions,
68 fmau_instructions_m = 1 << fmau_instructions, 69 fmau_instructions_m = 1 << fmau_instructions,
69 vis3_instructions_m = 1 << vis3_instructions, 70 vis3_instructions_m = 1 << vis3_instructions,
71 cbcond_instructions_m = 1 << cbcond_instructions,
70 sparc64_family_m = 1 << sparc64_family, 72 sparc64_family_m = 1 << sparc64_family,
73 M_family_m = 1 << M_family,
71 T_family_m = 1 << T_family, 74 T_family_m = 1 << T_family,
72 T1_model_m = 1 << T1_model, 75 T1_model_m = 1 << T1_model,
73 cbcond_instructions_m = 1 << cbcond_instructions,
74 76
75 generic_v8_m = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m, 77 generic_v8_m = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m,
76 generic_v9_m = generic_v8_m | v9_instructions_m, 78 generic_v9_m = generic_v8_m | v9_instructions_m,
77 ultra3_m = generic_v9_m | vis1_instructions_m | vis2_instructions_m, 79 ultra3_m = generic_v9_m | vis1_instructions_m | vis2_instructions_m,
78 80
87 static void print_features(); 89 static void print_features();
88 static int determine_features(); 90 static int determine_features();
89 static int platform_features(int features); 91 static int platform_features(int features);
90 92
91 // Returns true if the platform is in the niagara line (T series) 93 // Returns true if the platform is in the niagara line (T series)
94 static bool is_M_family(int features) { return (features & M_family_m) != 0; }
92 static bool is_T_family(int features) { return (features & T_family_m) != 0; } 95 static bool is_T_family(int features) { return (features & T_family_m) != 0; }
93 static bool is_niagara() { return is_T_family(_features); } 96 static bool is_niagara() { return is_T_family(_features); }
94 DEBUG_ONLY( static bool is_niagara(int features) { return (features & sun4v_m) != 0; } ) 97 DEBUG_ONLY( static bool is_niagara(int features) { return (features & sun4v_m) != 0; } )
95 98
96 // Returns true if it is niagara1 (T1). 99 // Returns true if it is niagara1 (T1).