Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(530)

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

Issue 6486033: Revert r6748.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ia32/lithium-ia32.h ('k') | src/x64/lithium-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 1298 matching lines...) Expand 10 before | Expand all | Expand 10 after
1309 1309
1310 LInstruction* LChunkBuilder::DoBitNot(HBitNot* instr) { 1310 LInstruction* LChunkBuilder::DoBitNot(HBitNot* instr) {
1311 ASSERT(instr->value()->representation().IsInteger32()); 1311 ASSERT(instr->value()->representation().IsInteger32());
1312 ASSERT(instr->representation().IsInteger32()); 1312 ASSERT(instr->representation().IsInteger32());
1313 LOperand* input = UseRegisterAtStart(instr->value()); 1313 LOperand* input = UseRegisterAtStart(instr->value());
1314 LBitNotI* result = new LBitNotI(input); 1314 LBitNotI* result = new LBitNotI(input);
1315 return DefineSameAsFirst(result); 1315 return DefineSameAsFirst(result);
1316 } 1316 }
1317 1317
1318 1318
1319 LInstruction* LChunkBuilder::DoNeg(HNeg* instr) {
1320 Representation r = instr->representation();
1321 if (r.IsInteger32()) {
1322 LOperand* input = UseRegister(instr->value());
1323 LNegI* result = new LNegI(input);
1324 if (instr->CheckFlag(HValue::kBailoutOnMinusZero) ||
1325 instr->CheckFlag(HValue::kCanOverflow)) {
1326 AssignEnvironment(result);
1327 }
1328 return DefineSameAsFirst(result);
1329 } else if (r.IsDouble()) {
1330 LOperand* input = UseRegister(instr->value());
1331 LOperand* temp = TempRegister();
1332 return DefineSameAsFirst(new LNegD(input, temp));
1333 } else {
1334 ASSERT(r.IsTagged());
1335 LOperand* input = UseFixed(instr->value(), eax);
1336 LNegT* result = new LNegT(input);
1337 return MarkAsCall(DefineFixed(result, eax), instr);
1338 }
1339 }
1340
1341
1342 LInstruction* LChunkBuilder::DoBitOr(HBitOr* instr) { 1319 LInstruction* LChunkBuilder::DoBitOr(HBitOr* instr) {
1343 return DoBit(Token::BIT_OR, instr); 1320 return DoBit(Token::BIT_OR, instr);
1344 } 1321 }
1345 1322
1346 1323
1347 LInstruction* LChunkBuilder::DoBitXor(HBitXor* instr) { 1324 LInstruction* LChunkBuilder::DoBitXor(HBitXor* instr) {
1348 return DoBit(Token::BIT_XOR, instr); 1325 return DoBit(Token::BIT_XOR, instr);
1349 } 1326 }
1350 1327
1351 1328
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after
2058 LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) { 2035 LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) {
2059 HEnvironment* outer = current_block_->last_environment()->outer(); 2036 HEnvironment* outer = current_block_->last_environment()->outer();
2060 current_block_->UpdateEnvironment(outer); 2037 current_block_->UpdateEnvironment(outer);
2061 return NULL; 2038 return NULL;
2062 } 2039 }
2063 2040
2064 2041
2065 } } // namespace v8::internal 2042 } } // namespace v8::internal
2066 2043
2067 #endif // V8_TARGET_ARCH_IA32 2044 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/lithium-ia32.h ('k') | src/x64/lithium-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698