<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>258057</bug_id>
          
          <creation_ts>2023-06-13 19:02:33 -0700</creation_ts>
          <short_desc>Fix WasmBBQJIT failing to preserve locations in ScratchScope</short_desc>
          <delta_ts>2023-06-14 09:42:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebAssembly</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>258044</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Degazio">d_degazio</reporter>
          <assigned_to name="David Degazio">d_degazio</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1961459</commentid>
    <comment_count>0</comment_count>
    <who name="David Degazio">d_degazio</who>
    <bug_when>2023-06-13 19:02:33 -0700</bug_when>
    <thetext>rdar://110747242

The ScratchScope abstraction used by the new WebAssembly BBQ JIT implementation is supposed to allow for the preservation of certain registers throughout its scope, preventing them from being chosen as scratches or used for newly allocated values. However, we don&apos;t actually do this when locations that are already in use are passed to ScratchScope, which largely defeats the purpose of being able to preserve live registers. It&apos;s not clear if this can be reproduced by actual WebAssembly sources, but it&apos;s definitely not how this class is supposed to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1961563</commentid>
    <comment_count>1</comment_count>
    <who name="David Degazio">d_degazio</who>
    <bug_when>2023-06-14 09:26:26 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/14958</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1961567</commentid>
    <comment_count>2</comment_count>
    <who name="David Degazio">d_degazio</who>
    <bug_when>2023-06-14 09:42:59 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=258044 tracks the same issue, and was created earlier; resolving this as a dupe and closing my PR.

*** This bug has been marked as a duplicate of bug 258044 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>