Ignore:
Timestamp:
Mar 6, 2018, 10:44:46 PM (7 years ago)
Author:
[email protected]
Message:

Prepare LLInt code to support pointer profiling.
https://bugs.webkit.org/show_bug.cgi?id=183387
<rdar://problem/38199678>

Reviewed by JF Bastien.

Source/JavaScriptCore:

  1. Introduced PtrTag enums for supporting pointer profiling later.
  1. Also introduced tagging, untagging, retagging, and tag removal placeholder template functions for the same purpose.
  1. Prepare the offlineasm for supporting pointer profiling later.
  1. Tagged some pointers in LLInt asm code. Currently, these should have no effect on behavior.
  1. Removed returnToThrowForThrownException() because it is not used anywhere.
  1. Added the offlineasm folder to JavaScriptCore Xcode project so that it's easier to view and edit these files in Xcode.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/LLIntCallLinkInfo.h:

(JSC::LLIntCallLinkInfo::unlink):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:
  • llint/LLIntExceptions.cpp:

(JSC::LLInt::returnToThrowForThrownException): Deleted.

  • llint/LLIntExceptions.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntPCRanges.h:

(JSC::LLInt::isLLIntPC):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/ast.rb:
  • offlineasm/instructions.rb:
  • offlineasm/risc.rb:
  • runtime/PtrTag.h: Added.

(JSC::uniquePtrTagID):
(JSC::ptrTag):
(JSC::tagCodePtr):
(JSC::untagCodePtr):
(JSC::retagCodePtr):
(JSC::removeCodePtrTag):

Source/WTF:

  • wtf/Platform.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/offlineasm/instructions.rb

    r223239 r229354  
    1 # Copyright (C) 2011 Apple Inc. All rights reserved.
     1# Copyright (C) 2011-2018 Apple Inc. All rights reserved.
    22#
    33# Redistribution and use in source and binary forms, with or without
     
    250250     "leai",
    251251     "leap",
    252      "memfence"
     252     "memfence",
     253     "tagReturnAddress",
     254     "untagReturnAddress",
     255     "removeCodePtrTag"
    253256    ]
    254257
Note: See TracChangeset for help on using the changeset viewer.