Fix compile of MIPS port
authorsgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 11 Mar 2010 10:56:49 +0000 (10:56 +0000)
committersgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 11 Mar 2010 10:56:49 +0000 (10:56 +0000)
TBR=alexandre.rames@gmail.com
Review URL: http://codereview.chromium.org/870002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/mips/codegen-mips-inl.h
src/mips/codegen-mips.cc
src/mips/codegen-mips.h
src/mips/virtual-frame-mips.h

index 2a77715a3bc1f1b3dc98a69818766e2a34619222..904dd74e9d8ff54cd299cdfef6e1bdaba88ebf51 100644 (file)
@@ -38,16 +38,6 @@ namespace internal {
 
 void DeferredCode::Jump() { __ b(&entry_label_); }
 
-void CodeGenerator::GenerateMathSin(ZoneList<Expression*>* args) {
-  UNIMPLEMENTED_MIPS();
-}
-
-
-void CodeGenerator::GenerateMathCos(ZoneList<Expression*>* args) {
-  UNIMPLEMENTED_MIPS();
-}
-
-
 #undef __
 
 } }  // namespace v8::internal
index facccc288d09cefa228226573235f41b1f0bbe65..7b32180efbb2dffabb16a7ab8ee1e4533c20d3b8 100644 (file)
@@ -31,6 +31,7 @@
 #include "bootstrapper.h"
 #include "codegen-inl.h"
 #include "debug.h"
+#include "ic-inl.h"
 #include "parser.h"
 #include "register-allocator-inl.h"
 #include "runtime.h"
@@ -297,6 +298,16 @@ void CodeGenerator::GenerateMathPow(ZoneList<Expression*>* args) {
 }
 
 
+void CodeGenerator::GenerateMathCos(ZoneList<Expression*>* args) {
+  UNIMPLEMENTED_MIPS();
+}
+
+
+void CodeGenerator::GenerateMathSin(ZoneList<Expression*>* args) {
+  UNIMPLEMENTED_MIPS();
+}
+
+
 void CodeGenerator::GenerateMathSqrt(ZoneList<Expression*>* args) {
   UNIMPLEMENTED_MIPS();
 }
@@ -335,7 +346,7 @@ void CodeGenerator::GenerateArgumentsLength(ZoneList<Expression*>* args) {
 }
 
 
-void CodeGenerator::GenerateArgumentsAccess(ZoneList<Expression*>* args) {
+void CodeGenerator::GenerateArguments(ZoneList<Expression*>* args) {
   UNIMPLEMENTED_MIPS();
 }
 
@@ -429,6 +440,11 @@ bool CodeGenerator::HasValidEntryRegisters() { return true; }
 #define __ ACCESS_MASM(masm)
 
 
+Handle<Code> GetBinaryOpStub(int key, BinaryOpIC::TypeInfo type_info) {
+  return Handle<Code>::null();
+}
+
+
 // On entry a0 and a1 are the things to be compared.  On exit v0 is 0,
 // positive or negative to indicate the result of the comparison.
 void CompareStub::Generate(MacroAssembler* masm) {
index 987dcca879a2d2bf31918af9cc1bbc8121ada857..3f78fcd5f40b96cd38198edc5c845f47aee6c9e4 100644 (file)
@@ -154,6 +154,10 @@ class CodeGenerator: public AstVisitor {
   // used by the debugger to patch the JS return sequence.
   static const int kJSReturnSequenceLength = 6;
 
+  // If the name is an inline runtime function call return the number of
+  // expected arguments. Otherwise return -1.
+  static int InlineRuntimeCallArgumentsCount(Handle<String> name);
+
  private:
   // Construction/Destruction.
   explicit CodeGenerator(MacroAssembler* masm);
@@ -188,6 +192,7 @@ class CodeGenerator: public AstVisitor {
   struct InlineRuntimeLUT {
     void (CodeGenerator::*method)(ZoneList<Expression*>*);
     const char* name;
+    int nargs;
   };
 
   static InlineRuntimeLUT* FindInlineRuntimeLUT(Handle<String> name);
@@ -216,7 +221,7 @@ class CodeGenerator: public AstVisitor {
 
   // Support for arguments.length and arguments[?].
   void GenerateArgumentsLength(ZoneList<Expression*>* args);
-  void GenerateArgumentsAccess(ZoneList<Expression*>* args);
+  void GenerateArguments(ZoneList<Expression*>* args);
 
   // Support for accessing the class and value fields of an object.
   void GenerateClassOf(ZoneList<Expression*>* args);
@@ -246,15 +251,11 @@ class CodeGenerator: public AstVisitor {
   void GenerateRegExpExec(ZoneList<Expression*>* args);
   void GenerateNumberToString(ZoneList<Expression*>* args);
 
-  // Fast support for Math.pow().
-  void GenerateMathPow(ZoneList<Expression*>* args);
-  // Fast support for Math.sqrt().
+  // Fast call to math functions.
   void GenerateMathPow(ZoneList<Expression*>* args);
-
-
-  // Fast support for Math.sin and Math.cos.
-  inline void GenerateMathSin(ZoneList<Expression*>* args);
-  inline void GenerateMathCos(ZoneList<Expression*>* args);
+  void GenerateMathSin(ZoneList<Expression*>* args);
+  void GenerateMathCos(ZoneList<Expression*>* args);
+  void GenerateMathSqrt(ZoneList<Expression*>* args);
 
   // Simple condition analysis.
   enum ConditionAnalysis {
index e5bc93fa288fd735eb6acbffa55ddca3ebb02014..77c795c9f9ccf900fa3e015352a12b556b815641 100644 (file)
@@ -71,7 +71,7 @@ class VirtualFrame : public ZoneObject {
 
   // Create a duplicate of an existing valid frame element.
   FrameElement CopyElementAt(int index,
-                             NumberInfo::Type info = NumberInfo::kUnknown);
+                             NumberInfo info = NumberInfo::Unknown());
 
   // The number of elements on the virtual frame.
   int element_count() { return elements_.length(); }
@@ -367,7 +367,7 @@ class VirtualFrame : public ZoneObject {
   void EmitMultiPushReversed(RegList regs);  // higher first
 
   // Push an element on the virtual frame.
-  inline void Push(Register reg, NumberInfo::Type info = NumberInfo::kUnknown);
+  inline void Push(Register reg, NumberInfo info = NumberInfo::Unknown());
   inline void Push(Handle<Object> value);
   inline void Push(Smi* value);
 
@@ -391,6 +391,8 @@ class VirtualFrame : public ZoneObject {
   // 'a' registers are arguments register a0 to a3.
   void EmitArgumentSlots(RegList reglist);
 
+  inline void SetTypeForLocalAt(int index, NumberInfo info);
+
  private:
   static const int kLocal0Offset = JavaScriptFrameConstants::kLocal0Offset;
   static const int kFunctionOffset = JavaScriptFrameConstants::kFunctionOffset;