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