Author: dgilmore
Date: 2011-01-20 13:34:10 -0500 (Thu, 20 Jan 2011)
New Revision: 3466

Modified:
   trunk/osprey/be/com/emulate.cxx
   trunk/osprey/common/com/intrn_entry.def
   trunk/osprey/kg++fe/wfe_expr.cxx
   trunk/osprey/wgen/wgen_expr.cxx
Log:
Fix to bug 628 (fix ported from PSC 3.2 compiler).

Modified: trunk/osprey/be/com/emulate.cxx
===================================================================
--- trunk/osprey/be/com/emulate.cxx     2011-01-20 03:55:03 UTC (rev 3465)
+++ trunk/osprey/be/com/emulate.cxx     2011-01-20 18:34:10 UTC (rev 3466)
@@ -3,10 +3,14 @@
  */
 
 /*
- *  Copyright (C) 2006. QLogic Corporation. All Rights Reserved.
+ * Copyright (C) 2007, 2008 PathScale, LLC.  All Rights Reserved.
  */
 
 /*
+ *  Copyright (C) 2006, 2007. QLogic Corporation. All Rights Reserved.
+ */
+
+/*
  * Copyright 2003, 2004, 2005, 2006 PathScale, Inc.  All Rights Reserved.
  */
 
@@ -4716,7 +4720,7 @@
        st = Gen_Intrinsic_Function(ty, "__memcpy_pathscale_opteron");
     }
 #endif
-    else if (WN_intrinsic(tree) == INTRN_I4POPCNT &&
+    else if (WN_intrinsic(tree) == INTRN_POPCOUNT &&
               MTYPE_byte_size(WN_rtype(WN_kid0(tree))) <= 4 &&
                Is_Target_32bit()) {
       st = Gen_Intrinsic_Function(ty, "__popcountsi2");
@@ -4732,7 +4736,7 @@
     }
 #elif defined(TARG_MIPS) && !defined(TARG_SL)
 
-    if (WN_intrinsic(tree) == INTRN_I4POPCNT &&
+    if (WN_intrinsic(tree) == INTRN_POPCOUNT &&
        MTYPE_byte_size(WN_rtype(WN_kid0(tree))) <= 4) {
       // Zero extend U4 to U8
       // args[0] = WN_Cvt(MTYPE_U4, MTYPE_U8, args[0]);
@@ -5023,6 +5027,7 @@
   case INTRN_I2POPCNT:
   case INTRN_I4POPCNT:
   case INTRN_I8POPCNT:
+  case INTRN_POPCOUNT:
     {
       INT bitsize = MTYPE_size_reg(WN_rtype(by_value(tree, 0)));
       switch (id) {

Modified: trunk/osprey/common/com/intrn_entry.def
===================================================================
--- trunk/osprey/common/com/intrn_entry.def     2011-01-20 03:55:03 UTC (rev 
3465)
+++ trunk/osprey/common/com/intrn_entry.def     2011-01-20 18:34:10 UTC (rev 
3466)
@@ -1,4 +1,7 @@
 /*
+ * Copyright (C) 2009-2010 Advanced Micro Devices, Inc.  All Rights Reserved.
+ */
+/*
  *  Copyright (C) 2007. QLogic Corporation. All Rights Reserved.
  */
 
@@ -2819,6 +2822,10 @@
 DEF_INTRN_ENTRY(INTRN_FQUNORDERED, "FQUNORDERED", BYVAL, PURE, NO_SIDEEFFECTS, 
                 DOES_RETURN, NOT_ACTUAL, NOT_CGINTRINSIC, NOT_SLAVE, 
                 IRETURN_I4, NULL, "FQUNORDERED", "unorderedl")
+/* POPCOUNT */
+DEF_INTRN_ENTRY(INTRN_POPCOUNT, "POPCOUNT", BYVAL, PURE, NO_SIDEEFFECTS, 
+                DOES_RETURN, NOT_ACTUAL, NOT_CGINTRINSIC, NOT_SLAVE, 
+                IRETURN_I4, NULL, "POPCOUNT", "__popcount")
 /* I1POPCNT */
 DEF_INTRN_ENTRY(INTRN_I1POPCNT, "I1POPCNT", BYVAL, PURE, NO_SIDEEFFECTS, 
                 DOES_RETURN, NOT_ACTUAL, NOT_CGINTRINSIC, NOT_SLAVE, 

Modified: trunk/osprey/kg++fe/wfe_expr.cxx
===================================================================
--- trunk/osprey/kg++fe/wfe_expr.cxx    2011-01-20 03:55:03 UTC (rev 3465)
+++ trunk/osprey/kg++fe/wfe_expr.cxx    2011-01-20 18:34:10 UTC (rev 3466)
@@ -3,9 +3,13 @@
  */
 
 /*
- * Copyright (C) 2006. QLogic Corporation. All Rights Reserved.
+ * Copyright (C) 2007, 2008 Pathscale, LLC.  All Rights Reserved.
  */
 
+/*
+ * Copyright (C) 2006, 2007. QLogic Corporation. All Rights Reserved.
+ */
+
 /* 
    Copyright 2003, 2004, 2005, 2006 PathScale, Inc.  All Rights Reserved.
    File modified October 9, 2003 by PathScale, Inc. to update Open64 C/C++ 
@@ -6606,15 +6610,9 @@
                break;
        
              case BUILT_IN_POPCOUNT:
-                iopc = INTRN_I4POPCNT;
-                intrinsic_op = TRUE;
-                break;
              case BUILT_IN_POPCOUNTL:
-                iopc = Is_Target_32bit() ? INTRN_I4POPCNT : INTRN_I8POPCNT;
-                intrinsic_op = TRUE;
-                break;
              case BUILT_IN_POPCOUNTLL:
-               iopc = INTRN_I8POPCNT;
+               iopc = INTRN_POPCOUNT;
                intrinsic_op = TRUE;
                break;
        

Modified: trunk/osprey/wgen/wgen_expr.cxx
===================================================================
--- trunk/osprey/wgen/wgen_expr.cxx     2011-01-20 03:55:03 UTC (rev 3465)
+++ trunk/osprey/wgen/wgen_expr.cxx     2011-01-20 18:34:10 UTC (rev 3466)
@@ -3,7 +3,7 @@
  */
 
 /*
- * Copyright (C) 2007 PathScale, LLC.  All Rights Reserved.
+ * Copyright (C) 2007, 2008 PathScale, LLC.  All Rights Reserved.
  */
 
 /*
@@ -9069,15 +9069,9 @@
                break;
                
              case GSBI_BUILT_IN_POPCOUNT:
-               iopc = INTRN_I4POPCNT;
-               intrinsic_op = TRUE;
-               break;
              case GSBI_BUILT_IN_POPCOUNTL:
-               iopc = Is_Target_32bit() ? INTRN_I4POPCNT : INTRN_I8POPCNT;
-               intrinsic_op = TRUE;
-               break;
              case GSBI_BUILT_IN_POPCOUNTLL:
-               iopc = INTRN_I8POPCNT;
+               iopc = INTRN_POPCOUNT;
                intrinsic_op = TRUE;
                break;
        


------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to