| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/ast/scopes.h" | 5 #include "src/ast/scopes.h" |
| 6 #include "src/compiler/code-generator.h" | 6 #include "src/compiler/code-generator.h" |
| 7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
| 8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
| 9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
| 10 #include "src/compiler/osr.h" | 10 #include "src/compiler/osr.h" |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 OutOfLineRecordWrite(CodeGenerator* gen, Register object, Register index, | 218 OutOfLineRecordWrite(CodeGenerator* gen, Register object, Register index, |
| 219 Register value, Register scratch0, Register scratch1, | 219 Register value, Register scratch0, Register scratch1, |
| 220 RecordWriteMode mode) | 220 RecordWriteMode mode) |
| 221 : OutOfLineCode(gen), | 221 : OutOfLineCode(gen), |
| 222 object_(object), | 222 object_(object), |
| 223 index_(index), | 223 index_(index), |
| 224 value_(value), | 224 value_(value), |
| 225 scratch0_(scratch0), | 225 scratch0_(scratch0), |
| 226 scratch1_(scratch1), | 226 scratch1_(scratch1), |
| 227 mode_(mode), | 227 mode_(mode), |
| 228 must_save_lr_(gen->frame_access_state()->has_frame()) {} | 228 must_save_lr_(!gen->frame_access_state()->has_frame()) {} |
| 229 | 229 |
| 230 void Generate() final { | 230 void Generate() final { |
| 231 if (mode_ > RecordWriteMode::kValueIsPointer) { | 231 if (mode_ > RecordWriteMode::kValueIsPointer) { |
| 232 __ JumpIfSmi(value_, exit()); | 232 __ JumpIfSmi(value_, exit()); |
| 233 } | 233 } |
| 234 __ CheckPageFlag(value_, scratch0_, | 234 __ CheckPageFlag(value_, scratch0_, |
| 235 MemoryChunk::kPointersToHereAreInterestingMask, eq, | 235 MemoryChunk::kPointersToHereAreInterestingMask, eq, |
| 236 exit()); | 236 exit()); |
| 237 RememberedSetAction const remembered_set_action = | 237 RememberedSetAction const remembered_set_action = |
| 238 mode_ > RecordWriteMode::kValueIsMap ? EMIT_REMEMBERED_SET | 238 mode_ > RecordWriteMode::kValueIsMap ? EMIT_REMEMBERED_SET |
| (...skipping 1934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2173 padding_size -= v8::internal::Assembler::kInstrSize; | 2173 padding_size -= v8::internal::Assembler::kInstrSize; |
| 2174 } | 2174 } |
| 2175 } | 2175 } |
| 2176 } | 2176 } |
| 2177 | 2177 |
| 2178 #undef __ | 2178 #undef __ |
| 2179 | 2179 |
| 2180 } // namespace compiler | 2180 } // namespace compiler |
| 2181 } // namespace internal | 2181 } // namespace internal |
| 2182 } // namespace v8 | 2182 } // namespace v8 |
| OLD | NEW |