PPC/s390: [regexp] Consolidate calls to jitted irregexp and regexp interpreter
Port 213504b9d7
Original Commit Message:
The code fields in a JSRegExp object now either contain irregexp
compiled code or a trampoline to the interpreter. This way the code
can be executed without explicitly checking if the regexp shall be
interpreted or executed natively.
In case of interpreted regexp the generated bytecode is now stored in
its own fields instead of the code fields for Latin1 and UC16
respectively.
The signatures of the jitted irregexp match and the regexp interpreter
have been equalized.
R=pthier@google.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N
Change-Id: Ia2a80ce927afa644441c0749add0fc35111eb720
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803657
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#63773}
This commit is contained in:
parent
a67bc90ebd
commit
2afe87cdcb
@ -37,7 +37,10 @@ namespace internal {
|
||||
* The remaining registers are free for computations.
|
||||
* Each call to a public method should retain this convention.
|
||||
*
|
||||
* The stack will have the following structure:
|
||||
* The stack will have the following structure
|
||||
* - fp[44] Address regexp (address of the JSRegExp object; unused in
|
||||
* native code, passed to match signature of
|
||||
* the interpreter):
|
||||
* - fp[40] Isolate* isolate (address of the current isolate)
|
||||
* - fp[36] lr save area (currently unused)
|
||||
* - fp[32] backchain (currently unused)
|
||||
@ -83,7 +86,8 @@ namespace internal {
|
||||
* int num_capture_registers,
|
||||
* byte* stack_area_base,
|
||||
* bool direct_call = false,
|
||||
* Isolate* isolate);
|
||||
* Isolate* isolate,
|
||||
* Address regexp);
|
||||
* The call is performed by NativeRegExpMacroAssembler::Execute()
|
||||
* (in regexp-macro-assembler.cc) via the GeneratedCode wrapper.
|
||||
*/
|
||||
|
@ -38,7 +38,10 @@ namespace internal {
|
||||
* The remaining registers are free for computations.
|
||||
* Each call to a public method should retain this convention.
|
||||
*
|
||||
* The stack will have the following structure:
|
||||
* The stack will have the following structure
|
||||
* - fp[112] Address regexp (address of the JSRegExp object; unused in
|
||||
* native code, passed to match signature of
|
||||
* the interpreter)
|
||||
* - fp[108] Isolate* isolate (address of the current isolate)
|
||||
* - fp[104] direct_call (if 1, direct call from JavaScript code,
|
||||
* if 0, call through the runtime system).
|
||||
@ -85,7 +88,8 @@ namespace internal {
|
||||
* int num_capture_registers,
|
||||
* byte* stack_area_base,
|
||||
* bool direct_call = false,
|
||||
* Isolate* isolate);
|
||||
* Isolate* isolate,
|
||||
* Address regexp);
|
||||
* The call is performed by NativeRegExpMacroAssembler::Execute()
|
||||
* (in regexp-macro-assembler.cc) via the GeneratedCode wrapper.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user