summaryrefslogtreecommitdiffstats
path: root/src/x64/codegen-x64.h
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2010-07-29 15:18:00 +0100
committerKristian Monsen <kristianm@google.com>2010-07-29 15:18:00 +0100
commit50ef84f5fad2def87d3fbc737bec4a32711fdef4 (patch)
tree72049481a445e51e78cc81ec1d114de2e87c6d1f /src/x64/codegen-x64.h
parent3bec4d28b1f388dbc06a9c4276e1a03e86c52b04 (diff)
downloadandroid_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.h19
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.