diff options
author | Kristian Monsen <kristianm@google.com> | 2010-07-29 15:18:00 +0100 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2010-07-29 15:18:00 +0100 |
commit | 50ef84f5fad2def87d3fbc737bec4a32711fdef4 (patch) | |
tree | 72049481a445e51e78cc81ec1d114de2e87c6d1f /src/x64/codegen-x64.h | |
parent | 3bec4d28b1f388dbc06a9c4276e1a03e86c52b04 (diff) | |
download | android_external_v8-50ef84f5fad2def87d3fbc737bec4a32711fdef4.tar.gz android_external_v8-50ef84f5fad2def87d3fbc737bec4a32711fdef4.tar.bz2 android_external_v8-50ef84f5fad2def87d3fbc737bec4a32711fdef4.zip |
Update V8 to r5136 as required by WebKit r64264
Change-Id: I55b86fa101d9d53e889e2e3811fdf75f463ac3c6
Diffstat (limited to 'src/x64/codegen-x64.h')
-rw-r--r-- | src/x64/codegen-x64.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/x64/codegen-x64.h b/src/x64/codegen-x64.h index dc6f583d..f694ddeb 100644 --- a/src/x64/codegen-x64.h +++ b/src/x64/codegen-x64.h @@ -454,14 +454,26 @@ class CodeGenerator: public AstVisitor { // value in place. void StoreToSlot(Slot* slot, InitState init_state); + // Support for compiling assignment expressions. + void EmitSlotAssignment(Assignment* node); + void EmitNamedPropertyAssignment(Assignment* node); + void EmitKeyedPropertyAssignment(Assignment* node); + // Receiver is passed on the frame and not consumed. Result EmitNamedLoad(Handle<String> name, bool is_contextual); + // If the store is contextual, value is passed on the frame and consumed. + // Otherwise, receiver and value are passed on the frame and consumed. + Result EmitNamedStore(Handle<String> name, bool is_contextual); + // Load a property of an object, returning it in a Result. // The object and the property name are passed on the stack, and // not changed. Result EmitKeyedLoad(); + // Receiver, key, and value are passed on the frame and consumed. + Result EmitKeyedStore(StaticType* key_type); + // Special code for typeof expressions: Unfortunately, we must // be careful when loading the expression in 'typeof' // expressions. We are not allowed to throw reference errors for @@ -480,6 +492,13 @@ class CodeGenerator: public AstVisitor { void GenericBinaryOperation(BinaryOperation* expr, OverwriteMode overwrite_mode); + // Emits code sequence that jumps to a JumpTarget if the inputs + // are both smis. Cannot be in MacroAssembler because it takes + // advantage of TypeInfo to skip unneeded checks. + void JumpIfBothSmiUsingTypeInfo(Result* left, + Result* right, + JumpTarget* both_smi); + // Emits code sequence that jumps to deferred code if the input // is not a smi. Cannot be in MacroAssembler because it takes // advantage of TypeInfo to skip unneeded checks. |