• bjaideep's avatar
    PPC/s390: Reland [heap] Avoid the use of cells to point from code to new-space objects. · 85cebe73
    bjaideep authored
    Port 5e058540
    
    Original commit message:
    
        The reason for reverting is: This breaks gc-stress bot:
        https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot
    
        Abortion of compaction could cause duplicate entries in the typed-old-to-new remembered set.
        These duplicates could cause a DCHECK to trigger which checks that slots recorded in the
        remembered set never point to to-space. This reland-CL allows duplicates in the remembered
        set by removing the DCHECK, and additionally clears entries in the remembered set if objects are moved.
    
        Original issue's description:
    
        Cells were needed originally because there was no typed remembered set to
        record direct pointers from code space to new space. A previous
        CL (https://codereview.chromium.org/2003553002/) already introduced
        the remembered set, this CL uses it.
    
        This CL
        * stores direct pointers in code objects, even if the target is in new space,
        * records the slot of the pointer in typed-old-to-new remembered set,
        * adds a list which stores weak code-to-new-space references,
        * adds a test to test-heap.cc for weak code-to-new-space references,
        * removes prints in tail-call-megatest.js
    
    R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
    
    BUG=
    LOG=N
    
    Review-Url: https://codereview.chromium.org/2108673003
    Cr-Commit-Position: refs/heads/master@{#37346}
    85cebe73
macro-assembler-ppc.cc 153 KB