| 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 4750 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4761     virtual void Generate() V8_OVERRIDE { |  4761     virtual void Generate() V8_OVERRIDE { | 
|  4762       codegen()->DoDeferredNumberTagI(instr_, |  4762       codegen()->DoDeferredNumberTagI(instr_, | 
|  4763                                       instr_->value(), |  4763                                       instr_->value(), | 
|  4764                                       UNSIGNED_INT32); |  4764                                       UNSIGNED_INT32); | 
|  4765     } |  4765     } | 
|  4766     virtual LInstruction* instr() V8_OVERRIDE { return instr_; } |  4766     virtual LInstruction* instr() V8_OVERRIDE { return instr_; } | 
|  4767    private: |  4767    private: | 
|  4768     LNumberTagU* instr_; |  4768     LNumberTagU* instr_; | 
|  4769   }; |  4769   }; | 
|  4770  |  4770  | 
|  4771   LOperand* input = instr->value(); |  4771   Register input = ToRegister(instr->value()); | 
|  4772   ASSERT(input->IsRegister() && input->Equals(instr->result())); |  4772   Register result = ToRegister(instr->result()); | 
|  4773   Register reg = ToRegister(input); |  | 
|  4774  |  4773  | 
|  4775   DeferredNumberTagU* deferred = new(zone()) DeferredNumberTagU(this, instr); |  4774   DeferredNumberTagU* deferred = new(zone()) DeferredNumberTagU(this, instr); | 
|  4776   __ cmp(reg, Operand(Smi::kMaxValue)); |  4775   __ cmp(input, Operand(Smi::kMaxValue)); | 
|  4777   __ b(hi, deferred->entry()); |  4776   __ b(hi, deferred->entry()); | 
|  4778   __ SmiTag(reg, reg); |  4777   __ SmiTag(result, input); | 
|  4779   __ bind(deferred->exit()); |  4778   __ bind(deferred->exit()); | 
|  4780 } |  4779 } | 
|  4781  |  4780  | 
|  4782  |  4781  | 
|  4783 void LCodeGen::DoDeferredNumberTagI(LInstruction* instr, |  4782 void LCodeGen::DoDeferredNumberTagI(LInstruction* instr, | 
|  4784                                     LOperand* value, |  4783                                     LOperand* value, | 
|  4785                                     IntegerSignedness signedness) { |  4784                                     IntegerSignedness signedness) { | 
|  4786   Label slow; |  4785   Label slow; | 
|  4787   Register src = ToRegister(value); |  4786   Register src = ToRegister(value); | 
|  4788   Register dst = ToRegister(instr->result()); |  4787   Register dst = ToRegister(instr->result()); | 
| (...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5882   __ sub(scratch, result, Operand::PointerOffsetFromSmiKey(index)); |  5881   __ sub(scratch, result, Operand::PointerOffsetFromSmiKey(index)); | 
|  5883   __ ldr(result, FieldMemOperand(scratch, |  5882   __ ldr(result, FieldMemOperand(scratch, | 
|  5884                                  FixedArray::kHeaderSize - kPointerSize)); |  5883                                  FixedArray::kHeaderSize - kPointerSize)); | 
|  5885   __ bind(&done); |  5884   __ bind(&done); | 
|  5886 } |  5885 } | 
|  5887  |  5886  | 
|  5888  |  5887  | 
|  5889 #undef __ |  5888 #undef __ | 
|  5890  |  5889  | 
|  5891 } }  // namespace v8::internal |  5890 } }  // namespace v8::internal | 
| OLD | NEW |