Optimized double-to-integer conversions in bit operations by using SSE3 instructions if available.

Optimized initialization sequences that store to multiple properties of the same object.

Changed the D8 debugger frontend to use JSON messages.

Force garbage collections when disposing contexts.

Align code objects at 32-byte boundaries.


git-svn-id: http://v8.googlecode.com/svn/trunk@1388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/macro-assembler-ia32.cc b/src/macro-assembler-ia32.cc
index 80e4d3e..506f890 100644
--- a/src/macro-assembler-ia32.cc
+++ b/src/macro-assembler-ia32.cc
@@ -39,7 +39,8 @@
     : Assembler(buffer, size),
       unresolved_(0),
       generating_stub_(false),
-      allow_stub_calls_(true) {
+      allow_stub_calls_(true),
+      code_object_(Heap::undefined_value()) {
 }
 
 
@@ -317,7 +318,11 @@
   mov(ebp, Operand(esp));
   push(esi);
   push(Immediate(Smi::FromInt(type)));
-  push(Immediate(0));  // Push an empty code cache slot.
+  push(Immediate(CodeObject()));
+  if (FLAG_debug_code) {
+    cmp(Operand(esp, 0), Immediate(Factory::undefined_value()));
+    Check(not_equal, "code object not properly patched");
+  }
 }