Reviewers: Dmitry Lomov (chromium),

Message:
As discussed.

Description:
Inlined optimized runtime functions: expose Runtime versions for direct testing,
skip Hydrogen versions

Please review this at https://codereview.chromium.org/302703004/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+23, -17 lines):
  M src/runtime.h
  M src/runtime.cc
  M src/serialize.cc
  M test/mjsunit/runtime-gen/arraybuffergetbytelength.js
  M test/mjsunit/runtime-gen/arraybufferviewgetbytelength.js
  M test/mjsunit/runtime-gen/arraybufferviewgetbyteoffset.js
  M test/mjsunit/runtime-gen/constructdouble.js
  M test/mjsunit/runtime-gen/dataviewinitialize.js
  M test/mjsunit/runtime-gen/debugcallbacksupportsstepping.js
  M test/mjsunit/runtime-gen/doublehi.js
  M test/mjsunit/runtime-gen/doublelo.js
  M test/mjsunit/runtime-gen/mathlogrt.js
  M test/mjsunit/runtime-gen/mathsqrtrt.js
  M test/mjsunit/runtime-gen/maxsmi.js
  M test/mjsunit/runtime-gen/typedarraygetlength.js
  M test/mjsunit/runtime-gen/typedarrayinitialize.js
  M test/mjsunit/runtime-gen/typedarraymaxsizeinheap.js
  M tools/generate-runtime-tests.py


Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index 1aaa3cd92a70b10d8521ffde464cec500aecd393..c145ac80c8d1cfa177a1686acd91fc2a858d6767 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -14703,7 +14703,8 @@ RUNTIME_FUNCTION(Runtime_ListNatives) {
   int entry_count = 0
       RUNTIME_FUNCTION_LIST(COUNT_ENTRY)
       RUNTIME_HIDDEN_FUNCTION_LIST(COUNT_ENTRY)
-      INLINE_FUNCTION_LIST(COUNT_ENTRY);
+      INLINE_FUNCTION_LIST(COUNT_ENTRY)
+      INLINE_OPTIMIZED_FUNCTION_LIST(COUNT_ENTRY);
 #undef COUNT_ENTRY
   Factory* factory = isolate->factory();
   Handle<FixedArray> elements = factory->NewFixedArray(entry_count);
@@ -14727,6 +14728,7 @@ RUNTIME_FUNCTION(Runtime_ListNatives) {
   }
   inline_runtime_functions = false;
   RUNTIME_FUNCTION_LIST(ADD_ENTRY)
+  INLINE_OPTIMIZED_FUNCTION_LIST(ADD_ENTRY)
   // Calling hidden runtime functions should just throw.
   RUNTIME_HIDDEN_FUNCTION_LIST(ADD_ENTRY)
   inline_runtime_functions = true;
@@ -15132,6 +15134,7 @@ RUNTIME_FUNCTION(Runtime_MaxSmi) {

 static const Runtime::Function kIntrinsicFunctions[] = {
   RUNTIME_FUNCTION_LIST(F)
+  INLINE_OPTIMIZED_FUNCTION_LIST(F)
   RUNTIME_HIDDEN_FUNCTION_LIST(FH)
   INLINE_FUNCTION_LIST(I)
   INLINE_OPTIMIZED_FUNCTION_LIST(IO)
Index: src/runtime.h
diff --git a/src/runtime.h b/src/runtime.h
index 566a5ebeabef50f7c30c3f090752f0e2a8bc50b4..b0cc564ba112eabe715126e24daaf594351374e3 100644
--- a/src/runtime.h
+++ b/src/runtime.h
@@ -662,6 +662,8 @@ namespace internal {
 // INLINE_OPTIMIZED_FUNCTION_LIST defines all inlined functions accessed
 // with a native call of the form %_name from within JS code that also have
// a corresponding runtime function, that is called from non-optimized code.
+// For the benefit of (fuzz) tests, the runtime version can also be called
+// directly as %name (i.e. without the leading underscore).
// Entries have the form F(name, number of arguments, number of return values).
 #define INLINE_OPTIMIZED_FUNCTION_LIST(F) \
/* Typed Arrays */ \
@@ -734,6 +736,7 @@ class Runtime : public AllStatic {
   enum FunctionId {
 #define F(name, nargs, ressize) k##name,
     RUNTIME_FUNCTION_LIST(F)
+    INLINE_OPTIMIZED_FUNCTION_LIST(F)
 #undef F
 #define F(name, nargs, ressize) kHidden##name,
     RUNTIME_HIDDEN_FUNCTION_LIST(F)
Index: src/serialize.cc
diff --git a/src/serialize.cc b/src/serialize.cc
index c2706f62ffc1ba8d4f20b0b9ba7dec84ca1ff0db..d63913417131d82ccddfea77702dba9b6b9320b8 100644
--- a/src/serialize.cc
+++ b/src/serialize.cc
@@ -150,6 +150,7 @@ void ExternalReferenceTable::PopulateTable(Isolate* isolate) {
     "Runtime::" #name },

   RUNTIME_FUNCTION_LIST(RUNTIME_ENTRY)
+  INLINE_OPTIMIZED_FUNCTION_LIST(RUNTIME_ENTRY)
 #undef RUNTIME_ENTRY

 #define RUNTIME_HIDDEN_ENTRY(name, nargs, ressize) \
Index: test/mjsunit/runtime-gen/arraybuffergetbytelength.js
diff --git a/test/mjsunit/runtime-gen/arraybuffergetbytelength.js b/test/mjsunit/runtime-gen/arraybuffergetbytelength.js index 18f45b44f839c87cbf3becd14355fcd22540908d..b3637911a421ac0db149296c7d92201ff2602f6a 100644
--- a/test/mjsunit/runtime-gen/arraybuffergetbytelength.js
+++ b/test/mjsunit/runtime-gen/arraybuffergetbytelength.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _holder = new ArrayBuffer(8);
-%_ArrayBufferGetByteLength(_holder);
+%ArrayBufferGetByteLength(_holder);
Index: test/mjsunit/runtime-gen/arraybufferviewgetbytelength.js
diff --git a/test/mjsunit/runtime-gen/arraybufferviewgetbytelength.js b/test/mjsunit/runtime-gen/arraybufferviewgetbytelength.js index d150ce94093c91bcf5ba6aaf7eaddec420d356d8..243c382e2fd611d1f348f34c5e3e17cbe433c97d 100644
--- a/test/mjsunit/runtime-gen/arraybufferviewgetbytelength.js
+++ b/test/mjsunit/runtime-gen/arraybufferviewgetbytelength.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _holder = new Int32Array(2);
-%_ArrayBufferViewGetByteLength(_holder);
+%ArrayBufferViewGetByteLength(_holder);
Index: test/mjsunit/runtime-gen/arraybufferviewgetbyteoffset.js
diff --git a/test/mjsunit/runtime-gen/arraybufferviewgetbyteoffset.js b/test/mjsunit/runtime-gen/arraybufferviewgetbyteoffset.js index 502795a490da45a0c3a8f505926b378f97b9e351..c9d025ba9080754de49e3fb0e09295061098c237 100644
--- a/test/mjsunit/runtime-gen/arraybufferviewgetbyteoffset.js
+++ b/test/mjsunit/runtime-gen/arraybufferviewgetbyteoffset.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _holder = new Int32Array(2);
-%_ArrayBufferViewGetByteOffset(_holder);
+%ArrayBufferViewGetByteOffset(_holder);
Index: test/mjsunit/runtime-gen/constructdouble.js
diff --git a/test/mjsunit/runtime-gen/constructdouble.js b/test/mjsunit/runtime-gen/constructdouble.js index 0b0e20864f5baf6f4d9e41d9702286a6d2b03328..4ed6c6a3d5101ee197b03eebfa3ba1635e82e717 100644
--- a/test/mjsunit/runtime-gen/constructdouble.js
+++ b/test/mjsunit/runtime-gen/constructdouble.js
@@ -3,4 +3,4 @@
 // Flags: --allow-natives-syntax --harmony
 var _hi = 32;
 var _lo = 32;
-%_ConstructDouble(_hi, _lo);
+%ConstructDouble(_hi, _lo);
Index: test/mjsunit/runtime-gen/dataviewinitialize.js
diff --git a/test/mjsunit/runtime-gen/dataviewinitialize.js b/test/mjsunit/runtime-gen/dataviewinitialize.js index 7702f4ea5bee6bfaf5a10e012ab0b1c89e234c03..083665157025337adef15e3793f4ab7cbd015017 100644
--- a/test/mjsunit/runtime-gen/dataviewinitialize.js
+++ b/test/mjsunit/runtime-gen/dataviewinitialize.js
@@ -5,4 +5,4 @@ var _holder = new DataView(new ArrayBuffer(24));
 var _buffer = new ArrayBuffer(8);
 var _byte_offset = 1.5;
 var _byte_length = 1.5;
-%_DataViewInitialize(_holder, _buffer, _byte_offset, _byte_length);
+%DataViewInitialize(_holder, _buffer, _byte_offset, _byte_length);
Index: test/mjsunit/runtime-gen/debugcallbacksupportsstepping.js
diff --git a/test/mjsunit/runtime-gen/debugcallbacksupportsstepping.js b/test/mjsunit/runtime-gen/debugcallbacksupportsstepping.js index 8c14ef76ed5e50b06013b08318a4833d15489de8..8707381654c97932b3f5be632d080de1a872a38f 100644
--- a/test/mjsunit/runtime-gen/debugcallbacksupportsstepping.js
+++ b/test/mjsunit/runtime-gen/debugcallbacksupportsstepping.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _callback = new Object();
-%_DebugCallbackSupportsStepping(_callback);
+%DebugCallbackSupportsStepping(_callback);
Index: test/mjsunit/runtime-gen/doublehi.js
diff --git a/test/mjsunit/runtime-gen/doublehi.js b/test/mjsunit/runtime-gen/doublehi.js index 6b808f513b4deb065da7bfcd569913d117121936..9212f6dfca1dd6f61d7aab065c9883dbf30a40b4 100644
--- a/test/mjsunit/runtime-gen/doublehi.js
+++ b/test/mjsunit/runtime-gen/doublehi.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _x = 1.5;
-%_DoubleHi(_x);
+%DoubleHi(_x);
Index: test/mjsunit/runtime-gen/doublelo.js
diff --git a/test/mjsunit/runtime-gen/doublelo.js b/test/mjsunit/runtime-gen/doublelo.js index 739efb9a778b82242804810e83a97d508001176a..cbc0b8e8e05e4f8d4a5ed3646d7e7a78bf716ae7 100644
--- a/test/mjsunit/runtime-gen/doublelo.js
+++ b/test/mjsunit/runtime-gen/doublelo.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _x = 1.5;
-%_DoubleLo(_x);
+%DoubleLo(_x);
Index: test/mjsunit/runtime-gen/mathlogrt.js
diff --git a/test/mjsunit/runtime-gen/mathlogrt.js b/test/mjsunit/runtime-gen/mathlogrt.js index fd69bc5176e50f25e3531add53db9a81e98e4a91..6df1b6614fc7134719b1534a3cde73382f185f44 100644
--- a/test/mjsunit/runtime-gen/mathlogrt.js
+++ b/test/mjsunit/runtime-gen/mathlogrt.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _x = 1.5;
-%_MathLogRT(_x);
+%MathLogRT(_x);
Index: test/mjsunit/runtime-gen/mathsqrtrt.js
diff --git a/test/mjsunit/runtime-gen/mathsqrtrt.js b/test/mjsunit/runtime-gen/mathsqrtrt.js index 35a155a655d1e5c25e040934eff415a40fc824a9..622d68a38ae417381554f420da1adee00abc1b33 100644
--- a/test/mjsunit/runtime-gen/mathsqrtrt.js
+++ b/test/mjsunit/runtime-gen/mathsqrtrt.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _x = 1.5;
-%_MathSqrtRT(_x);
+%MathSqrtRT(_x);
Index: test/mjsunit/runtime-gen/maxsmi.js
diff --git a/test/mjsunit/runtime-gen/maxsmi.js b/test/mjsunit/runtime-gen/maxsmi.js index 8b11e487f83806579ffddb8de359baf258daa758..24cf862df180996d15619e037dea826b58f419c5 100644
--- a/test/mjsunit/runtime-gen/maxsmi.js
+++ b/test/mjsunit/runtime-gen/maxsmi.js
@@ -1,4 +1,4 @@
 // Copyright 2014 the V8 project authors. All rights reserved.
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
-%_MaxSmi();
+%MaxSmi();
Index: test/mjsunit/runtime-gen/typedarraygetlength.js
diff --git a/test/mjsunit/runtime-gen/typedarraygetlength.js b/test/mjsunit/runtime-gen/typedarraygetlength.js index 422b24f10ff7b340ca1227f7feac355328c8b34e..56ceb9545b522b5612aad4ee7d16d37a4c53ae75 100644
--- a/test/mjsunit/runtime-gen/typedarraygetlength.js
+++ b/test/mjsunit/runtime-gen/typedarraygetlength.js
@@ -2,4 +2,4 @@
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
 var _holder = new Int32Array(2);
-%_TypedArrayGetLength(_holder);
+%TypedArrayGetLength(_holder);
Index: test/mjsunit/runtime-gen/typedarrayinitialize.js
diff --git a/test/mjsunit/runtime-gen/typedarrayinitialize.js b/test/mjsunit/runtime-gen/typedarrayinitialize.js index d64c519b4466bf3df63cb807c59aff697784b412..177bf3bc2ad237dce89853c118ec7e100bd6a9da 100644
--- a/test/mjsunit/runtime-gen/typedarrayinitialize.js
+++ b/test/mjsunit/runtime-gen/typedarrayinitialize.js
@@ -6,4 +6,4 @@ var arg1 = 6;
 var arg2 = new ArrayBuffer(8);
 var _byte_offset_object = 1.5;
 var arg4 = 4;
-%_TypedArrayInitialize(_holder, arg1, arg2, _byte_offset_object, arg4);
+%TypedArrayInitialize(_holder, arg1, arg2, _byte_offset_object, arg4);
Index: test/mjsunit/runtime-gen/typedarraymaxsizeinheap.js
diff --git a/test/mjsunit/runtime-gen/typedarraymaxsizeinheap.js b/test/mjsunit/runtime-gen/typedarraymaxsizeinheap.js index bfa6c0ccc8c8e4a897210f6130cd71c5c5cfd5a8..4c2cd2a13d37358a6dfc51c9841ab5e6f4d2bedd 100644
--- a/test/mjsunit/runtime-gen/typedarraymaxsizeinheap.js
+++ b/test/mjsunit/runtime-gen/typedarraymaxsizeinheap.js
@@ -1,4 +1,4 @@
 // Copyright 2014 the V8 project authors. All rights reserved.
 // AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY
 // Flags: --allow-natives-syntax --harmony
-%_TypedArrayMaxSizeInHeap();
+%TypedArrayMaxSizeInHeap();
Index: tools/generate-runtime-tests.py
diff --git a/tools/generate-runtime-tests.py b/tools/generate-runtime-tests.py index c5bbeaea4b86b0cc5e06ce3aefd042edf69f31c3..a718daa3f16d9653c5f599bb00cea026549527ba 100755
--- a/tools/generate-runtime-tests.py
+++ b/tools/generate-runtime-tests.py
@@ -820,7 +820,6 @@ def FindInlineRuntimeFunctions():
   inline_functions = []
   with open(HEADERFILENAME, "r") as f:
     inline_list = "#define INLINE_FUNCTION_LIST(F) \\\n"
-    inline_opt_list = "#define INLINE_OPTIMIZED_FUNCTION_LIST(F) \\\n"
     inline_function = re.compile(r"^\s*F\((\w+), \d+, \d+\)\s*\\?")
     mode = "SEARCHING"
     for line in f:
@@ -831,7 +830,7 @@ def FindInlineRuntimeFunctions():
         if not line.endswith("\\\n"):
           mode = "SEARCHING"
       elif mode == "SEARCHING":
-        if line == inline_list or line == inline_opt_list:
+        if line == inline_list:
           mode = "ACTIVE"
   return inline_functions



--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to