OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/ast/scopes.h" | 5 #include "src/ast/scopes.h" |
6 #include "src/compiler/code-generator.h" | 6 #include "src/compiler/code-generator.h" |
7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
10 #include "src/compiler/osr.h" | 10 #include "src/compiler/osr.h" |
(...skipping 1875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1886 FPURegister dst = g.ToDoubleRegister(destination); | 1886 FPURegister dst = g.ToDoubleRegister(destination); |
1887 __ Move(dst, src); | 1887 __ Move(dst, src); |
1888 } else { | 1888 } else { |
1889 DCHECK(destination->IsFPStackSlot()); | 1889 DCHECK(destination->IsFPStackSlot()); |
1890 __ sdc1(src, g.ToMemOperand(destination)); | 1890 __ sdc1(src, g.ToMemOperand(destination)); |
1891 } | 1891 } |
1892 } else if (source->IsFPStackSlot()) { | 1892 } else if (source->IsFPStackSlot()) { |
1893 DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot()); | 1893 DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot()); |
1894 MemOperand src = g.ToMemOperand(source); | 1894 MemOperand src = g.ToMemOperand(source); |
1895 if (destination->IsFPRegister()) { | 1895 if (destination->IsFPRegister()) { |
1896 __ ldc1(g.ToDoubleRegister(destination), src); | 1896 LocationOperand* op = LocationOperand::cast(source); |
| 1897 if (op->representation() == MachineRepresentation::kFloat64) { |
| 1898 __ ldc1(g.ToDoubleRegister(destination), src); |
| 1899 } else { |
| 1900 DCHECK_EQ(MachineRepresentation::kFloat32, op->representation()); |
| 1901 __ lwc1(g.ToDoubleRegister(destination), src); |
| 1902 } |
1897 } else { | 1903 } else { |
1898 FPURegister temp = kScratchDoubleReg; | 1904 FPURegister temp = kScratchDoubleReg; |
1899 __ ldc1(temp, src); | 1905 __ ldc1(temp, src); |
1900 __ sdc1(temp, g.ToMemOperand(destination)); | 1906 __ sdc1(temp, g.ToMemOperand(destination)); |
1901 } | 1907 } |
1902 } else { | 1908 } else { |
1903 UNREACHABLE(); | 1909 UNREACHABLE(); |
1904 } | 1910 } |
1905 } | 1911 } |
1906 | 1912 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1998 padding_size -= v8::internal::Assembler::kInstrSize; | 2004 padding_size -= v8::internal::Assembler::kInstrSize; |
1999 } | 2005 } |
2000 } | 2006 } |
2001 } | 2007 } |
2002 | 2008 |
2003 #undef __ | 2009 #undef __ |
2004 | 2010 |
2005 } // namespace compiler | 2011 } // namespace compiler |
2006 } // namespace internal | 2012 } // namespace internal |
2007 } // namespace v8 | 2013 } // namespace v8 |
OLD | NEW |