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.