| 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 3249 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3260     Register result = ToRegister(instr->result()); |  3260     Register result = ToRegister(instr->result()); | 
|  3261     MemOperand operand = instr->object()->IsConstantOperand() |  3261     MemOperand operand = instr->object()->IsConstantOperand() | 
|  3262         ? MemOperand::StaticVariable(ToExternalReference( |  3262         ? MemOperand::StaticVariable(ToExternalReference( | 
|  3263                 LConstantOperand::cast(instr->object()))) |  3263                 LConstantOperand::cast(instr->object()))) | 
|  3264         : MemOperand(ToRegister(instr->object()), offset); |  3264         : MemOperand(ToRegister(instr->object()), offset); | 
|  3265     __ Load(result, operand, access.representation()); |  3265     __ Load(result, operand, access.representation()); | 
|  3266     return; |  3266     return; | 
|  3267   } |  3267   } | 
|  3268  |  3268  | 
|  3269   Register object = ToRegister(instr->object()); |  3269   Register object = ToRegister(instr->object()); | 
|  3270   if (FLAG_track_double_fields && |  3270   if (instr->hydrogen()->representation().IsDouble()) { | 
|  3271       instr->hydrogen()->representation().IsDouble()) { |  | 
|  3272     if (CpuFeatures::IsSupported(SSE2)) { |  3271     if (CpuFeatures::IsSupported(SSE2)) { | 
|  3273       CpuFeatureScope scope(masm(), SSE2); |  3272       CpuFeatureScope scope(masm(), SSE2); | 
|  3274       XMMRegister result = ToDoubleRegister(instr->result()); |  3273       XMMRegister result = ToDoubleRegister(instr->result()); | 
|  3275       __ movsd(result, FieldOperand(object, offset)); |  3274       __ movsd(result, FieldOperand(object, offset)); | 
|  3276     } else { |  3275     } else { | 
|  3277       X87Mov(ToX87Register(instr->result()), FieldOperand(object, offset)); |  3276       X87Mov(ToX87Register(instr->result()), FieldOperand(object, offset)); | 
|  3278     } |  3277     } | 
|  3279     return; |  3278     return; | 
|  3280   } |  3279   } | 
|  3281  |  3280  | 
| (...skipping 1103 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4385       if (IsInteger32(operand_value)) { |  4384       if (IsInteger32(operand_value)) { | 
|  4386         DeoptimizeIf(no_condition, instr->environment()); |  4385         DeoptimizeIf(no_condition, instr->environment()); | 
|  4387       } |  4386       } | 
|  4388     } else { |  4387     } else { | 
|  4389       if (!instr->hydrogen()->value()->type().IsHeapObject()) { |  4388       if (!instr->hydrogen()->value()->type().IsHeapObject()) { | 
|  4390         Register value = ToRegister(instr->value()); |  4389         Register value = ToRegister(instr->value()); | 
|  4391         __ test(value, Immediate(kSmiTagMask)); |  4390         __ test(value, Immediate(kSmiTagMask)); | 
|  4392         DeoptimizeIf(zero, instr->environment()); |  4391         DeoptimizeIf(zero, instr->environment()); | 
|  4393       } |  4392       } | 
|  4394     } |  4393     } | 
|  4395   } else if (FLAG_track_double_fields && representation.IsDouble()) { |  4394   } else if (representation.IsDouble()) { | 
|  4396     ASSERT(transition.is_null()); |  4395     ASSERT(transition.is_null()); | 
|  4397     ASSERT(access.IsInobject()); |  4396     ASSERT(access.IsInobject()); | 
|  4398     ASSERT(!instr->hydrogen()->NeedsWriteBarrier()); |  4397     ASSERT(!instr->hydrogen()->NeedsWriteBarrier()); | 
|  4399     if (CpuFeatures::IsSupported(SSE2)) { |  4398     if (CpuFeatures::IsSupported(SSE2)) { | 
|  4400       CpuFeatureScope scope(masm(), SSE2); |  4399       CpuFeatureScope scope(masm(), SSE2); | 
|  4401       XMMRegister value = ToDoubleRegister(instr->value()); |  4400       XMMRegister value = ToDoubleRegister(instr->value()); | 
|  4402       __ movsd(FieldOperand(object, offset), value); |  4401       __ movsd(FieldOperand(object, offset), value); | 
|  4403     } else { |  4402     } else { | 
|  4404       X87Register value = ToX87Register(instr->value()); |  4403       X87Register value = ToX87Register(instr->value()); | 
|  4405       X87Mov(FieldOperand(object, offset), value); |  4404       X87Mov(FieldOperand(object, offset), value); | 
| (...skipping 1942 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  6348                               FixedArray::kHeaderSize - kPointerSize)); |  6347                               FixedArray::kHeaderSize - kPointerSize)); | 
|  6349   __ bind(&done); |  6348   __ bind(&done); | 
|  6350 } |  6349 } | 
|  6351  |  6350  | 
|  6352  |  6351  | 
|  6353 #undef __ |  6352 #undef __ | 
|  6354  |  6353  | 
|  6355 } }  // namespace v8::internal |  6354 } }  // namespace v8::internal | 
|  6356  |  6355  | 
|  6357 #endif  // V8_TARGET_ARCH_IA32 |  6356 #endif  // V8_TARGET_ARCH_IA32 | 
| OLD | NEW |