Reland "Fix CSA_CHECK failure on BE"

This is a reland of commit c060af4db3

Use LoadFullTagged function instead to avoid test failing
with v8_enable_verify_csa=true.

Original change's description:
> Fix CSA_CHECK failure on BE
>
> The load for external reference should be a full pointer load
> instead of tagged size.
>
> Change-Id: I3460a26abea5053ba6daa5c6ed908cb93431654a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3842348
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Commit-Queue: Junliang Yan <junyan@redhat.com>
> Cr-Commit-Position: refs/heads/main@{#82625}

Change-Id: I85817634ce2de099a9fbd350defb57789cce9678
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3857442
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82782}
This commit is contained in:
Junliang Yan 2022-08-19 09:47:52 -04:00 committed by V8 LUCI CQ
parent efb772c400
commit 5507857c7d

View File

@ -732,7 +732,8 @@ TNode<HeapObject> RegExpBuiltinsAssembler::RegExpExecInternal(
TNode<ExternalReference> pending_exception_address =
ExternalConstant(ExternalReference::Create(
IsolateAddressId::kPendingExceptionAddress, isolate()));
CSA_DCHECK(this, IsTheHole(Load<Object>(pending_exception_address)));
TNode<Object> pending_exception = LoadFullTagged(pending_exception_address);
CSA_DCHECK(this, IsTheHole(pending_exception));
#endif // DEBUG
CallRuntime(Runtime::kThrowStackOverflow, context);
Unreachable();