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/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 #include "src/compilation-info.h" | 6 #include "src/compilation-info.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 1867 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1878 __ ftrunc_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0)); | 1878 __ ftrunc_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
1879 break; | 1879 break; |
1880 } | 1880 } |
1881 case kMipsI32x4Neg: { | 1881 case kMipsI32x4Neg: { |
1882 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 1882 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
1883 __ xor_v(kSimd128RegZero, kSimd128RegZero, kSimd128RegZero); | 1883 __ xor_v(kSimd128RegZero, kSimd128RegZero, kSimd128RegZero); |
1884 __ subv_w(i.OutputSimd128Register(), kSimd128RegZero, | 1884 __ subv_w(i.OutputSimd128Register(), kSimd128RegZero, |
1885 i.InputSimd128Register(0)); | 1885 i.InputSimd128Register(0)); |
1886 break; | 1886 break; |
1887 } | 1887 } |
1888 case kMipsI32x4LtS: { | 1888 case kMipsI32x4GtS: { |
1889 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 1889 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
1890 __ clt_s_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 1890 __ clt_s_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
1891 i.InputSimd128Register(1)); | 1891 i.InputSimd128Register(0)); |
1892 break; | 1892 break; |
1893 } | 1893 } |
1894 case kMipsI32x4LeS: { | 1894 case kMipsI32x4GeS: { |
1895 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 1895 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
1896 __ cle_s_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 1896 __ cle_s_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
1897 i.InputSimd128Register(1)); | 1897 i.InputSimd128Register(0)); |
1898 break; | 1898 break; |
1899 } | 1899 } |
1900 case kMipsI32x4LtU: { | 1900 case kMipsI32x4GtU: { |
1901 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 1901 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
1902 __ clt_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 1902 __ clt_u_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
1903 i.InputSimd128Register(1)); | 1903 i.InputSimd128Register(0)); |
1904 break; | 1904 break; |
1905 } | 1905 } |
1906 case kMipsI32x4LeU: { | 1906 case kMipsI32x4GeU: { |
1907 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 1907 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
1908 __ cle_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 1908 __ cle_u_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
1909 i.InputSimd128Register(1)); | 1909 i.InputSimd128Register(0)); |
1910 break; | 1910 break; |
1911 } | 1911 } |
1912 case kMipsI16x8Splat: { | 1912 case kMipsI16x8Splat: { |
1913 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 1913 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
1914 __ fill_h(i.OutputSimd128Register(), i.InputRegister(0)); | 1914 __ fill_h(i.OutputSimd128Register(), i.InputRegister(0)); |
1915 break; | 1915 break; |
1916 } | 1916 } |
1917 case kMipsI16x8ExtractLane: { | 1917 case kMipsI16x8ExtractLane: { |
1918 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 1918 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
1919 __ copy_s_h(i.OutputRegister(), i.InputSimd128Register(0), | 1919 __ copy_s_h(i.OutputRegister(), i.InputSimd128Register(0), |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2003 i.InputSimd128Register(1)); | 2003 i.InputSimd128Register(1)); |
2004 break; | 2004 break; |
2005 } | 2005 } |
2006 case kMipsI16x8Ne: { | 2006 case kMipsI16x8Ne: { |
2007 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2007 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2008 Simd128Register dst = i.OutputSimd128Register(); | 2008 Simd128Register dst = i.OutputSimd128Register(); |
2009 __ ceq_h(dst, i.InputSimd128Register(0), i.InputSimd128Register(1)); | 2009 __ ceq_h(dst, i.InputSimd128Register(0), i.InputSimd128Register(1)); |
2010 __ nor_v(dst, dst, dst); | 2010 __ nor_v(dst, dst, dst); |
2011 break; | 2011 break; |
2012 } | 2012 } |
2013 case kMipsI16x8LtS: { | 2013 case kMipsI16x8GtS: { |
2014 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2014 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2015 __ clt_s_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2015 __ clt_s_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2016 i.InputSimd128Register(1)); | 2016 i.InputSimd128Register(0)); |
2017 break; | 2017 break; |
2018 } | 2018 } |
2019 case kMipsI16x8LeS: { | 2019 case kMipsI16x8GeS: { |
2020 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2020 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2021 __ cle_s_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2021 __ cle_s_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2022 i.InputSimd128Register(1)); | 2022 i.InputSimd128Register(0)); |
2023 break; | 2023 break; |
2024 } | 2024 } |
2025 case kMipsI16x8AddSaturateU: { | 2025 case kMipsI16x8AddSaturateU: { |
2026 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2026 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2027 __ adds_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2027 __ adds_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2028 i.InputSimd128Register(1)); | 2028 i.InputSimd128Register(1)); |
2029 break; | 2029 break; |
2030 } | 2030 } |
2031 case kMipsI16x8SubSaturateU: { | 2031 case kMipsI16x8SubSaturateU: { |
2032 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2032 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2033 __ subs_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2033 __ subs_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2034 i.InputSimd128Register(1)); | 2034 i.InputSimd128Register(1)); |
2035 break; | 2035 break; |
2036 } | 2036 } |
2037 case kMipsI16x8MaxU: { | 2037 case kMipsI16x8MaxU: { |
2038 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2038 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2039 __ max_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2039 __ max_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2040 i.InputSimd128Register(1)); | 2040 i.InputSimd128Register(1)); |
2041 break; | 2041 break; |
2042 } | 2042 } |
2043 case kMipsI16x8MinU: { | 2043 case kMipsI16x8MinU: { |
2044 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2044 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2045 __ min_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2045 __ min_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2046 i.InputSimd128Register(1)); | 2046 i.InputSimd128Register(1)); |
2047 break; | 2047 break; |
2048 } | 2048 } |
2049 case kMipsI16x8LtU: { | 2049 case kMipsI16x8GtU: { |
2050 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2050 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2051 __ clt_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2051 __ clt_u_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2052 i.InputSimd128Register(1)); | 2052 i.InputSimd128Register(0)); |
2053 break; | 2053 break; |
2054 } | 2054 } |
2055 case kMipsI16x8LeU: { | 2055 case kMipsI16x8GeU: { |
2056 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2056 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2057 __ cle_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2057 __ cle_u_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2058 i.InputSimd128Register(1)); | 2058 i.InputSimd128Register(0)); |
2059 break; | 2059 break; |
2060 } | 2060 } |
2061 case kMipsI8x16Splat: { | 2061 case kMipsI8x16Splat: { |
2062 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2062 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2063 __ fill_b(i.OutputSimd128Register(), i.InputRegister(0)); | 2063 __ fill_b(i.OutputSimd128Register(), i.InputRegister(0)); |
2064 break; | 2064 break; |
2065 } | 2065 } |
2066 case kMipsI8x16ExtractLane: { | 2066 case kMipsI8x16ExtractLane: { |
2067 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2067 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2068 __ copy_s_b(i.OutputRegister(), i.InputSimd128Register(0), | 2068 __ copy_s_b(i.OutputRegister(), i.InputSimd128Register(0), |
(...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2887 padding_size -= v8::internal::Assembler::kInstrSize; | 2887 padding_size -= v8::internal::Assembler::kInstrSize; |
2888 } | 2888 } |
2889 } | 2889 } |
2890 } | 2890 } |
2891 | 2891 |
2892 #undef __ | 2892 #undef __ |
2893 | 2893 |
2894 } // namespace compiler | 2894 } // namespace compiler |
2895 } // namespace internal | 2895 } // namespace internal |
2896 } // namespace v8 | 2896 } // namespace v8 |
OLD | NEW |