Reland "[ia32,root] Disable root indirections in irregexp code"
This is a reland of fefd923048
Original change's description:
> [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/1280762
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#56639}
Bug: v8:6666
Change-Id: I92fe74e790ab9b2937a3b15db85bad45e6443083
Reviewed-on: https://chromium-review.googlesource.com/c/1280226
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56666}
This commit is contained in:
parent
4f02387570
commit
6aec5e7ad1
@ -93,6 +93,9 @@ RegExpMacroAssemblerIA32::RegExpMacroAssemblerIA32(Isolate* isolate, Zone* zone,
|
||||
success_label_(),
|
||||
backtrack_label_(),
|
||||
exit_label_() {
|
||||
// Irregexp code clobbers ebx and spills/restores it at all boundaries.
|
||||
masm_->set_root_array_available(false);
|
||||
|
||||
DCHECK_EQ(0, registers_to_save % 2);
|
||||
__ jmp(&entry_label_); // We'll write the entry code later.
|
||||
__ bind(&start_label_); // And then continue from here.
|
||||
|
Loading…
Reference in New Issue
Block a user