webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
JSC::ArithProfile Struct Reference

#include <ArithProfile.h>

Public Types

enum  ObservedResults {
  NonNegZeroDouble = 1 << 0, NegZeroDouble = 1 << 1, NonNumber = 1 << 2, Int32Overflow = 1 << 3,
  Int52Overflow = 1 << 4
}
 

Public Member Functions

 ArithProfile (ResultType arg)
 
 ArithProfile (ResultType lhs, ResultType rhs)
 
 ArithProfile ()=default
 
ResultType lhsResultType () const
 
ResultType rhsResultType () const
 
ObservedType lhsObservedType () const
 
ObservedType rhsObservedType () const
 
void setLhsObservedType (ObservedType type)
 
void setRhsObservedType (ObservedType type)
 
bool tookSpecialFastPath () const
 
bool didObserveNonInt32 () const
 
bool didObserveDouble () const
 
bool didObserveNonNegZeroDouble () const
 
bool didObserveNegZeroDouble () const
 
bool didObserveNonNumber () const
 
bool didObserveInt32Overflow () const
 
bool didObserveInt52Overflow () const
 
void setObservedNonNegZeroDouble ()
 
void setObservedNegZeroDouble ()
 
void setObservedNonNumber ()
 
void setObservedInt32Overflow ()
 
void setObservedInt52Overflow ()
 
const voidaddressOfBits () const
 
void observeResult (JSValue value)
 
void lhsSawInt32 ()
 
void lhsSawNumber ()
 
void lhsSawNonNumber ()
 
void rhsSawInt32 ()
 
void rhsSawNumber ()
 
void rhsSawNonNumber ()
 
void observeLHS (JSValue lhs)
 
void observeLHSAndRHS (JSValue lhs, JSValue rhs)
 
uint32_t bits () const
 

Static Public Member Functions

static ArithProfile fromInt (uint32_t bits)
 

Static Public Attributes

static const uint32_t specialFastPathBit = 1 << (lhsObservedTypeShift + ObservedType::numBitsNeeded)
 

Member Enumeration Documentation

◆ ObservedResults

Enumerator
NonNegZeroDouble 
NegZeroDouble 
NonNumber 
Int32Overflow 
Int52Overflow 

Constructor & Destructor Documentation

◆ ArithProfile() [1/3]

JSC::ArithProfile::ArithProfile ( ResultType  arg)
inline

◆ ArithProfile() [2/3]

JSC::ArithProfile::ArithProfile ( ResultType  lhs,
ResultType  rhs 
)
inline

◆ ArithProfile() [3/3]

JSC::ArithProfile::ArithProfile ( )
default

Member Function Documentation

◆ addressOfBits()

const void* JSC::ArithProfile::addressOfBits ( ) const
inline

◆ bits()

uint32_t JSC::ArithProfile::bits ( ) const
inline

◆ didObserveDouble()

bool JSC::ArithProfile::didObserveDouble ( ) const
inline

◆ didObserveInt32Overflow()

bool JSC::ArithProfile::didObserveInt32Overflow ( ) const
inline

◆ didObserveInt52Overflow()

bool JSC::ArithProfile::didObserveInt52Overflow ( ) const
inline

◆ didObserveNegZeroDouble()

bool JSC::ArithProfile::didObserveNegZeroDouble ( ) const
inline

◆ didObserveNonInt32()

bool JSC::ArithProfile::didObserveNonInt32 ( ) const
inline

◆ didObserveNonNegZeroDouble()

bool JSC::ArithProfile::didObserveNonNegZeroDouble ( ) const
inline

◆ didObserveNonNumber()

bool JSC::ArithProfile::didObserveNonNumber ( ) const
inline

◆ fromInt()

static ArithProfile JSC::ArithProfile::fromInt ( uint32_t  bits)
inlinestatic

◆ lhsObservedType()

ObservedType JSC::ArithProfile::lhsObservedType ( ) const
inline

◆ lhsResultType()

ResultType JSC::ArithProfile::lhsResultType ( ) const
inline

◆ lhsSawInt32()

void JSC::ArithProfile::lhsSawInt32 ( )
inline

◆ lhsSawNonNumber()

void JSC::ArithProfile::lhsSawNonNumber ( )
inline

◆ lhsSawNumber()

void JSC::ArithProfile::lhsSawNumber ( )
inline

◆ observeLHS()

void JSC::ArithProfile::observeLHS ( JSValue  lhs)
inline

◆ observeLHSAndRHS()

void JSC::ArithProfile::observeLHSAndRHS ( JSValue  lhs,
JSValue  rhs 
)
inline

◆ observeResult()

void JSC::ArithProfile::observeResult ( JSValue  value)
inline

◆ rhsObservedType()

ObservedType JSC::ArithProfile::rhsObservedType ( ) const
inline

◆ rhsResultType()

ResultType JSC::ArithProfile::rhsResultType ( ) const
inline

◆ rhsSawInt32()

void JSC::ArithProfile::rhsSawInt32 ( )
inline

◆ rhsSawNonNumber()

void JSC::ArithProfile::rhsSawNonNumber ( )
inline

◆ rhsSawNumber()

void JSC::ArithProfile::rhsSawNumber ( )
inline

◆ setLhsObservedType()

void JSC::ArithProfile::setLhsObservedType ( ObservedType  type)
inline

◆ setObservedInt32Overflow()

void JSC::ArithProfile::setObservedInt32Overflow ( )
inline

◆ setObservedInt52Overflow()

void JSC::ArithProfile::setObservedInt52Overflow ( )
inline

◆ setObservedNegZeroDouble()

void JSC::ArithProfile::setObservedNegZeroDouble ( )
inline

◆ setObservedNonNegZeroDouble()

void JSC::ArithProfile::setObservedNonNegZeroDouble ( )
inline

◆ setObservedNonNumber()

void JSC::ArithProfile::setObservedNonNumber ( )
inline

◆ setRhsObservedType()

void JSC::ArithProfile::setRhsObservedType ( ObservedType  type)
inline

◆ tookSpecialFastPath()

bool JSC::ArithProfile::tookSpecialFastPath ( ) const
inline

Member Data Documentation

◆ specialFastPathBit

const uint32_t JSC::ArithProfile::specialFastPathBit = 1 << (lhsObservedTypeShift + ObservedType::numBitsNeeded)
static

The documentation for this struct was generated from the following file: