[turboshaft] Fix wrong reconstruction of FrameStates
Fixed: v8:13520 Bug: v8:12783 Change-Id: Ifea57ac5fda9a20be1fe6aa4c8e05ff13bfe9f5a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051206 Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#84471}
This commit is contained in:
parent
be40ab1b6a
commit
af6f1c4736
@ -1089,6 +1089,15 @@ std::pair<Node*, MachineType> ScheduleBuilder::BuildDeoptInput(
|
||||
MachineType type;
|
||||
OpIndex input;
|
||||
it->ConsumeInput(&type, &input);
|
||||
const Operation& op = input_graph.Get(input);
|
||||
if (op.outputs_rep()[0] == RegisterRepresentation::Word64() &&
|
||||
type.representation() == MachineRepresentation::kWord32) {
|
||||
// 64 to 32-bit conversion is implicit in turboshaft, but explicit in
|
||||
// turbofan, so we insert this conversion.
|
||||
Node* conversion =
|
||||
AddNode(machine.TruncateInt64ToInt32(), {GetNode(input)});
|
||||
return {conversion, type};
|
||||
}
|
||||
return {GetNode(input), type};
|
||||
}
|
||||
case Instr::kDematerializedObject: {
|
||||
|
Loading…
Reference in New Issue
Block a user