changeset 4482:7903b6c28f9c

Add hsdis command to mx
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 07 Feb 2012 19:03:51 +0100
parents 600ec4e44b2e
children 58ecb156a3e8
files graal/com.oracle.max.graal.tests/src/com/oracle/max/graal/compiler/tests/DegeneratedLoopsTest.java mx/commands.py mx/sanitycheck.py mxtool/mx.py
diffstat 4 files changed, 26 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.tests/src/com/oracle/max/graal/compiler/tests/DegeneratedLoopsTest.java	Tue Feb 07 15:59:54 2012 +0100
+++ b/graal/com.oracle.max.graal.tests/src/com/oracle/max/graal/compiler/tests/DegeneratedLoopsTest.java	Tue Feb 07 19:03:51 2012 +0100
@@ -52,9 +52,6 @@
     }
 
     private static class UnresolvedException extends RuntimeException {
-        /**
-         *
-         */
         private static final long serialVersionUID = 5215434338750728440L;
 
         static {
--- a/mx/commands.py	Tue Feb 07 15:59:54 2012 +0100
+++ b/mx/commands.py	Tue Feb 07 19:03:51 2012 +0100
@@ -657,12 +657,26 @@
     vmArgs = [a for a in args if a[0] != '@']
     sanitycheck.getSPECjvm2008(benchArgs).bench('graal', opts=vmArgs)
     
+def hsdis(args):
+    """Installs the hsdis library
+
+    This is needed to support HotSpot's assembly dumping features.
+    By default it installs the Intel syntax version, use the 'att' argument to install AT&T syntax."""
+    flavor = 'intel'
+    if 'att' in args:
+        flavor = 'att'
+    build = _vmbuild if _vmSourcesAvailable else 'product'
+    lib = mx.lib_suffix('hsdis-amd64')
+    path = join(_jdk(build), 'jre', 'lib', 'amd64', lib)
+    mx.download(path, ['http://lafo.ssw.uni-linz.ac.at/hsdis/' + flavor + "/" + lib])
+    
 def mx_init():
     _vmbuild = 'product'
     commands = {
         'build': [build, '[-options]'],
         'clean': [clean, ''],
         'copyrightcheck': [copyrightcheck, ''],
+        'hsdis': [hsdis, '[att]'],
         'dacapo': [dacapo, '[[n] benchmark] [VM options|@DaCapo options]'],
         'scaladacapo': [scaladacapo, '[[n] benchmark] [VM options|@Scala DaCapo options]'],
         'specjvm2008': [specjvm2008, '[VM options|@specjvm2008 options]'],
--- a/mx/sanitycheck.py	Tue Feb 07 15:59:54 2012 +0100
+++ b/mx/sanitycheck.py	Tue Feb 07 19:03:51 2012 +0100
@@ -39,7 +39,7 @@
     'luindex':    [0, 0,  5, 10, 10],
     'lusearch':   [0, 4,  5,  5,  8],
     'pmd':        [0, 0,  5, 10, 13],
-    'sunflow':    [2, 0,  5, 10, 15],
+    'sunflow':    [0, 2,  5, 10, 15],
     'tomcat':     [0, 0,  5, 10, 15],
     'tradebeans': [0, 0,  5, 10, 13],
     'tradesoap':  [2, 4,  5, 10, 15],
--- a/mxtool/mx.py	Tue Feb 07 15:59:54 2012 +0100
+++ b/mxtool/mx.py	Tue Feb 07 19:03:51 2012 +0100
@@ -648,6 +648,17 @@
         return name + '.exe'
     return name
 
+def lib_suffix(name):
+    """
+    Gets the platform specific suffix for a library
+    """
+    os = get_os();
+    if os == 'windows':
+        return name + '.dll'
+    if os == 'linux':
+        return name + '.so'
+    return name
+
 """
 A JavaConfig object encapsulates info on how Java commands are run.
 """