src/share/vm/opto/superword.cpp

changeset 1940
49fac4acd688
parent 1907
c18cbe5936b8
child 1976
6027dddc26c6
     1.1 --- a/src/share/vm/opto/superword.cpp	Fri Jun 04 11:18:04 2010 -0700
     1.2 +++ b/src/share/vm/opto/superword.cpp	Mon Jun 07 14:17:01 2010 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2007, 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 @@ -514,6 +514,13 @@
    1.11  bool SuperWord::are_adjacent_refs(Node* s1, Node* s2) {
    1.12    if (!s1->is_Mem() || !s2->is_Mem()) return false;
    1.13    if (!in_bb(s1)    || !in_bb(s2))    return false;
    1.14 +
    1.15 +  // Do not use superword for non-primitives
    1.16 +  if (!is_java_primitive(s1->as_Mem()->memory_type()) ||
    1.17 +      !is_java_primitive(s2->as_Mem()->memory_type())) {
    1.18 +    return false;
    1.19 +  }
    1.20 +
    1.21    // FIXME - co_locate_pack fails on Stores in different mem-slices, so
    1.22    // only pack memops that are in the same alias set until that's fixed.
    1.23    if (_phase->C->get_alias_index(s1->as_Mem()->adr_type()) !=

mercurial