1.1 --- a/src/cpu/sparc/vm/vm_version_sparc.hpp Sat Oct 30 13:08:23 2010 -0700 1.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp Tue Nov 02 09:00:37 2010 -0700 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -33,7 +33,9 @@ 1.11 v9_instructions = 5, 1.12 vis1_instructions = 6, 1.13 vis2_instructions = 7, 1.14 - sun4v_instructions = 8 1.15 + sun4v_instructions = 8, 1.16 + blk_init_instructions = 9, 1.17 + fmaf_instructions = 10 1.18 }; 1.19 1.20 enum Feature_Flag_Set { 1.21 @@ -49,6 +51,8 @@ 1.22 vis1_instructions_m = 1 << vis1_instructions, 1.23 vis2_instructions_m = 1 << vis2_instructions, 1.24 sun4v_m = 1 << sun4v_instructions, 1.25 + blk_init_instructions_m = 1 << blk_init_instructions, 1.26 + fmaf_instructions_m = 1 << fmaf_instructions, 1.27 1.28 generic_v8_m = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m, 1.29 generic_v9_m = generic_v8_m | v9_instructions_m, 1.30 @@ -67,6 +71,7 @@ 1.31 static int platform_features(int features); 1.32 1.33 static bool is_niagara1(int features) { return (features & sun4v_m) != 0; } 1.34 + static bool is_sparc64(int features) { return (features & fmaf_instructions_m) != 0; } 1.35 1.36 static int maximum_niagara1_processor_count() { return 32; } 1.37 // Returns true if the platform is in the niagara line and 1.38 @@ -86,6 +91,7 @@ 1.39 static bool has_hardware_popc() { return (_features & hardware_popc_m) != 0; } 1.40 static bool has_vis1() { return (_features & vis1_instructions_m) != 0; } 1.41 static bool has_vis2() { return (_features & vis2_instructions_m) != 0; } 1.42 + static bool has_blk_init() { return (_features & blk_init_instructions_m) != 0; } 1.43 1.44 static bool supports_compare_and_exchange() 1.45 { return has_v9(); } 1.46 @@ -93,8 +99,10 @@ 1.47 static bool is_ultra3() { return (_features & ultra3_m) == ultra3_m; } 1.48 static bool is_sun4v() { return (_features & sun4v_m) != 0; } 1.49 static bool is_niagara1() { return is_niagara1(_features); } 1.50 + static bool is_sparc64() { return is_sparc64(_features); } 1.51 1.52 static bool has_fast_fxtof() { return has_v9() && !is_ultra3(); } 1.53 + static bool has_fast_idiv() { return is_niagara1_plus() || is_sparc64(); } 1.54 1.55 static const char* cpu_features() { return _features_str; } 1.56