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:
Milad Farazmand 2019-09-13 15:49:57 -04:00 committed by Commit Bot
parent a67bc90ebd
commit 2afe87cdcb
2 changed files with 12 additions and 4 deletions

View File

@ -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.
*/

View File

@ -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.
*/