| Index: src/lithium.cc
|
| diff --git a/src/lithium.cc b/src/lithium.cc
|
| index 790a2182b176ac5d86e701e01395297d90c6e5ca..5b3a30332c6d88d609206e0ba3c78927399964c4 100644
|
| --- a/src/lithium.cc
|
| +++ b/src/lithium.cc
|
| @@ -450,13 +450,23 @@ Handle<Code> LChunk::Codegen() {
|
| LOG_CODE_EVENT(info()->isolate(),
|
| CodeStartLinePosInfoRecordEvent(
|
| assembler.positions_recorder()));
|
| +
|
| + Code::Flags flags = info()->flags();
|
| + Code::Kind kind = Code::ExtractKindFromFlags(flags);
|
| +
|
| + if (FLAG_enable_thumb2_crankshaft && kind == Code::OPTIMIZED_FUNCTION) {
|
| + assembler.set_thumb_mode();
|
| + }
|
| LCodeGen generator(this, &assembler, info());
|
|
|
| MarkEmptyBlocks();
|
|
|
| if (generator.GenerateCode()) {
|
| CodeGenerator::MakeCodePrologue(info(), "optimized");
|
| - Code::Flags flags = info()->flags();
|
| + if (FLAG_enable_thumb2_crankshaft && kind == Code::OPTIMIZED_FUNCTION) {
|
| + flags = Code::ComputeFlags(kind, UNINITIALIZED, Code::kNoExtraICState,
|
| + Code::NORMAL, -1, OWN_MAP, true);
|
| + }
|
| Handle<Code> code =
|
| CodeGenerator::MakeCodeEpilogue(&assembler, flags, info());
|
| generator.FinishCode(code);
|
|
|