| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_FULL_CODEGEN_H_ | 5 #ifndef V8_FULL_CODEGEN_H_ |
| 6 #define V8_FULL_CODEGEN_H_ | 6 #define V8_FULL_CODEGEN_H_ |
| 7 | 7 |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 | 9 |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 // An operand used to read/write a stack-allocated (PARAMETER or LOCAL) | 364 // An operand used to read/write a stack-allocated (PARAMETER or LOCAL) |
| 365 // variable. Writing does not need the write barrier. | 365 // variable. Writing does not need the write barrier. |
| 366 MemOperand StackOperand(Variable* var); | 366 MemOperand StackOperand(Variable* var); |
| 367 | 367 |
| 368 // An operand used to read/write a known (PARAMETER, LOCAL, or CONTEXT) | 368 // An operand used to read/write a known (PARAMETER, LOCAL, or CONTEXT) |
| 369 // variable. May emit code to traverse the context chain, loading the | 369 // variable. May emit code to traverse the context chain, loading the |
| 370 // found context into the scratch register. Writing to this operand will | 370 // found context into the scratch register. Writing to this operand will |
| 371 // need the write barrier if location is CONTEXT. | 371 // need the write barrier if location is CONTEXT. |
| 372 MemOperand VarOperand(Variable* var, Register scratch); | 372 MemOperand VarOperand(Variable* var, Register scratch); |
| 373 | 373 |
| 374 // Special visitor for a spread argument, will update a scratch register with |
| 375 // total parameter count, and push each spread value from left to right onto |
| 376 // the stack. |
| 377 void DoSpreadArgument(SpreadOperation* expr, Register arg_count); |
| 378 |
| 379 |
| 374 void VisitForEffect(Expression* expr) { | 380 void VisitForEffect(Expression* expr) { |
| 375 EffectContext context(this); | 381 EffectContext context(this); |
| 376 Visit(expr); | 382 Visit(expr); |
| 377 PrepareForBailout(expr, NO_REGISTERS); | 383 PrepareForBailout(expr, NO_REGISTERS); |
| 378 } | 384 } |
| 379 | 385 |
| 380 void VisitForAccumulatorValue(Expression* expr) { | 386 void VisitForAccumulatorValue(Expression* expr) { |
| 381 AccumulatorValueContext context(this); | 387 AccumulatorValueContext context(this); |
| 382 Visit(expr); | 388 Visit(expr); |
| 383 PrepareForBailout(expr, TOS_REG); | 389 PrepareForBailout(expr, TOS_REG); |
| (...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1047 | 1053 |
| 1048 Address start_; | 1054 Address start_; |
| 1049 Address instruction_start_; | 1055 Address instruction_start_; |
| 1050 uint32_t length_; | 1056 uint32_t length_; |
| 1051 }; | 1057 }; |
| 1052 | 1058 |
| 1053 | 1059 |
| 1054 } } // namespace v8::internal | 1060 } } // namespace v8::internal |
| 1055 | 1061 |
| 1056 #endif // V8_FULL_CODEGEN_H_ | 1062 #endif // V8_FULL_CODEGEN_H_ |
| OLD | NEW |