Chromium Code Reviews

Side by Side Diff: src/arm/lithium-arm.cc

Issue 6069010: First part of lithium ARM port. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix typo. Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1277 matching lines...)
1288 } 1288 }
1289 } 1289 }
1290 return new LBranch(UseRegisterAtStart(v), first_id, second_id); 1290 return new LBranch(UseRegisterAtStart(v), first_id, second_id);
1291 } 1291 }
1292 1292
1293 1293
1294 LInstruction* LChunkBuilder::DoCompareMapAndBranch( 1294 LInstruction* LChunkBuilder::DoCompareMapAndBranch(
1295 HCompareMapAndBranch* instr) { 1295 HCompareMapAndBranch* instr) {
1296 ASSERT(instr->value()->representation().IsTagged()); 1296 ASSERT(instr->value()->representation().IsTagged());
1297 LOperand* value = UseRegisterAtStart(instr->value()); 1297 LOperand* value = UseRegisterAtStart(instr->value());
1298 LOperand* temp = TempRegister();
1298 HBasicBlock* first = instr->FirstSuccessor(); 1299 HBasicBlock* first = instr->FirstSuccessor();
1299 HBasicBlock* second = instr->SecondSuccessor(); 1300 HBasicBlock* second = instr->SecondSuccessor();
1300 return new LCmpMapAndBranch(value, 1301 return new LCmpMapAndBranch(value,
1302 temp,
1301 instr->map(), 1303 instr->map(),
1302 first->block_id(), 1304 first->block_id(),
1303 second->block_id()); 1305 second->block_id());
1304 } 1306 }
1305 1307
1306 1308
1307 LInstruction* LChunkBuilder::DoArgumentsLength(HArgumentsLength* length) { 1309 LInstruction* LChunkBuilder::DoArgumentsLength(HArgumentsLength* length) {
1308 return DefineAsRegister(new LArgumentsLength(Use(length->value()))); 1310 return DefineAsRegister(new LArgumentsLength(Use(length->value())));
1309 } 1311 }
1310 1312
(...skipping 456 matching lines...)
1767 1769
1768 LInstruction* LChunkBuilder::DoCheckInstanceType(HCheckInstanceType* instr) { 1770 LInstruction* LChunkBuilder::DoCheckInstanceType(HCheckInstanceType* instr) {
1769 LOperand* value = UseRegisterAtStart(instr->value()); 1771 LOperand* value = UseRegisterAtStart(instr->value());
1770 LOperand* temp = TempRegister(); 1772 LOperand* temp = TempRegister();
1771 LInstruction* result = new LCheckInstanceType(value, temp); 1773 LInstruction* result = new LCheckInstanceType(value, temp);
1772 return AssignEnvironment(result); 1774 return AssignEnvironment(result);
1773 } 1775 }
1774 1776
1775 1777
1776 LInstruction* LChunkBuilder::DoCheckPrototypeMaps(HCheckPrototypeMaps* instr) { 1778 LInstruction* LChunkBuilder::DoCheckPrototypeMaps(HCheckPrototypeMaps* instr) {
1777 LOperand* temp = TempRegister(); 1779 LOperand* temp1 = TempRegister();
1780 LOperand* temp2 = TempRegister();
1778 LInstruction* result = 1781 LInstruction* result =
1779 new LCheckPrototypeMaps(temp, 1782 new LCheckPrototypeMaps(temp1,
1783 temp2,
1780 instr->holder(), 1784 instr->holder(),
1781 instr->receiver_map()); 1785 instr->receiver_map());
1782 return AssignEnvironment(result); 1786 return AssignEnvironment(result);
1783 } 1787 }
1784 1788
1785 1789
1786 LInstruction* LChunkBuilder::DoCheckSmi(HCheckSmi* instr) { 1790 LInstruction* LChunkBuilder::DoCheckSmi(HCheckSmi* instr) {
1787 LOperand* value = UseRegisterAtStart(instr->value()); 1791 LOperand* value = UseRegisterAtStart(instr->value());
1788 return AssignEnvironment(new LCheckSmi(value, ne)); 1792 return AssignEnvironment(new LCheckSmi(value, ne));
1789 } 1793 }
(...skipping 327 matching lines...)
2117 void LPointerMap::PrintTo(StringStream* stream) const { 2121 void LPointerMap::PrintTo(StringStream* stream) const {
2118 stream->Add("{"); 2122 stream->Add("{");
2119 for (int i = 0; i < pointer_operands_.length(); ++i) { 2123 for (int i = 0; i < pointer_operands_.length(); ++i) {
2120 if (i != 0) stream->Add(";"); 2124 if (i != 0) stream->Add(";");
2121 pointer_operands_[i]->PrintTo(stream); 2125 pointer_operands_[i]->PrintTo(stream);
2122 } 2126 }
2123 stream->Add("} @%d", position()); 2127 stream->Add("} @%d", position());
2124 } 2128 }
2125 2129
2126 } } // namespace v8::internal 2130 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine