Reland "Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them.".
- Use V8_FINAL and V8_OVERRIDE in Ast classes. - Use V8_FINAL and V8_OVERRIDE in Lithium mips backend. - Use V8_FINAL and V8_OVERRIDE in Lithium arm backend. - Use V8_FINAL and V8_OVERRIDE in Lithium x64 backend. - Use V8_FINAL and V8_OVERRIDE in Lithium ia32 backend. - Use V8_FINAL and V8_OVERRIDE in Lithium classes. - Use V8_FINAL and V8_OVERRIDE in Hydrogen classes. TBR=dslomov@chromium.org Review URL: https://codereview.chromium.org/22796020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
60e7d4b1e3
commit
c2c6b2813d
File diff suppressed because it is too large
Load Diff
@ -36,7 +36,7 @@ namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
|
||||
class SafepointGenerator : public CallWrapper {
|
||||
class SafepointGenerator V8_FINAL : public CallWrapper {
|
||||
public:
|
||||
SafepointGenerator(LCodeGen* codegen,
|
||||
LPointerMap* pointers,
|
||||
@ -44,11 +44,11 @@ class SafepointGenerator : public CallWrapper {
|
||||
: codegen_(codegen),
|
||||
pointers_(pointers),
|
||||
deopt_mode_(mode) { }
|
||||
virtual ~SafepointGenerator() { }
|
||||
virtual ~SafepointGenerator() {}
|
||||
|
||||
virtual void BeforeCall(int call_size) const { }
|
||||
virtual void BeforeCall(int call_size) const V8_OVERRIDE {}
|
||||
|
||||
virtual void AfterCall() const {
|
||||
virtual void AfterCall() const V8_OVERRIDE {
|
||||
codegen_->RecordSafepoint(pointers_, deopt_mode_);
|
||||
}
|
||||
|
||||
@ -2734,15 +2734,15 @@ void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr) {
|
||||
class DeferredInstanceOfKnownGlobal: public LDeferredCode {
|
||||
class DeferredInstanceOfKnownGlobal V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredInstanceOfKnownGlobal(LCodeGen* codegen,
|
||||
LInstanceOfKnownGlobal* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceOfKnownGlobal(instr_, &map_check_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
Label* map_check() { return &map_check_; }
|
||||
private:
|
||||
LInstanceOfKnownGlobal* instr_;
|
||||
@ -3721,14 +3721,14 @@ void LCodeGen::EmitIntegerMathAbs(LMathAbs* instr) {
|
||||
|
||||
void LCodeGen::DoMathAbs(LMathAbs* instr) {
|
||||
// Class for deferred case.
|
||||
class DeferredMathAbsTaggedHeapNumber: public LDeferredCode {
|
||||
class DeferredMathAbsTaggedHeapNumber V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredMathAbsTaggedHeapNumber(LCodeGen* codegen, LMathAbs* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredMathAbsTaggedHeapNumber(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LMathAbs* instr_;
|
||||
};
|
||||
@ -3877,12 +3877,12 @@ void LCodeGen::DoPower(LPower* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoRandom(LRandom* instr) {
|
||||
class DeferredDoRandom: public LDeferredCode {
|
||||
class DeferredDoRandom V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredDoRandom(LCodeGen* codegen, LRandom* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LRandom* instr_;
|
||||
};
|
||||
@ -4519,12 +4519,14 @@ void LCodeGen::DoStringAdd(LStringAdd* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
class DeferredStringCharCodeAt: public LDeferredCode {
|
||||
class DeferredStringCharCodeAt V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharCodeAt(LCodeGen* codegen, LStringCharCodeAt* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharCodeAt(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharCodeAt(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharCodeAt* instr_;
|
||||
};
|
||||
@ -4572,12 +4574,14 @@ void LCodeGen::DoDeferredStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharFromCode(LStringCharFromCode* instr) {
|
||||
class DeferredStringCharFromCode: public LDeferredCode {
|
||||
class DeferredStringCharFromCode V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharFromCode(LCodeGen* codegen, LStringCharFromCode* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharFromCode(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharFromCode(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharFromCode* instr_;
|
||||
};
|
||||
@ -4660,16 +4664,16 @@ void LCodeGen::DoUint32ToDouble(LUint32ToDouble* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
||||
class DeferredNumberTagI: public LDeferredCode {
|
||||
class DeferredNumberTagI V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagI(LCodeGen* codegen, LNumberTagI* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagI(instr_,
|
||||
instr_->value(),
|
||||
SIGNED_INT32);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagI* instr_;
|
||||
};
|
||||
@ -4685,16 +4689,16 @@ void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagU(LNumberTagU* instr) {
|
||||
class DeferredNumberTagU: public LDeferredCode {
|
||||
class DeferredNumberTagU V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagU(LCodeGen* codegen, LNumberTagU* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagI(instr_,
|
||||
instr_->value(),
|
||||
UNSIGNED_INT32);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagU* instr_;
|
||||
};
|
||||
@ -4767,12 +4771,14 @@ void LCodeGen::DoDeferredNumberTagI(LInstruction* instr,
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagD(LNumberTagD* instr) {
|
||||
class DeferredNumberTagD: public LDeferredCode {
|
||||
class DeferredNumberTagD V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagD(LCodeGen* codegen, LNumberTagD* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredNumberTagD(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagD(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagD* instr_;
|
||||
};
|
||||
@ -4965,12 +4971,14 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoTaggedToI(LTaggedToI* instr) {
|
||||
class DeferredTaggedToI: public LDeferredCode {
|
||||
class DeferredTaggedToI V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredTaggedToI(LCodeGen* codegen, LTaggedToI* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredTaggedToI(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredTaggedToI(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LTaggedToI* instr_;
|
||||
};
|
||||
@ -5161,17 +5169,17 @@ void LCodeGen::DoDeferredInstanceMigration(LCheckMaps* instr, Register object) {
|
||||
|
||||
|
||||
void LCodeGen::DoCheckMaps(LCheckMaps* instr) {
|
||||
class DeferredCheckMaps: public LDeferredCode {
|
||||
class DeferredCheckMaps V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredCheckMaps(LCodeGen* codegen, LCheckMaps* instr, Register object)
|
||||
: LDeferredCode(codegen), instr_(instr), object_(object) {
|
||||
SetExit(check_maps());
|
||||
}
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceMigration(instr_, object_);
|
||||
}
|
||||
Label* check_maps() { return &check_maps_; }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LCheckMaps* instr_;
|
||||
Label check_maps_;
|
||||
@ -5264,12 +5272,14 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoAllocate(LAllocate* instr) {
|
||||
class DeferredAllocate: public LDeferredCode {
|
||||
class DeferredAllocate V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredAllocate(LCodeGen* codegen, LAllocate* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredAllocate(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredAllocate(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LAllocate* instr_;
|
||||
};
|
||||
@ -5620,12 +5630,14 @@ void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStackCheck(LStackCheck* instr) {
|
||||
class DeferredStackCheck: public LDeferredCode {
|
||||
class DeferredStackCheck V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStackCheck(LCodeGen* codegen, LStackCheck* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStackCheck(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStackCheck(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStackCheck* instr_;
|
||||
};
|
||||
|
@ -43,7 +43,7 @@ namespace internal {
|
||||
class LDeferredCode;
|
||||
class SafepointGenerator;
|
||||
|
||||
class LCodeGen BASE_EMBEDDED {
|
||||
class LCodeGen V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info)
|
||||
: zone_(info->zone()),
|
||||
@ -420,7 +420,7 @@ class LCodeGen BASE_EMBEDDED {
|
||||
|
||||
int old_position_;
|
||||
|
||||
class PushSafepointRegistersScope BASE_EMBEDDED {
|
||||
class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
PushSafepointRegistersScope(LCodeGen* codegen,
|
||||
Safepoint::Kind kind)
|
||||
@ -468,7 +468,7 @@ class LCodeGen BASE_EMBEDDED {
|
||||
};
|
||||
|
||||
|
||||
class LDeferredCode: public ZoneObject {
|
||||
class LDeferredCode : public ZoneObject {
|
||||
public:
|
||||
explicit LDeferredCode(LCodeGen* codegen)
|
||||
: codegen_(codegen),
|
||||
@ -477,7 +477,7 @@ class LDeferredCode: public ZoneObject {
|
||||
codegen->AddDeferredCode(this);
|
||||
}
|
||||
|
||||
virtual ~LDeferredCode() { }
|
||||
virtual ~LDeferredCode() {}
|
||||
virtual void Generate() = 0;
|
||||
virtual LInstruction* instr() = 0;
|
||||
|
||||
|
@ -38,7 +38,7 @@ namespace internal {
|
||||
class LCodeGen;
|
||||
class LGapResolver;
|
||||
|
||||
class LGapResolver BASE_EMBEDDED {
|
||||
class LGapResolver V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit LGapResolver(LCodeGen* owner);
|
||||
|
||||
|
@ -858,12 +858,13 @@ bool RegExpCapture::IsAnchoredAtEnd() {
|
||||
// in as many cases as possible, to make it more difficult for incorrect
|
||||
// parses to look as correct ones which is likely if the input and
|
||||
// output formats are alike.
|
||||
class RegExpUnparser: public RegExpVisitor {
|
||||
class RegExpUnparser V8_FINAL : public RegExpVisitor {
|
||||
public:
|
||||
explicit RegExpUnparser(Zone* zone);
|
||||
void VisitCharacterRange(CharacterRange that);
|
||||
SmartArrayPointer<const char> ToString() { return stream_.ToCString(); }
|
||||
#define MAKE_CASE(Name) virtual void* Visit##Name(RegExp##Name*, void* data);
|
||||
#define MAKE_CASE(Name) virtual void* Visit##Name(RegExp##Name*, \
|
||||
void* data) V8_OVERRIDE;
|
||||
FOR_EACH_REG_EXP_TREE_TYPE(MAKE_CASE)
|
||||
#undef MAKE_CASE
|
||||
private:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7279,7 +7279,7 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) {
|
||||
CHECK_ALIVE(VisitArgument(expr->expression()));
|
||||
HValue* constructor = HPushArgument::cast(Top())->argument();
|
||||
CHECK_ALIVE(VisitArgumentList(expr->arguments()));
|
||||
HCallNew* call;
|
||||
HBinaryCall* call;
|
||||
if (expr->target().is_identical_to(array_function)) {
|
||||
Handle<Cell> cell = expr->allocation_info_cell();
|
||||
Add<HCheckFunction>(constructor, array_function);
|
||||
|
@ -53,10 +53,10 @@ class LChunk;
|
||||
class LiveRange;
|
||||
|
||||
|
||||
class HBasicBlock: public ZoneObject {
|
||||
class HBasicBlock V8_FINAL : public ZoneObject {
|
||||
public:
|
||||
explicit HBasicBlock(HGraph* graph);
|
||||
virtual ~HBasicBlock() { }
|
||||
~HBasicBlock() { }
|
||||
|
||||
// Simple accessors.
|
||||
int block_id() const { return block_id_; }
|
||||
@ -220,7 +220,7 @@ class HBasicBlock: public ZoneObject {
|
||||
};
|
||||
|
||||
|
||||
class HPredecessorIterator BASE_EMBEDDED {
|
||||
class HPredecessorIterator V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit HPredecessorIterator(HBasicBlock* block)
|
||||
: predecessor_list_(block->predecessors()), current_(0) { }
|
||||
@ -235,7 +235,7 @@ class HPredecessorIterator BASE_EMBEDDED {
|
||||
};
|
||||
|
||||
|
||||
class HInstructionIterator BASE_EMBEDDED {
|
||||
class HInstructionIterator V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit HInstructionIterator(HBasicBlock* block)
|
||||
: instr_(block->first()) {
|
||||
@ -255,7 +255,7 @@ class HInstructionIterator BASE_EMBEDDED {
|
||||
};
|
||||
|
||||
|
||||
class HLoopInformation: public ZoneObject {
|
||||
class HLoopInformation V8_FINAL : public ZoneObject {
|
||||
public:
|
||||
HLoopInformation(HBasicBlock* loop_header, Zone* zone)
|
||||
: back_edges_(4, zone),
|
||||
@ -264,7 +264,7 @@ class HLoopInformation: public ZoneObject {
|
||||
stack_check_(NULL) {
|
||||
blocks_.Add(loop_header, zone);
|
||||
}
|
||||
virtual ~HLoopInformation() {}
|
||||
~HLoopInformation() {}
|
||||
|
||||
const ZoneList<HBasicBlock*>* back_edges() const { return &back_edges_; }
|
||||
const ZoneList<HBasicBlock*>* blocks() const { return &blocks_; }
|
||||
@ -303,7 +303,7 @@ class HLoopInformation: public ZoneObject {
|
||||
|
||||
class BoundsCheckTable;
|
||||
class InductionVariableBlocksTable;
|
||||
class HGraph: public ZoneObject {
|
||||
class HGraph V8_FINAL : public ZoneObject {
|
||||
public:
|
||||
explicit HGraph(CompilationInfo* info);
|
||||
|
||||
@ -523,7 +523,7 @@ enum FrameType {
|
||||
};
|
||||
|
||||
|
||||
class HEnvironment: public ZoneObject {
|
||||
class HEnvironment V8_FINAL : public ZoneObject {
|
||||
public:
|
||||
HEnvironment(HEnvironment* outer,
|
||||
Scope* scope,
|
||||
@ -793,33 +793,37 @@ class AstContext {
|
||||
};
|
||||
|
||||
|
||||
class EffectContext: public AstContext {
|
||||
class EffectContext V8_FINAL : public AstContext {
|
||||
public:
|
||||
explicit EffectContext(HOptimizedGraphBuilder* owner)
|
||||
: AstContext(owner, Expression::kEffect) {
|
||||
}
|
||||
virtual ~EffectContext();
|
||||
|
||||
virtual void ReturnValue(HValue* value);
|
||||
virtual void ReturnInstruction(HInstruction* instr, BailoutId ast_id);
|
||||
virtual void ReturnControl(HControlInstruction* instr, BailoutId ast_id);
|
||||
virtual void ReturnValue(HValue* value) V8_OVERRIDE;
|
||||
virtual void ReturnInstruction(HInstruction* instr,
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
virtual void ReturnControl(HControlInstruction* instr,
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
virtual void ReturnContinuation(HIfContinuation* continuation,
|
||||
BailoutId ast_id);
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
};
|
||||
|
||||
|
||||
class ValueContext: public AstContext {
|
||||
class ValueContext V8_FINAL : public AstContext {
|
||||
public:
|
||||
ValueContext(HOptimizedGraphBuilder* owner, ArgumentsAllowedFlag flag)
|
||||
: AstContext(owner, Expression::kValue), flag_(flag) {
|
||||
}
|
||||
virtual ~ValueContext();
|
||||
|
||||
virtual void ReturnValue(HValue* value);
|
||||
virtual void ReturnInstruction(HInstruction* instr, BailoutId ast_id);
|
||||
virtual void ReturnControl(HControlInstruction* instr, BailoutId ast_id);
|
||||
virtual void ReturnValue(HValue* value) V8_OVERRIDE;
|
||||
virtual void ReturnInstruction(HInstruction* instr,
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
virtual void ReturnControl(HControlInstruction* instr,
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
virtual void ReturnContinuation(HIfContinuation* continuation,
|
||||
BailoutId ast_id);
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
|
||||
bool arguments_allowed() { return flag_ == ARGUMENTS_ALLOWED; }
|
||||
|
||||
@ -828,7 +832,7 @@ class ValueContext: public AstContext {
|
||||
};
|
||||
|
||||
|
||||
class TestContext: public AstContext {
|
||||
class TestContext V8_FINAL : public AstContext {
|
||||
public:
|
||||
TestContext(HOptimizedGraphBuilder* owner,
|
||||
Expression* condition,
|
||||
@ -840,11 +844,13 @@ class TestContext: public AstContext {
|
||||
if_false_(if_false) {
|
||||
}
|
||||
|
||||
virtual void ReturnValue(HValue* value);
|
||||
virtual void ReturnInstruction(HInstruction* instr, BailoutId ast_id);
|
||||
virtual void ReturnControl(HControlInstruction* instr, BailoutId ast_id);
|
||||
virtual void ReturnValue(HValue* value) V8_OVERRIDE;
|
||||
virtual void ReturnInstruction(HInstruction* instr,
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
virtual void ReturnControl(HControlInstruction* instr,
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
virtual void ReturnContinuation(HIfContinuation* continuation,
|
||||
BailoutId ast_id);
|
||||
BailoutId ast_id) V8_OVERRIDE;
|
||||
|
||||
static TestContext* cast(AstContext* context) {
|
||||
ASSERT(context->IsTest());
|
||||
@ -866,7 +872,7 @@ class TestContext: public AstContext {
|
||||
};
|
||||
|
||||
|
||||
class FunctionState {
|
||||
class FunctionState V8_FINAL {
|
||||
public:
|
||||
FunctionState(HOptimizedGraphBuilder* owner,
|
||||
CompilationInfo* info,
|
||||
@ -933,7 +939,7 @@ class FunctionState {
|
||||
};
|
||||
|
||||
|
||||
class HIfContinuation {
|
||||
class HIfContinuation V8_FINAL {
|
||||
public:
|
||||
HIfContinuation() { continuation_captured_ = false; }
|
||||
~HIfContinuation() { ASSERT(!continuation_captured_); }
|
||||
@ -1272,7 +1278,7 @@ class HGraphBuilder {
|
||||
void AddIncrementCounter(StatsCounter* counter,
|
||||
HValue* context);
|
||||
|
||||
class IfBuilder {
|
||||
class IfBuilder V8_FINAL {
|
||||
public:
|
||||
explicit IfBuilder(HGraphBuilder* builder,
|
||||
int position = RelocInfo::kNoPosition);
|
||||
@ -1402,7 +1408,7 @@ class HGraphBuilder {
|
||||
HBasicBlock* merge_block_;
|
||||
};
|
||||
|
||||
class LoopBuilder {
|
||||
class LoopBuilder V8_FINAL {
|
||||
public:
|
||||
enum Direction {
|
||||
kPreIncrement,
|
||||
@ -1443,7 +1449,7 @@ class HGraphBuilder {
|
||||
void BuildNewSpaceArrayCheck(HValue* length,
|
||||
ElementsKind kind);
|
||||
|
||||
class JSArrayBuilder {
|
||||
class JSArrayBuilder V8_FINAL {
|
||||
public:
|
||||
JSArrayBuilder(HGraphBuilder* builder,
|
||||
ElementsKind kind,
|
||||
@ -1642,12 +1648,13 @@ inline HInstruction* HGraphBuilder::NewUncasted<HContext>() {
|
||||
}
|
||||
|
||||
|
||||
class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor {
|
||||
class HOptimizedGraphBuilder V8_FINAL
|
||||
: public HGraphBuilder, public AstVisitor {
|
||||
public:
|
||||
// A class encapsulating (lazily-allocated) break and continue blocks for
|
||||
// a breakable statement. Separated from BreakAndContinueScope so that it
|
||||
// can have a separate lifetime.
|
||||
class BreakAndContinueInfo BASE_EMBEDDED {
|
||||
class BreakAndContinueInfo V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit BreakAndContinueInfo(BreakableStatement* target,
|
||||
int drop_extra = 0)
|
||||
@ -1673,7 +1680,7 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor {
|
||||
|
||||
// A helper class to maintain a stack of current BreakAndContinueInfo
|
||||
// structures mirroring BreakableStatement nesting.
|
||||
class BreakAndContinueScope BASE_EMBEDDED {
|
||||
class BreakAndContinueScope V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
BreakAndContinueScope(BreakAndContinueInfo* info,
|
||||
HOptimizedGraphBuilder* owner)
|
||||
@ -1699,7 +1706,7 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor {
|
||||
|
||||
explicit HOptimizedGraphBuilder(CompilationInfo* info);
|
||||
|
||||
virtual bool BuildGraph();
|
||||
virtual bool BuildGraph() V8_OVERRIDE;
|
||||
|
||||
// Simple accessors.
|
||||
BreakAndContinueScope* break_scope() const { return break_scope_; }
|
||||
@ -1885,9 +1892,9 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor {
|
||||
template <class Instruction> HInstruction* PreProcessCall(Instruction* call);
|
||||
|
||||
void SetUpScope(Scope* scope);
|
||||
virtual void VisitStatements(ZoneList<Statement*>* statements);
|
||||
virtual void VisitStatements(ZoneList<Statement*>* statements) V8_OVERRIDE;
|
||||
|
||||
#define DECLARE_VISIT(type) virtual void Visit##type(type* node);
|
||||
#define DECLARE_VISIT(type) virtual void Visit##type(type* node) V8_OVERRIDE;
|
||||
AST_NODE_LIST(DECLARE_VISIT)
|
||||
#undef DECLARE_VISIT
|
||||
|
||||
@ -2166,7 +2173,7 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor {
|
||||
Zone* AstContext::zone() const { return owner_->zone(); }
|
||||
|
||||
|
||||
class HStatistics: public Malloced {
|
||||
class HStatistics V8_FINAL: public Malloced {
|
||||
public:
|
||||
HStatistics()
|
||||
: timing_(5),
|
||||
@ -2225,7 +2232,7 @@ class HPhase : public CompilationPhase {
|
||||
};
|
||||
|
||||
|
||||
class HTracer: public Malloced {
|
||||
class HTracer V8_FINAL : public Malloced {
|
||||
public:
|
||||
explicit HTracer(int isolate_id)
|
||||
: trace_(&string_allocator_), indent_(0) {
|
||||
@ -2246,7 +2253,7 @@ class HTracer: public Malloced {
|
||||
void TraceLiveRanges(const char* name, LAllocator* allocator);
|
||||
|
||||
private:
|
||||
class Tag BASE_EMBEDDED {
|
||||
class Tag V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
Tag(HTracer* tracer, const char* name) {
|
||||
name_ = name;
|
||||
@ -2311,7 +2318,7 @@ class HTracer: public Malloced {
|
||||
};
|
||||
|
||||
|
||||
class NoObservableSideEffectsScope {
|
||||
class NoObservableSideEffectsScope V8_FINAL {
|
||||
public:
|
||||
explicit NoObservableSideEffectsScope(HGraphBuilder* builder) :
|
||||
builder_(builder) {
|
||||
|
@ -48,7 +48,7 @@ static SaveFPRegsMode GetSaveFPRegsMode() {
|
||||
|
||||
// When invoking builtins, we need to record the safepoint in the middle of
|
||||
// the invoke instruction sequence generated by the macro assembler.
|
||||
class SafepointGenerator : public CallWrapper {
|
||||
class SafepointGenerator V8_FINAL : public CallWrapper {
|
||||
public:
|
||||
SafepointGenerator(LCodeGen* codegen,
|
||||
LPointerMap* pointers,
|
||||
@ -56,11 +56,11 @@ class SafepointGenerator : public CallWrapper {
|
||||
: codegen_(codegen),
|
||||
pointers_(pointers),
|
||||
deopt_mode_(mode) {}
|
||||
virtual ~SafepointGenerator() { }
|
||||
virtual ~SafepointGenerator() {}
|
||||
|
||||
virtual void BeforeCall(int call_size) const {}
|
||||
virtual void BeforeCall(int call_size) const V8_OVERRIDE {}
|
||||
|
||||
virtual void AfterCall() const {
|
||||
virtual void AfterCall() const V8_OVERRIDE {
|
||||
codegen_->RecordSafepoint(pointers_, deopt_mode_);
|
||||
}
|
||||
|
||||
@ -2816,15 +2816,15 @@ void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr) {
|
||||
class DeferredInstanceOfKnownGlobal: public LDeferredCode {
|
||||
class DeferredInstanceOfKnownGlobal V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredInstanceOfKnownGlobal(LCodeGen* codegen,
|
||||
LInstanceOfKnownGlobal* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceOfKnownGlobal(instr_, &map_check_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
Label* map_check() { return &map_check_; }
|
||||
private:
|
||||
LInstanceOfKnownGlobal* instr_;
|
||||
@ -3784,14 +3784,14 @@ void LCodeGen::EmitIntegerMathAbs(LMathAbs* instr) {
|
||||
|
||||
void LCodeGen::DoMathAbs(LMathAbs* instr) {
|
||||
// Class for deferred case.
|
||||
class DeferredMathAbsTaggedHeapNumber: public LDeferredCode {
|
||||
class DeferredMathAbsTaggedHeapNumber V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredMathAbsTaggedHeapNumber(LCodeGen* codegen, LMathAbs* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredMathAbsTaggedHeapNumber(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LMathAbs* instr_;
|
||||
};
|
||||
@ -4024,12 +4024,12 @@ void LCodeGen::DoPower(LPower* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoRandom(LRandom* instr) {
|
||||
class DeferredDoRandom: public LDeferredCode {
|
||||
class DeferredDoRandom V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredDoRandom(LCodeGen* codegen, LRandom* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LRandom* instr_;
|
||||
};
|
||||
@ -4759,12 +4759,14 @@ void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
class DeferredStringCharCodeAt: public LDeferredCode {
|
||||
class DeferredStringCharCodeAt V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharCodeAt(LCodeGen* codegen, LStringCharCodeAt* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharCodeAt(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharCodeAt(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharCodeAt* instr_;
|
||||
};
|
||||
@ -4814,12 +4816,14 @@ void LCodeGen::DoDeferredStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharFromCode(LStringCharFromCode* instr) {
|
||||
class DeferredStringCharFromCode: public LDeferredCode {
|
||||
class DeferredStringCharFromCode V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharFromCode(LCodeGen* codegen, LStringCharFromCode* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharFromCode(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharFromCode(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharFromCode* instr_;
|
||||
};
|
||||
@ -4906,14 +4910,14 @@ void LCodeGen::DoUint32ToDouble(LUint32ToDouble* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
||||
class DeferredNumberTagI: public LDeferredCode {
|
||||
class DeferredNumberTagI V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagI(LCodeGen* codegen, LNumberTagI* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagI(instr_, instr_->value(), SIGNED_INT32);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagI* instr_;
|
||||
};
|
||||
@ -4930,14 +4934,14 @@ void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagU(LNumberTagU* instr) {
|
||||
class DeferredNumberTagU: public LDeferredCode {
|
||||
class DeferredNumberTagU V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagU(LCodeGen* codegen, LNumberTagU* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagI(instr_, instr_->value(), UNSIGNED_INT32);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagU* instr_;
|
||||
};
|
||||
@ -5033,12 +5037,14 @@ void LCodeGen::DoDeferredNumberTagI(LInstruction* instr,
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagD(LNumberTagD* instr) {
|
||||
class DeferredNumberTagD: public LDeferredCode {
|
||||
class DeferredNumberTagD V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagD(LCodeGen* codegen, LNumberTagD* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredNumberTagD(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagD(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagD* instr_;
|
||||
};
|
||||
@ -5332,12 +5338,14 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoTaggedToI(LTaggedToI* instr) {
|
||||
class DeferredTaggedToI: public LDeferredCode {
|
||||
class DeferredTaggedToI V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredTaggedToI(LCodeGen* codegen, LTaggedToI* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredTaggedToI(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredTaggedToI(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LTaggedToI* instr_;
|
||||
};
|
||||
@ -5491,12 +5499,14 @@ void LCodeGen::DoDeferredTaggedToINoSSE2(LTaggedToINoSSE2* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoTaggedToINoSSE2(LTaggedToINoSSE2* instr) {
|
||||
class DeferredTaggedToINoSSE2: public LDeferredCode {
|
||||
class DeferredTaggedToINoSSE2 V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredTaggedToINoSSE2(LCodeGen* codegen, LTaggedToINoSSE2* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredTaggedToINoSSE2(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredTaggedToINoSSE2(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LTaggedToINoSSE2* instr_;
|
||||
};
|
||||
@ -5728,17 +5738,17 @@ void LCodeGen::DoDeferredInstanceMigration(LCheckMaps* instr, Register object) {
|
||||
|
||||
|
||||
void LCodeGen::DoCheckMaps(LCheckMaps* instr) {
|
||||
class DeferredCheckMaps: public LDeferredCode {
|
||||
class DeferredCheckMaps V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredCheckMaps(LCodeGen* codegen, LCheckMaps* instr, Register object)
|
||||
: LDeferredCode(codegen), instr_(instr), object_(object) {
|
||||
SetExit(check_maps());
|
||||
}
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceMigration(instr_, object_);
|
||||
}
|
||||
Label* check_maps() { return &check_maps_; }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LCheckMaps* instr_;
|
||||
Label check_maps_;
|
||||
@ -5951,12 +5961,14 @@ void LCodeGen::DoClampTToUint8NoSSE2(LClampTToUint8NoSSE2* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoAllocate(LAllocate* instr) {
|
||||
class DeferredAllocate: public LDeferredCode {
|
||||
class DeferredAllocate V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredAllocate(LCodeGen* codegen, LAllocate* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredAllocate(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredAllocate(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LAllocate* instr_;
|
||||
};
|
||||
@ -6300,12 +6312,14 @@ void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStackCheck(LStackCheck* instr) {
|
||||
class DeferredStackCheck: public LDeferredCode {
|
||||
class DeferredStackCheck V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStackCheck(LCodeGen* codegen, LStackCheck* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStackCheck(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStackCheck(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStackCheck* instr_;
|
||||
};
|
||||
|
@ -45,7 +45,7 @@ class LDeferredCode;
|
||||
class LGapNode;
|
||||
class SafepointGenerator;
|
||||
|
||||
class LCodeGen BASE_EMBEDDED {
|
||||
class LCodeGen V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info)
|
||||
: zone_(info->zone()),
|
||||
@ -452,7 +452,7 @@ class LCodeGen BASE_EMBEDDED {
|
||||
|
||||
int old_position_;
|
||||
|
||||
class PushSafepointRegistersScope BASE_EMBEDDED {
|
||||
class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit PushSafepointRegistersScope(LCodeGen* codegen)
|
||||
: codegen_(codegen) {
|
||||
@ -479,7 +479,7 @@ class LCodeGen BASE_EMBEDDED {
|
||||
};
|
||||
|
||||
|
||||
class LDeferredCode: public ZoneObject {
|
||||
class LDeferredCode : public ZoneObject {
|
||||
public:
|
||||
explicit LDeferredCode(LCodeGen* codegen)
|
||||
: codegen_(codegen),
|
||||
@ -488,7 +488,7 @@ class LDeferredCode: public ZoneObject {
|
||||
codegen->AddDeferredCode(this);
|
||||
}
|
||||
|
||||
virtual ~LDeferredCode() { }
|
||||
virtual ~LDeferredCode() {}
|
||||
virtual void Generate() = 0;
|
||||
virtual LInstruction* instr() = 0;
|
||||
|
||||
|
@ -38,7 +38,7 @@ namespace internal {
|
||||
class LCodeGen;
|
||||
class LGapResolver;
|
||||
|
||||
class LGapResolver BASE_EMBEDDED {
|
||||
class LGapResolver V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit LGapResolver(LCodeGen* owner);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -43,7 +43,7 @@ namespace internal {
|
||||
V(DoubleRegister, DOUBLE_REGISTER)
|
||||
|
||||
|
||||
class LOperand: public ZoneObject {
|
||||
class LOperand : public ZoneObject {
|
||||
public:
|
||||
enum Kind {
|
||||
INVALID,
|
||||
@ -90,7 +90,7 @@ class LOperand: public ZoneObject {
|
||||
};
|
||||
|
||||
|
||||
class LUnallocated: public LOperand {
|
||||
class LUnallocated : public LOperand {
|
||||
public:
|
||||
enum BasicPolicy {
|
||||
FIXED_SLOT,
|
||||
@ -271,7 +271,7 @@ class LUnallocated: public LOperand {
|
||||
};
|
||||
|
||||
|
||||
class LMoveOperands BASE_EMBEDDED {
|
||||
class LMoveOperands V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
LMoveOperands(LOperand* source, LOperand* destination)
|
||||
: source_(source), destination_(destination) {
|
||||
@ -317,7 +317,7 @@ class LMoveOperands BASE_EMBEDDED {
|
||||
};
|
||||
|
||||
|
||||
class LConstantOperand: public LOperand {
|
||||
class LConstantOperand V8_FINAL : public LOperand {
|
||||
public:
|
||||
static LConstantOperand* Create(int index, Zone* zone) {
|
||||
ASSERT(index >= 0);
|
||||
@ -342,7 +342,7 @@ class LConstantOperand: public LOperand {
|
||||
};
|
||||
|
||||
|
||||
class LArgument: public LOperand {
|
||||
class LArgument V8_FINAL : public LOperand {
|
||||
public:
|
||||
explicit LArgument(int index) : LOperand(ARGUMENT, index) { }
|
||||
|
||||
@ -353,7 +353,7 @@ class LArgument: public LOperand {
|
||||
};
|
||||
|
||||
|
||||
class LStackSlot: public LOperand {
|
||||
class LStackSlot V8_FINAL : public LOperand {
|
||||
public:
|
||||
static LStackSlot* Create(int index, Zone* zone) {
|
||||
ASSERT(index >= 0);
|
||||
@ -378,7 +378,7 @@ class LStackSlot: public LOperand {
|
||||
};
|
||||
|
||||
|
||||
class LDoubleStackSlot: public LOperand {
|
||||
class LDoubleStackSlot V8_FINAL : public LOperand {
|
||||
public:
|
||||
static LDoubleStackSlot* Create(int index, Zone* zone) {
|
||||
ASSERT(index >= 0);
|
||||
@ -403,7 +403,7 @@ class LDoubleStackSlot: public LOperand {
|
||||
};
|
||||
|
||||
|
||||
class LRegister: public LOperand {
|
||||
class LRegister V8_FINAL : public LOperand {
|
||||
public:
|
||||
static LRegister* Create(int index, Zone* zone) {
|
||||
ASSERT(index >= 0);
|
||||
@ -428,7 +428,7 @@ class LRegister: public LOperand {
|
||||
};
|
||||
|
||||
|
||||
class LDoubleRegister: public LOperand {
|
||||
class LDoubleRegister V8_FINAL : public LOperand {
|
||||
public:
|
||||
static LDoubleRegister* Create(int index, Zone* zone) {
|
||||
ASSERT(index >= 0);
|
||||
@ -453,7 +453,7 @@ class LDoubleRegister: public LOperand {
|
||||
};
|
||||
|
||||
|
||||
class LParallelMove : public ZoneObject {
|
||||
class LParallelMove V8_FINAL : public ZoneObject {
|
||||
public:
|
||||
explicit LParallelMove(Zone* zone) : move_operands_(4, zone) { }
|
||||
|
||||
@ -474,7 +474,7 @@ class LParallelMove : public ZoneObject {
|
||||
};
|
||||
|
||||
|
||||
class LPointerMap: public ZoneObject {
|
||||
class LPointerMap V8_FINAL : public ZoneObject {
|
||||
public:
|
||||
explicit LPointerMap(int position, Zone* zone)
|
||||
: pointer_operands_(8, zone),
|
||||
@ -510,7 +510,7 @@ class LPointerMap: public ZoneObject {
|
||||
};
|
||||
|
||||
|
||||
class LEnvironment: public ZoneObject {
|
||||
class LEnvironment V8_FINAL : public ZoneObject {
|
||||
public:
|
||||
LEnvironment(Handle<JSFunction> closure,
|
||||
FrameType frame_type,
|
||||
@ -655,7 +655,7 @@ class LEnvironment: public ZoneObject {
|
||||
|
||||
|
||||
// Iterates over the non-null, non-constant operands in an environment.
|
||||
class ShallowIterator BASE_EMBEDDED {
|
||||
class ShallowIterator V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit ShallowIterator(LEnvironment* env)
|
||||
: env_(env),
|
||||
@ -699,7 +699,7 @@ class ShallowIterator BASE_EMBEDDED {
|
||||
|
||||
|
||||
// Iterator for non-null, non-constant operands incl. outer environments.
|
||||
class DeepIterator BASE_EMBEDDED {
|
||||
class DeepIterator V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit DeepIterator(LEnvironment* env)
|
||||
: current_iterator_(env) {
|
||||
@ -736,7 +736,7 @@ class LLabel;
|
||||
|
||||
// Superclass providing data and behavior common to all the
|
||||
// arch-specific LPlatformChunk classes.
|
||||
class LChunk: public ZoneObject {
|
||||
class LChunk : public ZoneObject {
|
||||
public:
|
||||
static LChunk* NewChunk(HGraph* graph);
|
||||
|
||||
|
@ -36,7 +36,7 @@ namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
|
||||
class SafepointGenerator : public CallWrapper {
|
||||
class SafepointGenerator V8_FINAL : public CallWrapper {
|
||||
public:
|
||||
SafepointGenerator(LCodeGen* codegen,
|
||||
LPointerMap* pointers,
|
||||
@ -44,11 +44,11 @@ class SafepointGenerator : public CallWrapper {
|
||||
: codegen_(codegen),
|
||||
pointers_(pointers),
|
||||
deopt_mode_(mode) { }
|
||||
virtual ~SafepointGenerator() { }
|
||||
virtual ~SafepointGenerator() {}
|
||||
|
||||
virtual void BeforeCall(int call_size) const { }
|
||||
virtual void BeforeCall(int call_size) const V8_OVERRIDE {}
|
||||
|
||||
virtual void AfterCall() const {
|
||||
virtual void AfterCall() const V8_OVERRIDE {
|
||||
codegen_->RecordSafepoint(pointers_, deopt_mode_);
|
||||
}
|
||||
|
||||
@ -2605,15 +2605,15 @@ void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr) {
|
||||
class DeferredInstanceOfKnownGlobal: public LDeferredCode {
|
||||
class DeferredInstanceOfKnownGlobal V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredInstanceOfKnownGlobal(LCodeGen* codegen,
|
||||
LInstanceOfKnownGlobal* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceOfKnownGlobal(instr_, &map_check_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
Label* map_check() { return &map_check_; }
|
||||
|
||||
private:
|
||||
@ -3599,14 +3599,14 @@ void LCodeGen::EmitIntegerMathAbs(LMathAbs* instr) {
|
||||
|
||||
void LCodeGen::DoMathAbs(LMathAbs* instr) {
|
||||
// Class for deferred case.
|
||||
class DeferredMathAbsTaggedHeapNumber: public LDeferredCode {
|
||||
class DeferredMathAbsTaggedHeapNumber V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredMathAbsTaggedHeapNumber(LCodeGen* codegen, LMathAbs* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredMathAbsTaggedHeapNumber(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LMathAbs* instr_;
|
||||
};
|
||||
@ -3801,12 +3801,12 @@ void LCodeGen::DoPower(LPower* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoRandom(LRandom* instr) {
|
||||
class DeferredDoRandom: public LDeferredCode {
|
||||
class DeferredDoRandom V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredDoRandom(LCodeGen* codegen, LRandom* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LRandom* instr_;
|
||||
};
|
||||
@ -4461,12 +4461,14 @@ void LCodeGen::DoStringAdd(LStringAdd* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
class DeferredStringCharCodeAt: public LDeferredCode {
|
||||
class DeferredStringCharCodeAt V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharCodeAt(LCodeGen* codegen, LStringCharCodeAt* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharCodeAt(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharCodeAt(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharCodeAt* instr_;
|
||||
};
|
||||
@ -4513,12 +4515,14 @@ void LCodeGen::DoDeferredStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharFromCode(LStringCharFromCode* instr) {
|
||||
class DeferredStringCharFromCode: public LDeferredCode {
|
||||
class DeferredStringCharFromCode V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharFromCode(LCodeGen* codegen, LStringCharFromCode* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharFromCode(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharFromCode(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharFromCode* instr_;
|
||||
};
|
||||
@ -4604,16 +4608,16 @@ void LCodeGen::DoUint32ToDouble(LUint32ToDouble* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
||||
class DeferredNumberTagI: public LDeferredCode {
|
||||
class DeferredNumberTagI V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagI(LCodeGen* codegen, LNumberTagI* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagI(instr_,
|
||||
instr_->value(),
|
||||
SIGNED_INT32);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagI* instr_;
|
||||
};
|
||||
@ -4630,16 +4634,16 @@ void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagU(LNumberTagU* instr) {
|
||||
class DeferredNumberTagU: public LDeferredCode {
|
||||
class DeferredNumberTagU V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagU(LCodeGen* codegen, LNumberTagU* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagI(instr_,
|
||||
instr_->value(),
|
||||
UNSIGNED_INT32);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagU* instr_;
|
||||
};
|
||||
@ -4710,12 +4714,14 @@ void LCodeGen::DoDeferredNumberTagI(LInstruction* instr,
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagD(LNumberTagD* instr) {
|
||||
class DeferredNumberTagD: public LDeferredCode {
|
||||
class DeferredNumberTagD V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagD(LCodeGen* codegen, LNumberTagD* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredNumberTagD(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagD(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagD* instr_;
|
||||
};
|
||||
@ -4914,12 +4920,14 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoTaggedToI(LTaggedToI* instr) {
|
||||
class DeferredTaggedToI: public LDeferredCode {
|
||||
class DeferredTaggedToI V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredTaggedToI(LCodeGen* codegen, LTaggedToI* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredTaggedToI(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredTaggedToI(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LTaggedToI* instr_;
|
||||
};
|
||||
@ -5132,17 +5140,17 @@ void LCodeGen::DoDeferredInstanceMigration(LCheckMaps* instr, Register object) {
|
||||
|
||||
|
||||
void LCodeGen::DoCheckMaps(LCheckMaps* instr) {
|
||||
class DeferredCheckMaps: public LDeferredCode {
|
||||
class DeferredCheckMaps V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredCheckMaps(LCodeGen* codegen, LCheckMaps* instr, Register object)
|
||||
: LDeferredCode(codegen), instr_(instr), object_(object) {
|
||||
SetExit(check_maps());
|
||||
}
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceMigration(instr_, object_);
|
||||
}
|
||||
Label* check_maps() { return &check_maps_; }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LCheckMaps* instr_;
|
||||
Label check_maps_;
|
||||
@ -5231,12 +5239,14 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoAllocate(LAllocate* instr) {
|
||||
class DeferredAllocate: public LDeferredCode {
|
||||
class DeferredAllocate V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredAllocate(LCodeGen* codegen, LAllocate* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredAllocate(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredAllocate(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LAllocate* instr_;
|
||||
};
|
||||
@ -5633,12 +5643,14 @@ void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStackCheck(LStackCheck* instr) {
|
||||
class DeferredStackCheck: public LDeferredCode {
|
||||
class DeferredStackCheck V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStackCheck(LCodeGen* codegen, LStackCheck* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStackCheck(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStackCheck(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStackCheck* instr_;
|
||||
};
|
||||
|
@ -42,7 +42,7 @@ namespace internal {
|
||||
class LDeferredCode;
|
||||
class SafepointGenerator;
|
||||
|
||||
class LCodeGen BASE_EMBEDDED {
|
||||
class LCodeGen V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info)
|
||||
: zone_(info->zone()),
|
||||
@ -441,7 +441,7 @@ class LCodeGen BASE_EMBEDDED {
|
||||
|
||||
int old_position_;
|
||||
|
||||
class PushSafepointRegistersScope BASE_EMBEDDED {
|
||||
class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
PushSafepointRegistersScope(LCodeGen* codegen,
|
||||
Safepoint::Kind kind)
|
||||
@ -489,7 +489,7 @@ class LCodeGen BASE_EMBEDDED {
|
||||
};
|
||||
|
||||
|
||||
class LDeferredCode: public ZoneObject {
|
||||
class LDeferredCode : public ZoneObject {
|
||||
public:
|
||||
explicit LDeferredCode(LCodeGen* codegen)
|
||||
: codegen_(codegen),
|
||||
@ -498,7 +498,7 @@ class LDeferredCode: public ZoneObject {
|
||||
codegen->AddDeferredCode(this);
|
||||
}
|
||||
|
||||
virtual ~LDeferredCode() { }
|
||||
virtual ~LDeferredCode() {}
|
||||
virtual void Generate() = 0;
|
||||
virtual LInstruction* instr() = 0;
|
||||
|
||||
|
@ -38,7 +38,7 @@ namespace internal {
|
||||
class LCodeGen;
|
||||
class LGapResolver;
|
||||
|
||||
class LGapResolver BASE_EMBEDDED {
|
||||
class LGapResolver V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit LGapResolver(LCodeGen* owner);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -39,7 +39,7 @@ namespace internal {
|
||||
|
||||
// When invoking builtins, we need to record the safepoint in the middle of
|
||||
// the invoke instruction sequence generated by the macro assembler.
|
||||
class SafepointGenerator : public CallWrapper {
|
||||
class SafepointGenerator V8_FINAL : public CallWrapper {
|
||||
public:
|
||||
SafepointGenerator(LCodeGen* codegen,
|
||||
LPointerMap* pointers,
|
||||
@ -47,13 +47,13 @@ class SafepointGenerator : public CallWrapper {
|
||||
: codegen_(codegen),
|
||||
pointers_(pointers),
|
||||
deopt_mode_(mode) { }
|
||||
virtual ~SafepointGenerator() { }
|
||||
virtual ~SafepointGenerator() {}
|
||||
|
||||
virtual void BeforeCall(int call_size) const {
|
||||
virtual void BeforeCall(int call_size) const V8_OVERRIDE {
|
||||
codegen_->EnsureSpaceForLazyDeopt(Deoptimizer::patch_size() - call_size);
|
||||
}
|
||||
|
||||
virtual void AfterCall() const {
|
||||
virtual void AfterCall() const V8_OVERRIDE {
|
||||
codegen_->RecordSafepoint(pointers_, deopt_mode_);
|
||||
}
|
||||
|
||||
@ -2466,15 +2466,15 @@ void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr) {
|
||||
class DeferredInstanceOfKnownGlobal: public LDeferredCode {
|
||||
class DeferredInstanceOfKnownGlobal V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredInstanceOfKnownGlobal(LCodeGen* codegen,
|
||||
LInstanceOfKnownGlobal* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceOfKnownGlobal(instr_, &map_check_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
Label* map_check() { return &map_check_; }
|
||||
private:
|
||||
LInstanceOfKnownGlobal* instr_;
|
||||
@ -3400,14 +3400,14 @@ void LCodeGen::EmitSmiMathAbs(LMathAbs* instr) {
|
||||
|
||||
void LCodeGen::DoMathAbs(LMathAbs* instr) {
|
||||
// Class for deferred case.
|
||||
class DeferredMathAbsTaggedHeapNumber: public LDeferredCode {
|
||||
class DeferredMathAbsTaggedHeapNumber V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredMathAbsTaggedHeapNumber(LCodeGen* codegen, LMathAbs* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredMathAbsTaggedHeapNumber(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LMathAbs* instr_;
|
||||
};
|
||||
@ -3632,12 +3632,12 @@ void LCodeGen::DoPower(LPower* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoRandom(LRandom* instr) {
|
||||
class DeferredDoRandom: public LDeferredCode {
|
||||
class DeferredDoRandom V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredDoRandom(LCodeGen* codegen, LRandom* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE { codegen()->DoDeferredRandom(instr_); }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LRandom* instr_;
|
||||
};
|
||||
@ -4322,12 +4322,14 @@ void LCodeGen::DoStringAdd(LStringAdd* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
class DeferredStringCharCodeAt: public LDeferredCode {
|
||||
class DeferredStringCharCodeAt V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharCodeAt(LCodeGen* codegen, LStringCharCodeAt* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharCodeAt(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharCodeAt(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharCodeAt* instr_;
|
||||
};
|
||||
@ -4374,12 +4376,14 @@ void LCodeGen::DoDeferredStringCharCodeAt(LStringCharCodeAt* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStringCharFromCode(LStringCharFromCode* instr) {
|
||||
class DeferredStringCharFromCode: public LDeferredCode {
|
||||
class DeferredStringCharFromCode V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStringCharFromCode(LCodeGen* codegen, LStringCharFromCode* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStringCharFromCode(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStringCharFromCode(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStringCharFromCode* instr_;
|
||||
};
|
||||
@ -4468,14 +4472,14 @@ void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagU(LNumberTagU* instr) {
|
||||
class DeferredNumberTagU: public LDeferredCode {
|
||||
class DeferredNumberTagU V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagU(LCodeGen* codegen, LNumberTagU* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagU(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagU* instr_;
|
||||
};
|
||||
@ -4531,12 +4535,14 @@ void LCodeGen::DoDeferredNumberTagU(LNumberTagU* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoNumberTagD(LNumberTagD* instr) {
|
||||
class DeferredNumberTagD: public LDeferredCode {
|
||||
class DeferredNumberTagD V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredNumberTagD(LCodeGen* codegen, LNumberTagD* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredNumberTagD(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredNumberTagD(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LNumberTagD* instr_;
|
||||
};
|
||||
@ -4698,12 +4704,14 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoTaggedToI(LTaggedToI* instr) {
|
||||
class DeferredTaggedToI: public LDeferredCode {
|
||||
class DeferredTaggedToI V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredTaggedToI(LCodeGen* codegen, LTaggedToI* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredTaggedToI(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredTaggedToI(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LTaggedToI* instr_;
|
||||
};
|
||||
@ -4900,17 +4908,17 @@ void LCodeGen::DoDeferredInstanceMigration(LCheckMaps* instr, Register object) {
|
||||
|
||||
|
||||
void LCodeGen::DoCheckMaps(LCheckMaps* instr) {
|
||||
class DeferredCheckMaps: public LDeferredCode {
|
||||
class DeferredCheckMaps V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredCheckMaps(LCodeGen* codegen, LCheckMaps* instr, Register object)
|
||||
: LDeferredCode(codegen), instr_(instr), object_(object) {
|
||||
SetExit(check_maps());
|
||||
}
|
||||
virtual void Generate() {
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredInstanceMigration(instr_, object_);
|
||||
}
|
||||
Label* check_maps() { return &check_maps_; }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LCheckMaps* instr_;
|
||||
Label check_maps_;
|
||||
@ -5000,12 +5008,14 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoAllocate(LAllocate* instr) {
|
||||
class DeferredAllocate: public LDeferredCode {
|
||||
class DeferredAllocate V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredAllocate(LCodeGen* codegen, LAllocate* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredAllocate(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredAllocate(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LAllocate* instr_;
|
||||
};
|
||||
@ -5361,12 +5371,14 @@ void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
|
||||
|
||||
void LCodeGen::DoStackCheck(LStackCheck* instr) {
|
||||
class DeferredStackCheck: public LDeferredCode {
|
||||
class DeferredStackCheck V8_FINAL : public LDeferredCode {
|
||||
public:
|
||||
DeferredStackCheck(LCodeGen* codegen, LStackCheck* instr)
|
||||
: LDeferredCode(codegen), instr_(instr) { }
|
||||
virtual void Generate() { codegen()->DoDeferredStackCheck(instr_); }
|
||||
virtual LInstruction* instr() { return instr_; }
|
||||
virtual void Generate() V8_OVERRIDE {
|
||||
codegen()->DoDeferredStackCheck(instr_);
|
||||
}
|
||||
virtual LInstruction* instr() V8_OVERRIDE { return instr_; }
|
||||
private:
|
||||
LStackCheck* instr_;
|
||||
};
|
||||
|
@ -44,7 +44,7 @@ namespace internal {
|
||||
class LDeferredCode;
|
||||
class SafepointGenerator;
|
||||
|
||||
class LCodeGen BASE_EMBEDDED {
|
||||
class LCodeGen V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info)
|
||||
: zone_(info->zone()),
|
||||
@ -384,7 +384,7 @@ class LCodeGen BASE_EMBEDDED {
|
||||
|
||||
int old_position_;
|
||||
|
||||
class PushSafepointRegistersScope BASE_EMBEDDED {
|
||||
class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit PushSafepointRegistersScope(LCodeGen* codegen)
|
||||
: codegen_(codegen) {
|
||||
@ -420,7 +420,7 @@ class LDeferredCode: public ZoneObject {
|
||||
codegen->AddDeferredCode(this);
|
||||
}
|
||||
|
||||
virtual ~LDeferredCode() { }
|
||||
virtual ~LDeferredCode() {}
|
||||
virtual void Generate() = 0;
|
||||
virtual LInstruction* instr() = 0;
|
||||
|
||||
|
@ -38,7 +38,7 @@ namespace internal {
|
||||
class LCodeGen;
|
||||
class LGapResolver;
|
||||
|
||||
class LGapResolver BASE_EMBEDDED {
|
||||
class LGapResolver V8_FINAL BASE_EMBEDDED {
|
||||
public:
|
||||
explicit LGapResolver(LCodeGen* owner);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user