| 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 2735 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2746   Register scratch = scratch0(); |  2746   Register scratch = scratch0(); | 
|  2747  |  2747  | 
|  2748   // Load the result. |  2748   // Load the result. | 
|  2749   __ add(scratch, elements, Operand(key, LSL, kPointerSizeLog2)); |  2749   __ add(scratch, elements, Operand(key, LSL, kPointerSizeLog2)); | 
|  2750   uint32_t offset = FixedArray::kHeaderSize + |  2750   uint32_t offset = FixedArray::kHeaderSize + | 
|  2751                     (instr->additional_index() << kPointerSizeLog2); |  2751                     (instr->additional_index() << kPointerSizeLog2); | 
|  2752   __ ldr(result, FieldMemOperand(scratch, offset)); |  2752   __ ldr(result, FieldMemOperand(scratch, offset)); | 
|  2753  |  2753  | 
|  2754   // Check for the hole value. |  2754   // Check for the hole value. | 
|  2755   if (instr->hydrogen()->RequiresHoleCheck()) { |  2755   if (instr->hydrogen()->RequiresHoleCheck()) { | 
|  2756     __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); |  2756     if (IsFastSmiElementsKind(instr->hydrogen()->elements_kind())) { | 
|  2757     __ cmp(result, scratch); |  2757       __ tst(result, Operand(kSmiTagMask)); | 
|  2758     DeoptimizeIf(eq, instr->environment()); |  2758       DeoptimizeIf(ne, instr->environment()); | 
 |  2759     } else { | 
 |  2760       __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 
 |  2761       __ cmp(result, scratch); | 
 |  2762       DeoptimizeIf(eq, instr->environment()); | 
 |  2763     } | 
|  2759   } |  2764   } | 
|  2760 } |  2765 } | 
|  2761  |  2766  | 
|  2762  |  2767  | 
|  2763 void LCodeGen::DoLoadKeyedFastDoubleElement( |  2768 void LCodeGen::DoLoadKeyedFastDoubleElement( | 
|  2764     LLoadKeyedFastDoubleElement* instr) { |  2769     LLoadKeyedFastDoubleElement* instr) { | 
|  2765   Register elements = ToRegister(instr->elements()); |  2770   Register elements = ToRegister(instr->elements()); | 
|  2766   bool key_is_constant = instr->key()->IsConstantOperand(); |  2771   bool key_is_constant = instr->key()->IsConstantOperand(); | 
|  2767   Register key = no_reg; |  2772   Register key = no_reg; | 
|  2768   DwVfpRegister result = ToDoubleRegister(instr->result()); |  2773   DwVfpRegister result = ToDoubleRegister(instr->result()); | 
| (...skipping 2590 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5359   __ sub(scratch, result, Operand(index, LSL, kPointerSizeLog2 - kSmiTagSize)); |  5364   __ sub(scratch, result, Operand(index, LSL, kPointerSizeLog2 - kSmiTagSize)); | 
|  5360   __ ldr(result, FieldMemOperand(scratch, |  5365   __ ldr(result, FieldMemOperand(scratch, | 
|  5361                                  FixedArray::kHeaderSize - kPointerSize)); |  5366                                  FixedArray::kHeaderSize - kPointerSize)); | 
|  5362   __ bind(&done); |  5367   __ bind(&done); | 
|  5363 } |  5368 } | 
|  5364  |  5369  | 
|  5365  |  5370  | 
|  5366 #undef __ |  5371 #undef __ | 
|  5367  |  5372  | 
|  5368 } }  // namespace v8::internal |  5373 } }  // namespace v8::internal | 
| OLD | NEW |