Revision: 6281
Author: [email protected]
Date: Wed Jan 12 03:56:41 2011
Log: Fixes needed to compile on gcc-4.4.1 on ARM.  It is still necessary
to add -fno-strict-aliasing.
Review URL: http://codereview.chromium.org/6123007
http://code.google.com/p/v8/source/detail?r=6281

Modified:
 /branches/bleeding_edge/SConstruct
 /branches/bleeding_edge/src/arm/builtins-arm.cc
 /branches/bleeding_edge/src/arm/code-stubs-arm.cc
 /branches/bleeding_edge/src/arm/ic-arm.cc
 /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.cc
 /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.h
 /branches/bleeding_edge/src/arm/stub-cache-arm.cc
 /branches/bleeding_edge/src/heap.h
 /branches/bleeding_edge/src/jsregexp.cc
 /branches/bleeding_edge/src/jsregexp.h
 /branches/bleeding_edge/src/objects-inl.h
 /branches/bleeding_edge/src/objects-visiting.h
 /branches/bleeding_edge/src/regexp-macro-assembler-irregexp.h
 /branches/bleeding_edge/src/regexp-macro-assembler-tracer.cc
 /branches/bleeding_edge/src/regexp-macro-assembler-tracer.h
 /branches/bleeding_edge/src/regexp-macro-assembler.h
 /branches/bleeding_edge/src/token.h

=======================================
--- /branches/bleeding_edge/SConstruct  Tue Jan 11 03:44:16 2011
+++ /branches/bleeding_edge/SConstruct  Wed Jan 12 03:56:41 2011
@@ -72,7 +72,6 @@
                  '-fgcse-after-reload',
                  '-frerun-cse-after-loop',
                  '-frename-registers',
-                 '-fomit-frame-pointer',
                  '-finline-limit=64',
                  '-DCAN_USE_VFP_INSTRUCTIONS=1',
                  '-DCAN_USE_ARMV7_INSTRUCTIONS=1',
@@ -143,10 +142,10 @@
       }
     },
     'mode:release': {
-      'CCFLAGS':      ['-O3', '-fomit-frame-pointer', '-fdata-sections',
+      'CCFLAGS':      ['-O2', '-fdata-sections',
                        '-ffunction-sections'],
       'os:android': {
-        'CCFLAGS':    ['-mthumb', '-Os'],
+        'CCFLAGS':    ['-mthumb'],
         'CPPDEFINES': ['SK_RELEASE', 'NDEBUG']
       }
     },
=======================================
--- /branches/bleeding_edge/src/arm/builtins-arm.cc     Tue Dec  7 03:31:57 2010
+++ /branches/bleeding_edge/src/arm/builtins-arm.cc     Wed Jan 12 03:56:41 2011
@@ -502,7 +502,7 @@

   // Load the first arguments in r0 and get rid of the rest.
   Label no_arguments;
-  __ cmp(r0, Operand(0));
+  __ cmp(r0, Operand(0, RelocInfo::NONE));
   __ b(eq, &no_arguments);
   // First args = sp[(argc - 1) * 4].
   __ sub(r0, r0, Operand(1));
@@ -546,7 +546,7 @@
     __ cmp(r4, Operand(JSValue::kSize >> kPointerSizeLog2));
     __ Assert(eq, "Unexpected string wrapper instance size");
     __ ldrb(r4, FieldMemOperand(map, Map::kUnusedPropertyFieldsOffset));
-    __ cmp(r4, Operand(0));
+    __ cmp(r4, Operand(0, RelocInfo::NONE));
     __ Assert(eq, "Unexpected unused properties of string wrapper");
   }
   __ str(map, FieldMemOperand(r0, HeapObject::kMapOffset));
=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Tue Jan 11 04:45:25 2011 +++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Wed Jan 12 03:56:41 2011
@@ -2516,7 +2516,7 @@
   if (type == OUT_OF_MEMORY) {
     // Set external caught exception to false.
ExternalReference external_caught(Top::k_external_caught_exception_address);
-    __ mov(r0, Operand(false));
+    __ mov(r0, Operand(false, RelocInfo::NONE));
     __ mov(r2, Operand(external_caught));
     __ str(r0, MemOperand(r2));

=======================================
--- /branches/bleeding_edge/src/arm/ic-arm.cc   Wed Dec 15 05:56:41 2010
+++ /branches/bleeding_edge/src/arm/ic-arm.cc   Wed Jan 12 03:56:41 2011
@@ -1591,7 +1591,7 @@
__ and_(r1, r1, Operand(kBinary32ExponentMask >> kBinary32MantissaBits));

       Label exponent_rebiased;
-      __ teq(r1, Operand(0x00));
+      __ teq(r1, Operand(0x00, RelocInfo::NONE));
       __ b(eq, &exponent_rebiased);

       __ teq(r1, Operand(0xff));
=======================================
--- /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.cc Tue Dec 7 03:01:02 2010 +++ /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.cc Wed Jan 12 03:56:41 2011
@@ -417,8 +417,8 @@


 void RegExpMacroAssemblerARM::CheckNotRegistersEqual(int reg1,
-                                                      int reg2,
- Label* on_not_equal) {
+                                                     int reg2,
+                                                     Label* on_not_equal) {
   __ ldr(r0, register_location(reg1));
   __ ldr(r1, register_location(reg2));
   __ cmp(r0, r1);
@@ -426,7 +426,7 @@
 }


-void RegExpMacroAssemblerARM::CheckNotCharacter(uint32_t c,
+void RegExpMacroAssemblerARM::CheckNotCharacter(unsigned c,
                                                 Label* on_not_equal) {
   __ cmp(current_character(), Operand(c));
   BranchOrBacktrack(ne, on_not_equal);
@@ -442,8 +442,8 @@
 }


-void RegExpMacroAssemblerARM::CheckNotCharacterAfterAnd(uint32_t c,
-                                                        uint32_t mask,
+void RegExpMacroAssemblerARM::CheckNotCharacterAfterAnd(unsigned c,
+                                                        unsigned mask,
Label* on_not_equal) {
   __ and_(r0, current_character(), Operand(mask));
   __ cmp(r0, Operand(c));
=======================================
--- /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.h Tue Dec 7 03:01:02 2010 +++ /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.h Wed Jan 12 03:56:41 2011
@@ -50,9 +50,9 @@
   virtual void Backtrack();
   virtual void Bind(Label* label);
   virtual void CheckAtStart(Label* on_at_start);
-  virtual void CheckCharacter(uint32_t c, Label* on_equal);
-  virtual void CheckCharacterAfterAnd(uint32_t c,
-                                      uint32_t mask,
+  virtual void CheckCharacter(unsigned c, Label* on_equal);
+  virtual void CheckCharacterAfterAnd(unsigned c,
+                                      unsigned mask,
                                       Label* on_equal);
   virtual void CheckCharacterGT(uc16 limit, Label* on_greater);
   virtual void CheckCharacterLT(uc16 limit, Label* on_less);
@@ -68,9 +68,9 @@
   virtual void CheckNotBackReferenceIgnoreCase(int start_reg,
                                                Label* on_no_match);
virtual void CheckNotRegistersEqual(int reg1, int reg2, Label* on_not_equal);
-  virtual void CheckNotCharacter(uint32_t c, Label* on_not_equal);
-  virtual void CheckNotCharacterAfterAnd(uint32_t c,
-                                         uint32_t mask,
+  virtual void CheckNotCharacter(unsigned c, Label* on_not_equal);
+  virtual void CheckNotCharacterAfterAnd(unsigned c,
+                                         unsigned mask,
                                          Label* on_not_equal);
   virtual void CheckNotCharacterAfterMinusAnd(uc16 c,
                                               uc16 minus,
=======================================
--- /branches/bleeding_edge/src/arm/stub-cache-arm.cc Tue Dec 14 10:53:48 2010 +++ /branches/bleeding_edge/src/arm/stub-cache-arm.cc Wed Jan 12 03:56:41 2011
@@ -1965,7 +1965,7 @@
   __ mov(r0, Operand(r0, LSL, kSmiTagSize));

   // Check for -0.
-  __ cmp(r0, Operand(0));
+  __ cmp(r0, Operand(0, RelocInfo::NONE));
   __ b(&restore_fpscr_and_return, ne);
   // r5 already holds the HeapNumber exponent.
   __ tst(r5, Operand(HeapNumber::kSignMask));
=======================================
--- /branches/bleeding_edge/src/heap.h  Thu Jan  6 07:53:56 2011
+++ /branches/bleeding_edge/src/heap.h  Wed Jan 12 03:56:41 2011
@@ -1865,7 +1865,7 @@
     }

     ~Scope() {
-      ASSERT((0 <= scope_) && (scope_ < kNumberOfScopes));
+      ASSERT(scope_ < kNumberOfScopes);  // scope_ is unsigned.
       tracer_->scopes_[scope_] += OS::TimeCurrentMillis() - start_time_;
     }

=======================================
--- /branches/bleeding_edge/src/jsregexp.cc     Tue Dec  7 03:01:02 2010
+++ /branches/bleeding_edge/src/jsregexp.cc     Wed Jan 12 03:56:41 2011
@@ -425,7 +425,7 @@
     Handle<JSRegExp> regexp,
     Handle<String> subject,
     int index,
-    Vector<int32_t> output) {
+    Vector<int> output) {
   Handle<FixedArray> irregexp(FixedArray::cast(regexp->data()));

   ASSERT(index >= 0);
@@ -521,8 +521,8 @@
   OffsetsVector registers(required_registers);

   IrregexpResult res = RegExpImpl::IrregexpExecOnce(
- jsregexp, subject, previous_index, Vector<int32_t>(registers.vector(), - registers.length()));
+      jsregexp, subject, previous_index, Vector<int>(registers.vector(),
+                                                     registers.length()));
   if (res == RE_SUCCESS) {
     int capture_register_count =
(IrregexpNumberOfCaptures(FixedArray::cast(jsregexp->data())) + 1) * 2;
=======================================
--- /branches/bleeding_edge/src/jsregexp.h      Tue Dec  7 03:01:02 2010
+++ /branches/bleeding_edge/src/jsregexp.h      Wed Jan 12 03:56:41 2011
@@ -114,7 +114,7 @@
   static IrregexpResult IrregexpExecOnce(Handle<JSRegExp> regexp,
                                          Handle<String> subject,
                                          int index,
-                                         Vector<int32_t> registers);
+                                         Vector<int> registers);

   // Execute an Irregexp bytecode pattern.
   // On a successful match, the result is a JSArray containing
=======================================
--- /branches/bleeding_edge/src/objects-inl.h   Fri Jan  7 02:06:28 2011
+++ /branches/bleeding_edge/src/objects-inl.h   Wed Jan 12 03:56:41 2011
@@ -2238,7 +2238,6 @@


 void Map::set_instance_type(InstanceType value) {
-  ASSERT(0 <= value && value < 256);
   WRITE_BYTE_FIELD(this, kInstanceTypeOffset, value);
 }

@@ -3216,28 +3215,28 @@


 Object* JSBuiltinsObject::javascript_builtin(Builtins::JavaScript id) {
-  ASSERT(0 <= id && id < kJSBuiltinsCount);
+  ASSERT(id < kJSBuiltinsCount);  // id is unsigned.
   return READ_FIELD(this, OffsetOfFunctionWithId(id));
 }


 void JSBuiltinsObject::set_javascript_builtin(Builtins::JavaScript id,
                                               Object* value) {
-  ASSERT(0 <= id && id < kJSBuiltinsCount);
+  ASSERT(id < kJSBuiltinsCount);  // id is unsigned.
   WRITE_FIELD(this, OffsetOfFunctionWithId(id), value);
   WRITE_BARRIER(this, OffsetOfFunctionWithId(id));
 }


 Code* JSBuiltinsObject::javascript_builtin_code(Builtins::JavaScript id) {
-  ASSERT(0 <= id && id < kJSBuiltinsCount);
+  ASSERT(id < kJSBuiltinsCount);  // id is unsigned.
   return Code::cast(READ_FIELD(this, OffsetOfCodeWithId(id)));
 }


 void JSBuiltinsObject::set_javascript_builtin_code(Builtins::JavaScript id,
                                                    Code* value) {
-  ASSERT(0 <= id && id < kJSBuiltinsCount);
+  ASSERT(id < kJSBuiltinsCount);  // id is unsigned.
   WRITE_FIELD(this, OffsetOfCodeWithId(id), value);
   ASSERT(!Heap::InNewSpace(value));
 }
=======================================
--- /branches/bleeding_edge/src/objects-visiting.h      Fri Dec 24 06:44:15 2010
+++ /branches/bleeding_edge/src/objects-visiting.h      Wed Jan 12 03:56:41 2011
@@ -146,7 +146,7 @@
   }

   void Register(StaticVisitorBase::VisitorId id, Callback callback) {
-    ASSERT((0 <= id) && (id < StaticVisitorBase::kVisitorIdCount));
+    ASSERT(id < StaticVisitorBase::kVisitorIdCount);  // id is unsigned.
     callbacks_[id] = callback;
   }

=======================================
--- /branches/bleeding_edge/src/regexp-macro-assembler-irregexp.h Tue Dec 7 03:01:02 2010 +++ /branches/bleeding_edge/src/regexp-macro-assembler-irregexp.h Wed Jan 12 03:56:41 2011
@@ -76,18 +76,18 @@
                                     Label* on_end_of_input,
                                     bool check_bounds = true,
                                     int characters = 1);
-  virtual void CheckCharacter(uint32_t c, Label* on_equal);
-  virtual void CheckCharacterAfterAnd(uint32_t c,
-                                      uint32_t mask,
+  virtual void CheckCharacter(unsigned c, Label* on_equal);
+  virtual void CheckCharacterAfterAnd(unsigned c,
+                                      unsigned mask,
                                       Label* on_equal);
   virtual void CheckCharacterGT(uc16 limit, Label* on_greater);
   virtual void CheckCharacterLT(uc16 limit, Label* on_less);
   virtual void CheckGreedyLoop(Label* on_tos_equals_current_position);
   virtual void CheckAtStart(Label* on_at_start);
   virtual void CheckNotAtStart(Label* on_not_at_start);
-  virtual void CheckNotCharacter(uint32_t c, Label* on_not_equal);
-  virtual void CheckNotCharacterAfterAnd(uint32_t c,
-                                         uint32_t mask,
+  virtual void CheckNotCharacter(unsigned c, Label* on_not_equal);
+  virtual void CheckNotCharacterAfterAnd(unsigned c,
+                                         unsigned mask,
                                          Label* on_not_equal);
   virtual void CheckNotCharacterAfterMinusAnd(uc16 c,
                                               uc16 minus,
=======================================
--- /branches/bleeding_edge/src/regexp-macro-assembler-tracer.cc Tue Dec 7 03:01:02 2010 +++ /branches/bleeding_edge/src/regexp-macro-assembler-tracer.cc Wed Jan 12 03:56:41 2011
@@ -213,7 +213,7 @@
 }


-void RegExpMacroAssemblerTracer::CheckCharacter(uint32_t c, Label* on_equal) { +void RegExpMacroAssemblerTracer::CheckCharacter(unsigned c, Label* on_equal) {
   PrintF(" CheckCharacter(c='u%04x', label[%08x]);\n",
          c, LabelToInt(on_equal));
   assembler_->CheckCharacter(c, on_equal);
@@ -232,7 +232,7 @@
 }


-void RegExpMacroAssemblerTracer::CheckNotCharacter(uint32_t c,
+void RegExpMacroAssemblerTracer::CheckNotCharacter(unsigned c,
                                                    Label* on_not_equal) {
   PrintF(" CheckNotCharacter(c='u%04x', label[%08x]);\n",
          c, LabelToInt(on_not_equal));
@@ -241,8 +241,8 @@


 void RegExpMacroAssemblerTracer::CheckCharacterAfterAnd(
-    uint32_t c,
-    uint32_t mask,
+    unsigned c,
+    unsigned mask,
     Label* on_equal) {
   PrintF(" CheckCharacterAfterAnd(c='u%04x', mask=0x%04x, label[%08x]);\n",
          c,
@@ -253,8 +253,8 @@


 void RegExpMacroAssemblerTracer::CheckNotCharacterAfterAnd(
-    uint32_t c,
-    uint32_t mask,
+    unsigned c,
+    unsigned mask,
     Label* on_not_equal) {
PrintF(" CheckNotCharacterAfterAnd(c='u%04x', mask=0x%04x, label[%08x]);\n",
          c,
=======================================
--- /branches/bleeding_edge/src/regexp-macro-assembler-tracer.h Tue Dec 7 03:01:02 2010 +++ /branches/bleeding_edge/src/regexp-macro-assembler-tracer.h Wed Jan 12 03:56:41 2011
@@ -43,9 +43,9 @@
   virtual void Backtrack();
   virtual void Bind(Label* label);
   virtual void CheckAtStart(Label* on_at_start);
-  virtual void CheckCharacter(uint32_t c, Label* on_equal);
-  virtual void CheckCharacterAfterAnd(uint32_t c,
-                                      uint32_t and_with,
+  virtual void CheckCharacter(unsigned c, Label* on_equal);
+  virtual void CheckCharacterAfterAnd(unsigned c,
+                                      unsigned and_with,
                                       Label* on_equal);
   virtual void CheckCharacterGT(uc16 limit, Label* on_greater);
   virtual void CheckCharacterLT(uc16 limit, Label* on_less);
@@ -60,9 +60,9 @@
   virtual void CheckNotBackReferenceIgnoreCase(int start_reg,
                                                Label* on_no_match);
virtual void CheckNotRegistersEqual(int reg1, int reg2, Label* on_not_equal);
-  virtual void CheckNotCharacter(uint32_t c, Label* on_not_equal);
-  virtual void CheckNotCharacterAfterAnd(uint32_t c,
-                                         uint32_t and_with,
+  virtual void CheckNotCharacter(unsigned c, Label* on_not_equal);
+  virtual void CheckNotCharacterAfterAnd(unsigned c,
+                                         unsigned and_with,
                                          Label* on_not_equal);
   virtual void CheckNotCharacterAfterMinusAnd(uc16 c,
                                               uc16 minus,
=======================================
--- /branches/bleeding_edge/src/regexp-macro-assembler.h Tue Dec 7 03:01:02 2010 +++ /branches/bleeding_edge/src/regexp-macro-assembler.h Wed Jan 12 03:56:41 2011
@@ -73,11 +73,11 @@
   virtual void CheckAtStart(Label* on_at_start) = 0;
   // Dispatch after looking the current character up in a 2-bits-per-entry
   // map.  The destinations vector has up to 4 labels.
-  virtual void CheckCharacter(uint32_t c, Label* on_equal) = 0;
+  virtual void CheckCharacter(unsigned c, Label* on_equal) = 0;
   // Bitwise and the current character with the given constant and then
   // check for a match with c.
-  virtual void CheckCharacterAfterAnd(uint32_t c,
-                                      uint32_t and_with,
+  virtual void CheckCharacterAfterAnd(unsigned c,
+                                      unsigned and_with,
                                       Label* on_equal) = 0;
   virtual void CheckCharacterGT(uc16 limit, Label* on_greater) = 0;
   virtual void CheckCharacterLT(uc16 limit, Label* on_less) = 0;
@@ -101,9 +101,9 @@
   // fail to match then goto the on_failure label.  End of input always
// matches. If the label is NULL then we should pop a backtrack address off
   // the stack and go to that.
-  virtual void CheckNotCharacter(uint32_t c, Label* on_not_equal) = 0;
-  virtual void CheckNotCharacterAfterAnd(uint32_t c,
-                                         uint32_t and_with,
+  virtual void CheckNotCharacter(unsigned c, Label* on_not_equal) = 0;
+  virtual void CheckNotCharacterAfterAnd(unsigned c,
+                                         unsigned and_with,
                                          Label* on_not_equal) = 0;
   // Subtract a constant from the current character, then or with the given
   // constant and then check for a match with c.
=======================================
--- /branches/bleeding_edge/src/token.h Tue Dec  7 03:31:57 2010
+++ /branches/bleeding_edge/src/token.h Wed Jan 12 03:56:41 2011
@@ -217,7 +217,7 @@
   // Returns a string corresponding to the C++ token name
   // (e.g. "LT" for the token LT).
   static const char* Name(Value tok) {
-    ASSERT(0 <= tok && tok < NUM_TOKENS);
+    ASSERT(tok < NUM_TOKENS);  // tok is unsigned
     return name_[tok];
   }

@@ -292,14 +292,14 @@
   // (.e., "<" for the token LT) or NULL if the token doesn't
   // have a (unique) string (e.g. an IDENTIFIER).
   static const char* String(Value tok) {
-    ASSERT(0 <= tok && tok < NUM_TOKENS);
+    ASSERT(tok < NUM_TOKENS);  // tok is unsigned.
     return string_[tok];
   }

   // Returns the precedence > 0 for binary and compare
   // operators; returns 0 otherwise.
   static int Precedence(Value tok) {
-    ASSERT(0 <= tok && tok < NUM_TOKENS);
+    ASSERT(tok < NUM_TOKENS);  // tok is unsigned.
     return precedence_[tok];
   }

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to