comparison src/cpu/ppc/vm/vm_version_ppc.hpp @ 17807:71a71b0bc844

8037915: PPC64/AIX: Several smaller fixes Reviewed-by: kvn
author goetz
date Thu, 20 Mar 2014 11:03:06 +0100
parents ec28f9c041ff
children
comparison
equal deleted inserted replaced
17806:9200402b42d5 17807:71a71b0bc844
1 /* 1 /*
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3 * Copyright 2012, 2013 SAP AG. All rights reserved. 3 * Copyright 2012, 2014 SAP AG. All rights reserved.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * 5 *
6 * This code is free software; you can redistribute it and/or modify it 6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as 7 * under the terms of the GNU General Public License version 2 only, as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
31 31
32 class VM_Version: public Abstract_VM_Version { 32 class VM_Version: public Abstract_VM_Version {
33 protected: 33 protected:
34 enum Feature_Flag { 34 enum Feature_Flag {
35 fsqrt, 35 fsqrt,
36 fsqrts,
36 isel, 37 isel,
37 lxarxeh, 38 lxarxeh,
38 cmpb, 39 cmpb,
39 popcntb, 40 popcntb,
40 popcntw, 41 popcntw,
44 num_features // last entry to count features 45 num_features // last entry to count features
45 }; 46 };
46 enum Feature_Flag_Set { 47 enum Feature_Flag_Set {
47 unknown_m = 0, 48 unknown_m = 0,
48 fsqrt_m = (1 << fsqrt ), 49 fsqrt_m = (1 << fsqrt ),
50 fsqrts_m = (1 << fsqrts ),
49 isel_m = (1 << isel ), 51 isel_m = (1 << isel ),
50 lxarxeh_m = (1 << lxarxeh), 52 lxarxeh_m = (1 << lxarxeh),
51 cmpb_m = (1 << cmpb ), 53 cmpb_m = (1 << cmpb ),
52 popcntb_m = (1 << popcntb), 54 popcntb_m = (1 << popcntb),
53 popcntw_m = (1 << popcntw), 55 popcntw_m = (1 << popcntw),
70 static void initialize(); 72 static void initialize();
71 73
72 static bool is_determine_features_test_running() { return _is_determine_features_test_running; } 74 static bool is_determine_features_test_running() { return _is_determine_features_test_running; }
73 // CPU instruction support 75 // CPU instruction support
74 static bool has_fsqrt() { return (_features & fsqrt_m) != 0; } 76 static bool has_fsqrt() { return (_features & fsqrt_m) != 0; }
77 static bool has_fsqrts() { return (_features & fsqrts_m) != 0; }
75 static bool has_isel() { return (_features & isel_m) != 0; } 78 static bool has_isel() { return (_features & isel_m) != 0; }
76 static bool has_lxarxeh() { return (_features & lxarxeh_m) !=0; } 79 static bool has_lxarxeh() { return (_features & lxarxeh_m) !=0; }
77 static bool has_cmpb() { return (_features & cmpb_m) != 0; } 80 static bool has_cmpb() { return (_features & cmpb_m) != 0; }
78 static bool has_popcntb() { return (_features & popcntb_m) != 0; } 81 static bool has_popcntb() { return (_features & popcntb_m) != 0; }
79 static bool has_popcntw() { return (_features & popcntw_m) != 0; } 82 static bool has_popcntw() { return (_features & popcntw_m) != 0; }