| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 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 1748 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1759   } else { |  1759   } else { | 
|  1760     ASSERT(input_rep.IsTagged()); |  1760     ASSERT(input_rep.IsTagged()); | 
|  1761     // Register allocator doesn't (yet) support allocation of double |  1761     // Register allocator doesn't (yet) support allocation of double | 
|  1762     // temps. Reserve f22 explicitly. |  1762     // temps. Reserve f22 explicitly. | 
|  1763     LClampTToUint8* result = new(zone()) LClampTToUint8(reg, FixedTemp(f22)); |  1763     LClampTToUint8* result = new(zone()) LClampTToUint8(reg, FixedTemp(f22)); | 
|  1764     return AssignEnvironment(DefineAsRegister(result)); |  1764     return AssignEnvironment(DefineAsRegister(result)); | 
|  1765   } |  1765   } | 
|  1766 } |  1766 } | 
|  1767  |  1767  | 
|  1768  |  1768  | 
|  1769 LInstruction* LChunkBuilder::DoToInt32(HToInt32* instr) { |  | 
|  1770   HValue* value = instr->value(); |  | 
|  1771   Representation input_rep = value->representation(); |  | 
|  1772   LOperand* reg = UseRegister(value); |  | 
|  1773   if (input_rep.IsDouble()) { |  | 
|  1774     LOperand* temp1 = TempRegister(); |  | 
|  1775     LOperand* temp2 = TempRegister(); |  | 
|  1776     LDoubleToI* res = new(zone()) LDoubleToI(reg, temp1, temp2); |  | 
|  1777     return AssignEnvironment(DefineAsRegister(res)); |  | 
|  1778   } else if (input_rep.IsInteger32()) { |  | 
|  1779     // Canonicalization should already have removed the hydrogen instruction in |  | 
|  1780     // this case, since it is a noop. |  | 
|  1781     UNREACHABLE(); |  | 
|  1782     return NULL; |  | 
|  1783   } else { |  | 
|  1784     ASSERT(input_rep.IsTagged()); |  | 
|  1785     LOperand* temp1 = TempRegister(); |  | 
|  1786     LOperand* temp2 = TempRegister(); |  | 
|  1787     LOperand* temp3 = FixedTemp(f22); |  | 
|  1788     LTaggedToI* res = new(zone()) LTaggedToI(reg, temp1, temp2, temp3); |  | 
|  1789     return AssignEnvironment(DefineSameAsFirst(res)); |  | 
|  1790   } |  | 
|  1791 } |  | 
|  1792  |  | 
|  1793  |  | 
|  1794 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) { |  1769 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) { | 
|  1795   return new(zone()) LReturn(UseFixed(instr->value(), v0)); |  1770   return new(zone()) LReturn(UseFixed(instr->value(), v0)); | 
|  1796 } |  1771 } | 
|  1797  |  1772  | 
|  1798  |  1773  | 
|  1799 LInstruction* LChunkBuilder::DoConstant(HConstant* instr) { |  1774 LInstruction* LChunkBuilder::DoConstant(HConstant* instr) { | 
|  1800   Representation r = instr->representation(); |  1775   Representation r = instr->representation(); | 
|  1801   if (r.IsInteger32()) { |  1776   if (r.IsInteger32()) { | 
|  1802     return DefineAsRegister(new(zone()) LConstantI); |  1777     return DefineAsRegister(new(zone()) LConstantI); | 
|  1803   } else if (r.IsDouble()) { |  1778   } else if (r.IsDouble()) { | 
| (...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2330  |  2305  | 
|  2331  |  2306  | 
|  2332 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { |  2307 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { | 
|  2333   LOperand* object = UseRegister(instr->object()); |  2308   LOperand* object = UseRegister(instr->object()); | 
|  2334   LOperand* index = UseRegister(instr->index()); |  2309   LOperand* index = UseRegister(instr->index()); | 
|  2335   return DefineAsRegister(new LLoadFieldByIndex(object, index)); |  2310   return DefineAsRegister(new LLoadFieldByIndex(object, index)); | 
|  2336 } |  2311 } | 
|  2337  |  2312  | 
|  2338  |  2313  | 
|  2339 } }  // namespace v8::internal |  2314 } }  // namespace v8::internal | 
| OLD | NEW |