Revert "Revert "Upgrade to 5.0.71.48"" DO NOT MERGE
This reverts commit f2e3994fa5148cc3d9946666f0b0596290192b0e,
and updates the x64 makefile properly so it doesn't break that
build.
FPIIM-449
Change-Id: Ib83e35bfbae6af627451c926a9650ec57c045605
(cherry picked from commit 109988c7ccb6f3fd1a58574fa3dfb88beaef6632)
diff --git a/src/ic/ic.h b/src/ic/ic.h
index a3265d7..0a324a8 100644
--- a/src/ic/ic.h
+++ b/src/ic/ic.h
@@ -112,7 +112,7 @@
}
// Configure for most states.
- void ConfigureVectorState(IC::State new_state);
+ void ConfigureVectorState(IC::State new_state, Handle<Object> key);
// Configure the vector for MONOMORPHIC.
void ConfigureVectorState(Handle<Name> name, Handle<Map> map,
Handle<Code> handler);
@@ -284,9 +284,11 @@
// Code generator routines.
static Handle<Code> initialize_stub(Isolate* isolate, int argc,
- ConvertReceiverMode mode);
+ ConvertReceiverMode mode,
+ TailCallMode tail_call_mode);
static Handle<Code> initialize_stub_in_optimized_code(
- Isolate* isolate, int argc, ConvertReceiverMode mode);
+ Isolate* isolate, int argc, ConvertReceiverMode mode,
+ TailCallMode tail_call_mode);
static void Clear(Isolate* isolate, Code* host, CallICNexus* nexus);
};
@@ -294,19 +296,10 @@
class LoadIC : public IC {
public:
- static ExtraICState ComputeExtraICState(TypeofMode typeof_mode,
- LanguageMode language_mode) {
- return LoadICState(typeof_mode, language_mode).GetExtraICState();
- }
-
TypeofMode typeof_mode() const {
return LoadICState::GetTypeofMode(extra_ic_state());
}
- LanguageMode language_mode() const {
- return LoadICState::GetLanguageMode(extra_ic_state());
- }
-
LoadIC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus = NULL)
: IC(depth, isolate, nexus) {
DCHECK(nexus != NULL);
@@ -321,9 +314,8 @@
static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); }
static void GenerateMiss(MacroAssembler* masm);
- static void GenerateRuntimeGetProperty(MacroAssembler* masm,
- LanguageMode language_mode);
- static void GenerateNormal(MacroAssembler* masm, LanguageMode language_mode);
+ static void GenerateRuntimeGetProperty(MacroAssembler* masm);
+ static void GenerateNormal(MacroAssembler* masm);
static Handle<Code> initialize_stub(Isolate* isolate,
ExtraICState extra_state);
@@ -340,14 +332,10 @@
Handle<Code> slow_stub() const {
if (kind() == Code::LOAD_IC) {
- return is_strong(language_mode())
- ? isolate()->builtins()->LoadIC_Slow_Strong()
- : isolate()->builtins()->LoadIC_Slow();
+ return isolate()->builtins()->LoadIC_Slow();
} else {
DCHECK_EQ(Code::KEYED_LOAD_IC, kind());
- return is_strong(language_mode())
- ? isolate()->builtins()->KeyedLoadIC_Slow_Strong()
- : isolate()->builtins()->KeyedLoadIC_Slow();
+ return isolate()->builtins()->KeyedLoadIC_Slow();
}
}
@@ -372,21 +360,6 @@
class KeyedLoadIC : public LoadIC {
public:
- // ExtraICState bits (building on IC)
- class IcCheckTypeField
- : public BitField<IcCheckType, LoadICState::kNextBitFieldOffset, 1> {};
-
- static ExtraICState ComputeExtraICState(TypeofMode typeof_mode,
- LanguageMode language_mode,
- IcCheckType key_type) {
- return LoadICState(typeof_mode, language_mode).GetExtraICState() |
- IcCheckTypeField::encode(key_type);
- }
-
- static IcCheckType GetKeyType(ExtraICState extra_state) {
- return IcCheckTypeField::decode(extra_state);
- }
-
KeyedLoadIC(FrameDepth depth, Isolate* isolate,
KeyedLoadICNexus* nexus = NULL)
: LoadIC(depth, isolate, nexus) {
@@ -399,11 +372,9 @@
// Code generator routines.
static void GenerateMiss(MacroAssembler* masm);
- static void GenerateRuntimeGetProperty(MacroAssembler* masm,
- LanguageMode language_mode);
+ static void GenerateRuntimeGetProperty(MacroAssembler* masm);
static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); }
- static void GenerateMegamorphic(MacroAssembler* masm,
- LanguageMode language_mode);
+ static void GenerateMegamorphic(MacroAssembler* masm);
// Bit mask to be tested against bit field for the cases when
// generic stub should go into slow case.
@@ -616,8 +587,7 @@
static Condition ComputeCondition(Token::Value op);
// Factory method for getting an uninitialized compare stub.
- static Handle<Code> GetUninitialized(Isolate* isolate, Token::Value op,
- Strength strength);
+ static Handle<Code> GetUninitialized(Isolate* isolate, Token::Value op);
private:
static bool HasInlinedSmiCode(Address address);
@@ -625,8 +595,7 @@
bool strict() const { return op_ == Token::EQ_STRICT; }
Condition GetCondition() const { return ComputeCondition(op_); }
- static Code* GetRawUninitialized(Isolate* isolate, Token::Value op,
- Strength strength);
+ static Code* GetRawUninitialized(Isolate* isolate, Token::Value op);
static void Clear(Isolate* isolate, Address address, Code* target,
Address constant_pool);
@@ -646,9 +615,6 @@
static Handle<Code> GetUninitialized();
static void Clear(Address address, Code* target, Address constant_pool);
-
- static Handle<Object> DoCompareNilSlow(Isolate* isolate, NilValue nil,
- Handle<Object> object);
};