Commit fefd9230 authored by Jakob Gruber's avatar Jakob Gruber Committed by Commit Bot

[ia32,root] Disable root indirections in irregexp code

Irregexp code spills and restores ebx at boundaries, and clobbers it
inbetween. Root-relative loads are disabled in this region.

Bug: v8:6666
Change-Id: I9c68bc8ef88d324da609996a8457ac9e30a9b6fc
Reviewed-on: https://chromium-review.googlesource.com/c/1280762Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56639}
parent 56d576d4
......@@ -85,6 +85,7 @@ RegExpMacroAssemblerIA32::RegExpMacroAssemblerIA32(Isolate* isolate, Zone* zone,
: NativeRegExpMacroAssembler(isolate, zone),
masm_(new MacroAssembler(isolate, nullptr, kRegExpCodeSize,
CodeObjectRequired::kYes)),
root_is_clobbered_(masm_),
mode_(mode),
num_registers_(registers_to_save),
num_saved_registers_(registers_to_save),
......
......@@ -178,6 +178,9 @@ class RegExpMacroAssemblerIA32: public NativeRegExpMacroAssembler {
MacroAssembler* masm_;
// Irregexp code clobbers the root register.
NoRootArrayScope root_is_clobbered_;
// Which mode to generate code for (LATIN1 or UC16).
Mode mode_;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment