Load parent_frame_type as an IntPtr in LowerArgumentsFrame

It was recently changed to Tagged in
https://chromium-review.googlesource.com/c/v8/v8/+/1832174,
but IntPtr is a better choice since we are doing an IntPtr
equality check below.

AnyTagged loads will decompress in the near future. Then,
https://chromium-review.googlesource.com/c/v8/v8/+/1822637 needs
this CL before submission since otherwise we will be decompressing a
value that we don't need to decompress.

Change-Id: Ifb44faaf84fd68e168c5f99b72c316aa1e5b9f13
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847360
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64177}
This commit is contained in:
Santiago Aboy Solanes 2019-10-08 15:06:42 +01:00 committed by Commit Bot
parent ec87f7fd92
commit 06d0bcbeb3

View File

@ -3529,12 +3529,8 @@ Node* EffectControlLinearizer::LowerArgumentsFrame(Node* node) {
Node* parent_frame =
__ Load(MachineType::Pointer(), frame,
__ IntPtrConstant(StandardFrameConstants::kCallerFPOffset));
// Load parent frame type as an uncompressed value to avoid corruption
// in case it contains a frame type marker. Frame type marker is a pseudo-Smi
// containing a StackFrame::Type value shifted left by kSmiTagSize (see
// StackFrame::TypeToMarker() for details).
Node* parent_frame_type = __ Load(
MachineType::AnyTagged(), parent_frame,
MachineType::IntPtr(), parent_frame,
__ IntPtrConstant(CommonFrameConstants::kContextOrFrameTypeOffset));
__ GotoIf(__ IntPtrEqual(parent_frame_type,