• jgruber's avatar
    Reland: [builtins] Patch self-references in constants table · ab9e0124
    jgruber authored
    Original CL: https://crrev.com/c/1018468
    
    During code generation, we generate self-references (i.e. references to
    the Code object currently being generated) as references to a temporary
    handle. When the final Code object has been allocated, the handle's
    location is fixed up and RelocInfo iteration fixes up all references
    embedded in the generated code.
    
    This adds support for this mechanism to the builtins constants table
    builder. CodeObject() is now a new handle pointing to a dedicated
    self-reference marker in order to distinguish between self-references
    and references to undefined. In Factory::NewCode, we patch up
    the constants table.
    
    TBR=yangguo@chromium.org,mlippautz@chromium.org
    
    Bug: v8:6666
    Change-Id: I3fa422c57de99c9851dc7a86394a8387c7c2b397
    Reviewed-on: https://chromium-review.googlesource.com/1039366
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52916}
    ab9e0124
macro-assembler-x64.cc 80.9 KB