Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(460)

Side by Side Diff: src/ia32/assembler-ia32.cc

Issue 12391055: Cleaned up CpuFeature scope handling. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixed nits Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ia32/assembler-ia32.h ('k') | src/ia32/code-stubs-ia32.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 namespace v8 { 45 namespace v8 {
46 namespace internal { 46 namespace internal {
47 47
48 // ----------------------------------------------------------------------------- 48 // -----------------------------------------------------------------------------
49 // Implementation of CpuFeatures 49 // Implementation of CpuFeatures
50 50
51 #ifdef DEBUG 51 #ifdef DEBUG
52 bool CpuFeatures::initialized_ = false; 52 bool CpuFeatures::initialized_ = false;
53 #endif 53 #endif
54 uint64_t CpuFeatures::supported_ = 0; 54 uint64_t CpuFeatures::supported_ = 0;
55 uint64_t CpuFeatures::found_by_runtime_probing_ = 0; 55 uint64_t CpuFeatures::found_by_runtime_probing_only_ = 0;
56 56
57 57
58 ExternalReference ExternalReference::cpu_features() { 58 ExternalReference ExternalReference::cpu_features() {
59 ASSERT(CpuFeatures::initialized_); 59 ASSERT(CpuFeatures::initialized_);
60 return ExternalReference(&CpuFeatures::supported_); 60 return ExternalReference(&CpuFeatures::supported_);
61 } 61 }
62 62
63 63
64 int IntelDoubleRegister::NumAllocatableRegisters() { 64 int IntelDoubleRegister::NumAllocatableRegisters() {
65 if (CpuFeatures::IsSupported(SSE2)) { 65 if (CpuFeatures::IsSupported(SSE2)) {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 __ xor_(eax, eax); 139 __ xor_(eax, eax);
140 __ xor_(edx, edx); 140 __ xor_(edx, edx);
141 __ jmp(&done); 141 __ jmp(&done);
142 142
143 // Invoke CPUID with 1 in eax to get feature information in 143 // Invoke CPUID with 1 in eax to get feature information in
144 // ecx:edx. Temporarily enable CPUID support because we know it's 144 // ecx:edx. Temporarily enable CPUID support because we know it's
145 // safe here. 145 // safe here.
146 __ bind(&cpuid); 146 __ bind(&cpuid);
147 __ mov(eax, 1); 147 __ mov(eax, 1);
148 supported_ = (1 << CPUID); 148 supported_ = (1 << CPUID);
149 { Scope fscope(CPUID); 149 { CpuFeatureScope fscope(&assm, CPUID);
150 __ cpuid(); 150 __ cpuid();
151 } 151 }
152 supported_ = 0; 152 supported_ = 0;
153 153
154 // Move the result from ecx:edx to edx:eax and make sure to mark the 154 // Move the result from ecx:edx to edx:eax and make sure to mark the
155 // CPUID feature as supported. 155 // CPUID feature as supported.
156 __ mov(eax, edx); 156 __ mov(eax, edx);
157 __ or_(eax, 1 << CPUID); 157 __ or_(eax, 1 << CPUID);
158 __ mov(edx, ecx); 158 __ mov(edx, ecx);
159 159
160 // Done. 160 // Done.
161 __ bind(&done); 161 __ bind(&done);
162 __ mov(esp, ebp); 162 __ mov(esp, ebp);
163 __ pop(ebx); 163 __ pop(ebx);
164 __ pop(ecx); 164 __ pop(ecx);
165 __ popfd(); 165 __ popfd();
166 __ pop(ebp); 166 __ pop(ebp);
167 __ ret(0); 167 __ ret(0);
168 #undef __ 168 #undef __
169 169
170 typedef uint64_t (*F0)(); 170 typedef uint64_t (*F0)();
171 F0 probe = FUNCTION_CAST<F0>(reinterpret_cast<Address>(memory->address())); 171 F0 probe = FUNCTION_CAST<F0>(reinterpret_cast<Address>(memory->address()));
172 supported_ = probe(); 172 uint64_t probed_features = probe();
173 found_by_runtime_probing_ = supported_; 173 uint64_t platform_features = OS::CpuFeaturesImpliedByPlatform();
174 uint64_t os_guarantees = OS::CpuFeaturesImpliedByPlatform(); 174 supported_ = probed_features | platform_features;
175 supported_ |= os_guarantees; 175 found_by_runtime_probing_only_ = probed_features & ~platform_features;
176 found_by_runtime_probing_ &= ~os_guarantees;
177 176
178 delete memory; 177 delete memory;
179 } 178 }
180 179
181 180
182 // ----------------------------------------------------------------------------- 181 // -----------------------------------------------------------------------------
183 // Implementation of Displacement 182 // Implementation of Displacement
184 183
185 void Displacement::init(Label* L, Type type) { 184 void Displacement::init(Label* L, Type type) {
186 ASSERT(!L->is_bound()); 185 ASSERT(!L->is_bound());
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 } 467 }
469 } 468 }
470 469
471 470
472 void Assembler::CodeTargetAlign() { 471 void Assembler::CodeTargetAlign() {
473 Align(16); // Preferred alignment of jump targets on ia32. 472 Align(16); // Preferred alignment of jump targets on ia32.
474 } 473 }
475 474
476 475
477 void Assembler::cpuid() { 476 void Assembler::cpuid() {
478 ASSERT(CpuFeatures::IsEnabled(CPUID)); 477 ASSERT(IsEnabled(CPUID));
479 EnsureSpace ensure_space(this); 478 EnsureSpace ensure_space(this);
480 EMIT(0x0F); 479 EMIT(0x0F);
481 EMIT(0xA2); 480 EMIT(0xA2);
482 } 481 }
483 482
484 483
485 void Assembler::pushad() { 484 void Assembler::pushad() {
486 EnsureSpace ensure_space(this); 485 EnsureSpace ensure_space(this);
487 EMIT(0x60); 486 EMIT(0x60);
488 } 487 }
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 689
691 void Assembler::movzx_w(Register dst, const Operand& src) { 690 void Assembler::movzx_w(Register dst, const Operand& src) {
692 EnsureSpace ensure_space(this); 691 EnsureSpace ensure_space(this);
693 EMIT(0x0F); 692 EMIT(0x0F);
694 EMIT(0xB7); 693 EMIT(0xB7);
695 emit_operand(dst, src); 694 emit_operand(dst, src);
696 } 695 }
697 696
698 697
699 void Assembler::cmov(Condition cc, Register dst, const Operand& src) { 698 void Assembler::cmov(Condition cc, Register dst, const Operand& src) {
700 ASSERT(CpuFeatures::IsEnabled(CMOV)); 699 ASSERT(IsEnabled(CMOV));
701 EnsureSpace ensure_space(this); 700 EnsureSpace ensure_space(this);
702 // Opcode: 0f 40 + cc /r. 701 // Opcode: 0f 40 + cc /r.
703 EMIT(0x0F); 702 EMIT(0x0F);
704 EMIT(0x40 + cc); 703 EMIT(0x40 + cc);
705 emit_operand(dst, src); 704 emit_operand(dst, src);
706 } 705 }
707 706
708 707
709 void Assembler::cld() { 708 void Assembler::cld() {
710 EnsureSpace ensure_space(this); 709 EnsureSpace ensure_space(this);
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
1299 } 1298 }
1300 1299
1301 1300
1302 void Assembler::nop() { 1301 void Assembler::nop() {
1303 EnsureSpace ensure_space(this); 1302 EnsureSpace ensure_space(this);
1304 EMIT(0x90); 1303 EMIT(0x90);
1305 } 1304 }
1306 1305
1307 1306
1308 void Assembler::rdtsc() { 1307 void Assembler::rdtsc() {
1309 ASSERT(CpuFeatures::IsEnabled(RDTSC)); 1308 ASSERT(IsEnabled(RDTSC));
1310 EnsureSpace ensure_space(this); 1309 EnsureSpace ensure_space(this);
1311 EMIT(0x0F); 1310 EMIT(0x0F);
1312 EMIT(0x31); 1311 EMIT(0x31);
1313 } 1312 }
1314 1313
1315 1314
1316 void Assembler::ret(int imm16) { 1315 void Assembler::ret(int imm16) {
1317 EnsureSpace ensure_space(this); 1316 EnsureSpace ensure_space(this);
1318 ASSERT(is_uint16(imm16)); 1317 ASSERT(is_uint16(imm16));
1319 if (imm16 == 0) { 1318 if (imm16 == 0) {
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
1653 1652
1654 1653
1655 void Assembler::fistp_s(const Operand& adr) { 1654 void Assembler::fistp_s(const Operand& adr) {
1656 EnsureSpace ensure_space(this); 1655 EnsureSpace ensure_space(this);
1657 EMIT(0xDB); 1656 EMIT(0xDB);
1658 emit_operand(ebx, adr); 1657 emit_operand(ebx, adr);
1659 } 1658 }
1660 1659
1661 1660
1662 void Assembler::fisttp_s(const Operand& adr) { 1661 void Assembler::fisttp_s(const Operand& adr) {
1663 ASSERT(CpuFeatures::IsEnabled(SSE3)); 1662 ASSERT(IsEnabled(SSE3));
1664 EnsureSpace ensure_space(this); 1663 EnsureSpace ensure_space(this);
1665 EMIT(0xDB); 1664 EMIT(0xDB);
1666 emit_operand(ecx, adr); 1665 emit_operand(ecx, adr);
1667 } 1666 }
1668 1667
1669 1668
1670 void Assembler::fisttp_d(const Operand& adr) { 1669 void Assembler::fisttp_d(const Operand& adr) {
1671 ASSERT(CpuFeatures::IsEnabled(SSE3)); 1670 ASSERT(IsEnabled(SSE3));
1672 EnsureSpace ensure_space(this); 1671 EnsureSpace ensure_space(this);
1673 EMIT(0xDD); 1672 EMIT(0xDD);
1674 emit_operand(ecx, adr); 1673 emit_operand(ecx, adr);
1675 } 1674 }
1676 1675
1677 1676
1678 void Assembler::fist_s(const Operand& adr) { 1677 void Assembler::fist_s(const Operand& adr) {
1679 EnsureSpace ensure_space(this); 1678 EnsureSpace ensure_space(this);
1680 EMIT(0xDB); 1679 EMIT(0xDB);
1681 emit_operand(edx, adr); 1680 emit_operand(edx, adr);
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
1923 void Assembler::setcc(Condition cc, Register reg) { 1922 void Assembler::setcc(Condition cc, Register reg) {
1924 ASSERT(reg.is_byte_register()); 1923 ASSERT(reg.is_byte_register());
1925 EnsureSpace ensure_space(this); 1924 EnsureSpace ensure_space(this);
1926 EMIT(0x0F); 1925 EMIT(0x0F);
1927 EMIT(0x90 | cc); 1926 EMIT(0x90 | cc);
1928 EMIT(0xC0 | reg.code()); 1927 EMIT(0xC0 | reg.code());
1929 } 1928 }
1930 1929
1931 1930
1932 void Assembler::cvttss2si(Register dst, const Operand& src) { 1931 void Assembler::cvttss2si(Register dst, const Operand& src) {
1933 ASSERT(CpuFeatures::IsEnabled(SSE2)); 1932 ASSERT(IsEnabled(SSE2));
1934 EnsureSpace ensure_space(this); 1933 EnsureSpace ensure_space(this);
1935 EMIT(0xF3); 1934 EMIT(0xF3);
1936 EMIT(0x0F); 1935 EMIT(0x0F);
1937 EMIT(0x2C); 1936 EMIT(0x2C);
1938 emit_operand(dst, src); 1937 emit_operand(dst, src);
1939 } 1938 }
1940 1939
1941 1940
1942 void Assembler::cvttsd2si(Register dst, const Operand& src) { 1941 void Assembler::cvttsd2si(Register dst, const Operand& src) {
1943 ASSERT(CpuFeatures::IsEnabled(SSE2)); 1942 ASSERT(IsEnabled(SSE2));
1944 EnsureSpace ensure_space(this); 1943 EnsureSpace ensure_space(this);
1945 EMIT(0xF2); 1944 EMIT(0xF2);
1946 EMIT(0x0F); 1945 EMIT(0x0F);
1947 EMIT(0x2C); 1946 EMIT(0x2C);
1948 emit_operand(dst, src); 1947 emit_operand(dst, src);
1949 } 1948 }
1950 1949
1951 1950
1952 void Assembler::cvtsd2si(Register dst, XMMRegister src) { 1951 void Assembler::cvtsd2si(Register dst, XMMRegister src) {
1953 ASSERT(CpuFeatures::IsEnabled(SSE2)); 1952 ASSERT(IsEnabled(SSE2));
1954 EnsureSpace ensure_space(this); 1953 EnsureSpace ensure_space(this);
1955 EMIT(0xF2); 1954 EMIT(0xF2);
1956 EMIT(0x0F); 1955 EMIT(0x0F);
1957 EMIT(0x2D); 1956 EMIT(0x2D);
1958 emit_sse_operand(dst, src); 1957 emit_sse_operand(dst, src);
1959 } 1958 }
1960 1959
1961 1960
1962 void Assembler::cvtsi2sd(XMMRegister dst, const Operand& src) { 1961 void Assembler::cvtsi2sd(XMMRegister dst, const Operand& src) {
1963 ASSERT(CpuFeatures::IsEnabled(SSE2)); 1962 ASSERT(IsEnabled(SSE2));
1964 EnsureSpace ensure_space(this); 1963 EnsureSpace ensure_space(this);
1965 EMIT(0xF2); 1964 EMIT(0xF2);
1966 EMIT(0x0F); 1965 EMIT(0x0F);
1967 EMIT(0x2A); 1966 EMIT(0x2A);
1968 emit_sse_operand(dst, src); 1967 emit_sse_operand(dst, src);
1969 } 1968 }
1970 1969
1971 1970
1972 void Assembler::cvtss2sd(XMMRegister dst, XMMRegister src) { 1971 void Assembler::cvtss2sd(XMMRegister dst, XMMRegister src) {
1973 ASSERT(CpuFeatures::IsEnabled(SSE2)); 1972 ASSERT(IsEnabled(SSE2));
1974 EnsureSpace ensure_space(this); 1973 EnsureSpace ensure_space(this);
1975 EMIT(0xF3); 1974 EMIT(0xF3);
1976 EMIT(0x0F); 1975 EMIT(0x0F);
1977 EMIT(0x5A); 1976 EMIT(0x5A);
1978 emit_sse_operand(dst, src); 1977 emit_sse_operand(dst, src);
1979 } 1978 }
1980 1979
1981 1980
1982 void Assembler::cvtsd2ss(XMMRegister dst, XMMRegister src) { 1981 void Assembler::cvtsd2ss(XMMRegister dst, XMMRegister src) {
1983 ASSERT(CpuFeatures::IsEnabled(SSE2)); 1982 ASSERT(IsEnabled(SSE2));
1984 EnsureSpace ensure_space(this); 1983 EnsureSpace ensure_space(this);
1985 EMIT(0xF2); 1984 EMIT(0xF2);
1986 EMIT(0x0F); 1985 EMIT(0x0F);
1987 EMIT(0x5A); 1986 EMIT(0x5A);
1988 emit_sse_operand(dst, src); 1987 emit_sse_operand(dst, src);
1989 } 1988 }
1990 1989
1991 1990
1992 void Assembler::addsd(XMMRegister dst, XMMRegister src) { 1991 void Assembler::addsd(XMMRegister dst, XMMRegister src) {
1993 ASSERT(CpuFeatures::IsEnabled(SSE2)); 1992 ASSERT(IsEnabled(SSE2));
1994 EnsureSpace ensure_space(this); 1993 EnsureSpace ensure_space(this);
1995 EMIT(0xF2); 1994 EMIT(0xF2);
1996 EMIT(0x0F); 1995 EMIT(0x0F);
1997 EMIT(0x58); 1996 EMIT(0x58);
1998 emit_sse_operand(dst, src); 1997 emit_sse_operand(dst, src);
1999 } 1998 }
2000 1999
2001 2000
2002 void Assembler::addsd(XMMRegister dst, const Operand& src) { 2001 void Assembler::addsd(XMMRegister dst, const Operand& src) {
2003 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2002 ASSERT(IsEnabled(SSE2));
2004 EnsureSpace ensure_space(this); 2003 EnsureSpace ensure_space(this);
2005 EMIT(0xF2); 2004 EMIT(0xF2);
2006 EMIT(0x0F); 2005 EMIT(0x0F);
2007 EMIT(0x58); 2006 EMIT(0x58);
2008 emit_sse_operand(dst, src); 2007 emit_sse_operand(dst, src);
2009 } 2008 }
2010 2009
2011 2010
2012 void Assembler::mulsd(XMMRegister dst, XMMRegister src) { 2011 void Assembler::mulsd(XMMRegister dst, XMMRegister src) {
2013 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2012 ASSERT(IsEnabled(SSE2));
2014 EnsureSpace ensure_space(this); 2013 EnsureSpace ensure_space(this);
2015 EMIT(0xF2); 2014 EMIT(0xF2);
2016 EMIT(0x0F); 2015 EMIT(0x0F);
2017 EMIT(0x59); 2016 EMIT(0x59);
2018 emit_sse_operand(dst, src); 2017 emit_sse_operand(dst, src);
2019 } 2018 }
2020 2019
2021 2020
2022 void Assembler::mulsd(XMMRegister dst, const Operand& src) { 2021 void Assembler::mulsd(XMMRegister dst, const Operand& src) {
2023 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2022 ASSERT(IsEnabled(SSE2));
2024 EnsureSpace ensure_space(this); 2023 EnsureSpace ensure_space(this);
2025 EMIT(0xF2); 2024 EMIT(0xF2);
2026 EMIT(0x0F); 2025 EMIT(0x0F);
2027 EMIT(0x59); 2026 EMIT(0x59);
2028 emit_sse_operand(dst, src); 2027 emit_sse_operand(dst, src);
2029 } 2028 }
2030 2029
2031 2030
2032 void Assembler::subsd(XMMRegister dst, XMMRegister src) { 2031 void Assembler::subsd(XMMRegister dst, XMMRegister src) {
2033 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2032 ASSERT(IsEnabled(SSE2));
2034 EnsureSpace ensure_space(this); 2033 EnsureSpace ensure_space(this);
2035 EMIT(0xF2); 2034 EMIT(0xF2);
2036 EMIT(0x0F); 2035 EMIT(0x0F);
2037 EMIT(0x5C); 2036 EMIT(0x5C);
2038 emit_sse_operand(dst, src); 2037 emit_sse_operand(dst, src);
2039 } 2038 }
2040 2039
2041 2040
2042 void Assembler::divsd(XMMRegister dst, XMMRegister src) { 2041 void Assembler::divsd(XMMRegister dst, XMMRegister src) {
2043 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2042 ASSERT(IsEnabled(SSE2));
2044 EnsureSpace ensure_space(this); 2043 EnsureSpace ensure_space(this);
2045 EMIT(0xF2); 2044 EMIT(0xF2);
2046 EMIT(0x0F); 2045 EMIT(0x0F);
2047 EMIT(0x5E); 2046 EMIT(0x5E);
2048 emit_sse_operand(dst, src); 2047 emit_sse_operand(dst, src);
2049 } 2048 }
2050 2049
2051 2050
2052 void Assembler::xorpd(XMMRegister dst, XMMRegister src) { 2051 void Assembler::xorpd(XMMRegister dst, XMMRegister src) {
2053 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2052 ASSERT(IsEnabled(SSE2));
2054 EnsureSpace ensure_space(this); 2053 EnsureSpace ensure_space(this);
2055 EMIT(0x66); 2054 EMIT(0x66);
2056 EMIT(0x0F); 2055 EMIT(0x0F);
2057 EMIT(0x57); 2056 EMIT(0x57);
2058 emit_sse_operand(dst, src); 2057 emit_sse_operand(dst, src);
2059 } 2058 }
2060 2059
2061 2060
2062 void Assembler::xorps(XMMRegister dst, XMMRegister src) { 2061 void Assembler::xorps(XMMRegister dst, XMMRegister src) {
2063 EnsureSpace ensure_space(this); 2062 EnsureSpace ensure_space(this);
(...skipping 24 matching lines...) Expand all
2088 void Assembler::orpd(XMMRegister dst, XMMRegister src) { 2087 void Assembler::orpd(XMMRegister dst, XMMRegister src) {
2089 EnsureSpace ensure_space(this); 2088 EnsureSpace ensure_space(this);
2090 EMIT(0x66); 2089 EMIT(0x66);
2091 EMIT(0x0F); 2090 EMIT(0x0F);
2092 EMIT(0x56); 2091 EMIT(0x56);
2093 emit_sse_operand(dst, src); 2092 emit_sse_operand(dst, src);
2094 } 2093 }
2095 2094
2096 2095
2097 void Assembler::ucomisd(XMMRegister dst, XMMRegister src) { 2096 void Assembler::ucomisd(XMMRegister dst, XMMRegister src) {
2098 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2097 ASSERT(IsEnabled(SSE2));
2099 EnsureSpace ensure_space(this); 2098 EnsureSpace ensure_space(this);
2100 EMIT(0x66); 2099 EMIT(0x66);
2101 EMIT(0x0F); 2100 EMIT(0x0F);
2102 EMIT(0x2E); 2101 EMIT(0x2E);
2103 emit_sse_operand(dst, src); 2102 emit_sse_operand(dst, src);
2104 } 2103 }
2105 2104
2106 2105
2107 void Assembler::ucomisd(XMMRegister dst, const Operand& src) { 2106 void Assembler::ucomisd(XMMRegister dst, const Operand& src) {
2108 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2107 ASSERT(IsEnabled(SSE2));
2109 EnsureSpace ensure_space(this); 2108 EnsureSpace ensure_space(this);
2110 EMIT(0x66); 2109 EMIT(0x66);
2111 EMIT(0x0F); 2110 EMIT(0x0F);
2112 EMIT(0x2E); 2111 EMIT(0x2E);
2113 emit_sse_operand(dst, src); 2112 emit_sse_operand(dst, src);
2114 } 2113 }
2115 2114
2116 2115
2117 void Assembler::roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode) { 2116 void Assembler::roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode) {
2118 ASSERT(CpuFeatures::IsEnabled(SSE4_1)); 2117 ASSERT(IsEnabled(SSE4_1));
2119 EnsureSpace ensure_space(this); 2118 EnsureSpace ensure_space(this);
2120 EMIT(0x66); 2119 EMIT(0x66);
2121 EMIT(0x0F); 2120 EMIT(0x0F);
2122 EMIT(0x3A); 2121 EMIT(0x3A);
2123 EMIT(0x0B); 2122 EMIT(0x0B);
2124 emit_sse_operand(dst, src); 2123 emit_sse_operand(dst, src);
2125 // Mask precision exeption. 2124 // Mask precision exeption.
2126 EMIT(static_cast<byte>(mode) | 0x8); 2125 EMIT(static_cast<byte>(mode) | 0x8);
2127 } 2126 }
2128 2127
2129 void Assembler::movmskpd(Register dst, XMMRegister src) { 2128 void Assembler::movmskpd(Register dst, XMMRegister src) {
2130 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2129 ASSERT(IsEnabled(SSE2));
2131 EnsureSpace ensure_space(this); 2130 EnsureSpace ensure_space(this);
2132 EMIT(0x66); 2131 EMIT(0x66);
2133 EMIT(0x0F); 2132 EMIT(0x0F);
2134 EMIT(0x50); 2133 EMIT(0x50);
2135 emit_sse_operand(dst, src); 2134 emit_sse_operand(dst, src);
2136 } 2135 }
2137 2136
2138 2137
2139 void Assembler::movmskps(Register dst, XMMRegister src) { 2138 void Assembler::movmskps(Register dst, XMMRegister src) {
2140 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2139 ASSERT(IsEnabled(SSE2));
2141 EnsureSpace ensure_space(this); 2140 EnsureSpace ensure_space(this);
2142 EMIT(0x0F); 2141 EMIT(0x0F);
2143 EMIT(0x50); 2142 EMIT(0x50);
2144 emit_sse_operand(dst, src); 2143 emit_sse_operand(dst, src);
2145 } 2144 }
2146 2145
2147 2146
2148 void Assembler::pcmpeqd(XMMRegister dst, XMMRegister src) { 2147 void Assembler::pcmpeqd(XMMRegister dst, XMMRegister src) {
2149 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2148 ASSERT(IsEnabled(SSE2));
2150 EnsureSpace ensure_space(this); 2149 EnsureSpace ensure_space(this);
2151 EMIT(0x66); 2150 EMIT(0x66);
2152 EMIT(0x0F); 2151 EMIT(0x0F);
2153 EMIT(0x76); 2152 EMIT(0x76);
2154 emit_sse_operand(dst, src); 2153 emit_sse_operand(dst, src);
2155 } 2154 }
2156 2155
2157 2156
2158 void Assembler::cmpltsd(XMMRegister dst, XMMRegister src) { 2157 void Assembler::cmpltsd(XMMRegister dst, XMMRegister src) {
2159 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2158 ASSERT(IsEnabled(SSE2));
2160 EnsureSpace ensure_space(this); 2159 EnsureSpace ensure_space(this);
2161 EMIT(0xF2); 2160 EMIT(0xF2);
2162 EMIT(0x0F); 2161 EMIT(0x0F);
2163 EMIT(0xC2); 2162 EMIT(0xC2);
2164 emit_sse_operand(dst, src); 2163 emit_sse_operand(dst, src);
2165 EMIT(1); // LT == 1 2164 EMIT(1); // LT == 1
2166 } 2165 }
2167 2166
2168 2167
2169 void Assembler::movaps(XMMRegister dst, XMMRegister src) { 2168 void Assembler::movaps(XMMRegister dst, XMMRegister src) {
2170 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2169 ASSERT(IsEnabled(SSE2));
2171 EnsureSpace ensure_space(this); 2170 EnsureSpace ensure_space(this);
2172 EMIT(0x0F); 2171 EMIT(0x0F);
2173 EMIT(0x28); 2172 EMIT(0x28);
2174 emit_sse_operand(dst, src); 2173 emit_sse_operand(dst, src);
2175 } 2174 }
2176 2175
2177 2176
2178 void Assembler::movdqa(const Operand& dst, XMMRegister src) { 2177 void Assembler::movdqa(const Operand& dst, XMMRegister src) {
2179 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2178 ASSERT(IsEnabled(SSE2));
2180 EnsureSpace ensure_space(this); 2179 EnsureSpace ensure_space(this);
2181 EMIT(0x66); 2180 EMIT(0x66);
2182 EMIT(0x0F); 2181 EMIT(0x0F);
2183 EMIT(0x7F); 2182 EMIT(0x7F);
2184 emit_sse_operand(src, dst); 2183 emit_sse_operand(src, dst);
2185 } 2184 }
2186 2185
2187 2186
2188 void Assembler::movdqa(XMMRegister dst, const Operand& src) { 2187 void Assembler::movdqa(XMMRegister dst, const Operand& src) {
2189 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2188 ASSERT(IsEnabled(SSE2));
2190 EnsureSpace ensure_space(this); 2189 EnsureSpace ensure_space(this);
2191 EMIT(0x66); 2190 EMIT(0x66);
2192 EMIT(0x0F); 2191 EMIT(0x0F);
2193 EMIT(0x6F); 2192 EMIT(0x6F);
2194 emit_sse_operand(dst, src); 2193 emit_sse_operand(dst, src);
2195 } 2194 }
2196 2195
2197 2196
2198 void Assembler::movdqu(const Operand& dst, XMMRegister src ) { 2197 void Assembler::movdqu(const Operand& dst, XMMRegister src ) {
2199 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2198 ASSERT(IsEnabled(SSE2));
2200 EnsureSpace ensure_space(this); 2199 EnsureSpace ensure_space(this);
2201 EMIT(0xF3); 2200 EMIT(0xF3);
2202 EMIT(0x0F); 2201 EMIT(0x0F);
2203 EMIT(0x7F); 2202 EMIT(0x7F);
2204 emit_sse_operand(src, dst); 2203 emit_sse_operand(src, dst);
2205 } 2204 }
2206 2205
2207 2206
2208 void Assembler::movdqu(XMMRegister dst, const Operand& src) { 2207 void Assembler::movdqu(XMMRegister dst, const Operand& src) {
2209 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2208 ASSERT(IsEnabled(SSE2));
2210 EnsureSpace ensure_space(this); 2209 EnsureSpace ensure_space(this);
2211 EMIT(0xF3); 2210 EMIT(0xF3);
2212 EMIT(0x0F); 2211 EMIT(0x0F);
2213 EMIT(0x6F); 2212 EMIT(0x6F);
2214 emit_sse_operand(dst, src); 2213 emit_sse_operand(dst, src);
2215 } 2214 }
2216 2215
2217 2216
2218 void Assembler::movntdqa(XMMRegister dst, const Operand& src) { 2217 void Assembler::movntdqa(XMMRegister dst, const Operand& src) {
2219 ASSERT(CpuFeatures::IsEnabled(SSE4_1)); 2218 ASSERT(IsEnabled(SSE4_1));
2220 EnsureSpace ensure_space(this); 2219 EnsureSpace ensure_space(this);
2221 EMIT(0x66); 2220 EMIT(0x66);
2222 EMIT(0x0F); 2221 EMIT(0x0F);
2223 EMIT(0x38); 2222 EMIT(0x38);
2224 EMIT(0x2A); 2223 EMIT(0x2A);
2225 emit_sse_operand(dst, src); 2224 emit_sse_operand(dst, src);
2226 } 2225 }
2227 2226
2228 2227
2229 void Assembler::movntdq(const Operand& dst, XMMRegister src) { 2228 void Assembler::movntdq(const Operand& dst, XMMRegister src) {
2230 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2229 ASSERT(IsEnabled(SSE2));
2231 EnsureSpace ensure_space(this); 2230 EnsureSpace ensure_space(this);
2232 EMIT(0x66); 2231 EMIT(0x66);
2233 EMIT(0x0F); 2232 EMIT(0x0F);
2234 EMIT(0xE7); 2233 EMIT(0xE7);
2235 emit_sse_operand(src, dst); 2234 emit_sse_operand(src, dst);
2236 } 2235 }
2237 2236
2238 2237
2239 void Assembler::prefetch(const Operand& src, int level) { 2238 void Assembler::prefetch(const Operand& src, int level) {
2240 ASSERT(is_uint2(level)); 2239 ASSERT(is_uint2(level));
(...skipping 12 matching lines...) Expand all
2253 } 2252 }
2254 2253
2255 2254
2256 void Assembler::movdbl(const Operand& dst, XMMRegister src) { 2255 void Assembler::movdbl(const Operand& dst, XMMRegister src) {
2257 EnsureSpace ensure_space(this); 2256 EnsureSpace ensure_space(this);
2258 movsd(dst, src); 2257 movsd(dst, src);
2259 } 2258 }
2260 2259
2261 2260
2262 void Assembler::movsd(const Operand& dst, XMMRegister src ) { 2261 void Assembler::movsd(const Operand& dst, XMMRegister src ) {
2263 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2262 ASSERT(IsEnabled(SSE2));
2264 EnsureSpace ensure_space(this); 2263 EnsureSpace ensure_space(this);
2265 EMIT(0xF2); // double 2264 EMIT(0xF2); // double
2266 EMIT(0x0F); 2265 EMIT(0x0F);
2267 EMIT(0x11); // store 2266 EMIT(0x11); // store
2268 emit_sse_operand(src, dst); 2267 emit_sse_operand(src, dst);
2269 } 2268 }
2270 2269
2271 2270
2272 void Assembler::movsd(XMMRegister dst, const Operand& src) { 2271 void Assembler::movsd(XMMRegister dst, const Operand& src) {
2273 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2272 ASSERT(IsEnabled(SSE2));
2274 EnsureSpace ensure_space(this); 2273 EnsureSpace ensure_space(this);
2275 EMIT(0xF2); // double 2274 EMIT(0xF2); // double
2276 EMIT(0x0F); 2275 EMIT(0x0F);
2277 EMIT(0x10); // load 2276 EMIT(0x10); // load
2278 emit_sse_operand(dst, src); 2277 emit_sse_operand(dst, src);
2279 } 2278 }
2280 2279
2281 2280
2282 void Assembler::movsd(XMMRegister dst, XMMRegister src) { 2281 void Assembler::movsd(XMMRegister dst, XMMRegister src) {
2283 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2282 ASSERT(IsEnabled(SSE2));
2284 EnsureSpace ensure_space(this); 2283 EnsureSpace ensure_space(this);
2285 EMIT(0xF2); 2284 EMIT(0xF2);
2286 EMIT(0x0F); 2285 EMIT(0x0F);
2287 EMIT(0x10); 2286 EMIT(0x10);
2288 emit_sse_operand(dst, src); 2287 emit_sse_operand(dst, src);
2289 } 2288 }
2290 2289
2291 2290
2292 void Assembler::movss(const Operand& dst, XMMRegister src ) { 2291 void Assembler::movss(const Operand& dst, XMMRegister src ) {
2293 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2292 ASSERT(IsEnabled(SSE2));
2294 EnsureSpace ensure_space(this); 2293 EnsureSpace ensure_space(this);
2295 EMIT(0xF3); // float 2294 EMIT(0xF3); // float
2296 EMIT(0x0F); 2295 EMIT(0x0F);
2297 EMIT(0x11); // store 2296 EMIT(0x11); // store
2298 emit_sse_operand(src, dst); 2297 emit_sse_operand(src, dst);
2299 } 2298 }
2300 2299
2301 2300
2302 void Assembler::movss(XMMRegister dst, const Operand& src) { 2301 void Assembler::movss(XMMRegister dst, const Operand& src) {
2303 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2302 ASSERT(IsEnabled(SSE2));
2304 EnsureSpace ensure_space(this); 2303 EnsureSpace ensure_space(this);
2305 EMIT(0xF3); // float 2304 EMIT(0xF3); // float
2306 EMIT(0x0F); 2305 EMIT(0x0F);
2307 EMIT(0x10); // load 2306 EMIT(0x10); // load
2308 emit_sse_operand(dst, src); 2307 emit_sse_operand(dst, src);
2309 } 2308 }
2310 2309
2311 2310
2312 void Assembler::movss(XMMRegister dst, XMMRegister src) { 2311 void Assembler::movss(XMMRegister dst, XMMRegister src) {
2313 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2312 ASSERT(IsEnabled(SSE2));
2314 EnsureSpace ensure_space(this); 2313 EnsureSpace ensure_space(this);
2315 EMIT(0xF3); 2314 EMIT(0xF3);
2316 EMIT(0x0F); 2315 EMIT(0x0F);
2317 EMIT(0x10); 2316 EMIT(0x10);
2318 emit_sse_operand(dst, src); 2317 emit_sse_operand(dst, src);
2319 } 2318 }
2320 2319
2321 2320
2322 void Assembler::movd(XMMRegister dst, const Operand& src) { 2321 void Assembler::movd(XMMRegister dst, const Operand& src) {
2323 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2322 ASSERT(IsEnabled(SSE2));
2324 EnsureSpace ensure_space(this); 2323 EnsureSpace ensure_space(this);
2325 EMIT(0x66); 2324 EMIT(0x66);
2326 EMIT(0x0F); 2325 EMIT(0x0F);
2327 EMIT(0x6E); 2326 EMIT(0x6E);
2328 emit_sse_operand(dst, src); 2327 emit_sse_operand(dst, src);
2329 } 2328 }
2330 2329
2331 2330
2332 void Assembler::movd(const Operand& dst, XMMRegister src) { 2331 void Assembler::movd(const Operand& dst, XMMRegister src) {
2333 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2332 ASSERT(IsEnabled(SSE2));
2334 EnsureSpace ensure_space(this); 2333 EnsureSpace ensure_space(this);
2335 EMIT(0x66); 2334 EMIT(0x66);
2336 EMIT(0x0F); 2335 EMIT(0x0F);
2337 EMIT(0x7E); 2336 EMIT(0x7E);
2338 emit_sse_operand(src, dst); 2337 emit_sse_operand(src, dst);
2339 } 2338 }
2340 2339
2341 2340
2342 void Assembler::extractps(Register dst, XMMRegister src, byte imm8) { 2341 void Assembler::extractps(Register dst, XMMRegister src, byte imm8) {
2343 ASSERT(CpuFeatures::IsSupported(SSE4_1)); 2342 ASSERT(CpuFeatures::IsSupported(SSE4_1));
2344 ASSERT(is_uint8(imm8)); 2343 ASSERT(is_uint8(imm8));
2345 EnsureSpace ensure_space(this); 2344 EnsureSpace ensure_space(this);
2346 EMIT(0x66); 2345 EMIT(0x66);
2347 EMIT(0x0F); 2346 EMIT(0x0F);
2348 EMIT(0x3A); 2347 EMIT(0x3A);
2349 EMIT(0x17); 2348 EMIT(0x17);
2350 emit_sse_operand(dst, src); 2349 emit_sse_operand(dst, src);
2351 EMIT(imm8); 2350 EMIT(imm8);
2352 } 2351 }
2353 2352
2354 2353
2355 void Assembler::pand(XMMRegister dst, XMMRegister src) { 2354 void Assembler::pand(XMMRegister dst, XMMRegister src) {
2356 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2355 ASSERT(IsEnabled(SSE2));
2357 EnsureSpace ensure_space(this); 2356 EnsureSpace ensure_space(this);
2358 EMIT(0x66); 2357 EMIT(0x66);
2359 EMIT(0x0F); 2358 EMIT(0x0F);
2360 EMIT(0xDB); 2359 EMIT(0xDB);
2361 emit_sse_operand(dst, src); 2360 emit_sse_operand(dst, src);
2362 } 2361 }
2363 2362
2364 2363
2365 void Assembler::pxor(XMMRegister dst, XMMRegister src) { 2364 void Assembler::pxor(XMMRegister dst, XMMRegister src) {
2366 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2365 ASSERT(IsEnabled(SSE2));
2367 EnsureSpace ensure_space(this); 2366 EnsureSpace ensure_space(this);
2368 EMIT(0x66); 2367 EMIT(0x66);
2369 EMIT(0x0F); 2368 EMIT(0x0F);
2370 EMIT(0xEF); 2369 EMIT(0xEF);
2371 emit_sse_operand(dst, src); 2370 emit_sse_operand(dst, src);
2372 } 2371 }
2373 2372
2374 2373
2375 void Assembler::por(XMMRegister dst, XMMRegister src) { 2374 void Assembler::por(XMMRegister dst, XMMRegister src) {
2376 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2375 ASSERT(IsEnabled(SSE2));
2377 EnsureSpace ensure_space(this); 2376 EnsureSpace ensure_space(this);
2378 EMIT(0x66); 2377 EMIT(0x66);
2379 EMIT(0x0F); 2378 EMIT(0x0F);
2380 EMIT(0xEB); 2379 EMIT(0xEB);
2381 emit_sse_operand(dst, src); 2380 emit_sse_operand(dst, src);
2382 } 2381 }
2383 2382
2384 2383
2385 void Assembler::ptest(XMMRegister dst, XMMRegister src) { 2384 void Assembler::ptest(XMMRegister dst, XMMRegister src) {
2386 ASSERT(CpuFeatures::IsEnabled(SSE4_1)); 2385 ASSERT(IsEnabled(SSE4_1));
2387 EnsureSpace ensure_space(this); 2386 EnsureSpace ensure_space(this);
2388 EMIT(0x66); 2387 EMIT(0x66);
2389 EMIT(0x0F); 2388 EMIT(0x0F);
2390 EMIT(0x38); 2389 EMIT(0x38);
2391 EMIT(0x17); 2390 EMIT(0x17);
2392 emit_sse_operand(dst, src); 2391 emit_sse_operand(dst, src);
2393 } 2392 }
2394 2393
2395 2394
2396 void Assembler::psllq(XMMRegister reg, int8_t shift) { 2395 void Assembler::psllq(XMMRegister reg, int8_t shift) {
2397 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2396 ASSERT(IsEnabled(SSE2));
2398 EnsureSpace ensure_space(this); 2397 EnsureSpace ensure_space(this);
2399 EMIT(0x66); 2398 EMIT(0x66);
2400 EMIT(0x0F); 2399 EMIT(0x0F);
2401 EMIT(0x73); 2400 EMIT(0x73);
2402 emit_sse_operand(esi, reg); // esi == 6 2401 emit_sse_operand(esi, reg); // esi == 6
2403 EMIT(shift); 2402 EMIT(shift);
2404 } 2403 }
2405 2404
2406 2405
2407 void Assembler::psllq(XMMRegister dst, XMMRegister src) { 2406 void Assembler::psllq(XMMRegister dst, XMMRegister src) {
2408 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2407 ASSERT(IsEnabled(SSE2));
2409 EnsureSpace ensure_space(this); 2408 EnsureSpace ensure_space(this);
2410 EMIT(0x66); 2409 EMIT(0x66);
2411 EMIT(0x0F); 2410 EMIT(0x0F);
2412 EMIT(0xF3); 2411 EMIT(0xF3);
2413 emit_sse_operand(dst, src); 2412 emit_sse_operand(dst, src);
2414 } 2413 }
2415 2414
2416 2415
2417 void Assembler::psrlq(XMMRegister reg, int8_t shift) { 2416 void Assembler::psrlq(XMMRegister reg, int8_t shift) {
2418 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2417 ASSERT(IsEnabled(SSE2));
2419 EnsureSpace ensure_space(this); 2418 EnsureSpace ensure_space(this);
2420 EMIT(0x66); 2419 EMIT(0x66);
2421 EMIT(0x0F); 2420 EMIT(0x0F);
2422 EMIT(0x73); 2421 EMIT(0x73);
2423 emit_sse_operand(edx, reg); // edx == 2 2422 emit_sse_operand(edx, reg); // edx == 2
2424 EMIT(shift); 2423 EMIT(shift);
2425 } 2424 }
2426 2425
2427 2426
2428 void Assembler::psrlq(XMMRegister dst, XMMRegister src) { 2427 void Assembler::psrlq(XMMRegister dst, XMMRegister src) {
2429 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2428 ASSERT(IsEnabled(SSE2));
2430 EnsureSpace ensure_space(this); 2429 EnsureSpace ensure_space(this);
2431 EMIT(0x66); 2430 EMIT(0x66);
2432 EMIT(0x0F); 2431 EMIT(0x0F);
2433 EMIT(0xD3); 2432 EMIT(0xD3);
2434 emit_sse_operand(dst, src); 2433 emit_sse_operand(dst, src);
2435 } 2434 }
2436 2435
2437 2436
2438 void Assembler::pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle) { 2437 void Assembler::pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle) {
2439 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2438 ASSERT(IsEnabled(SSE2));
2440 EnsureSpace ensure_space(this); 2439 EnsureSpace ensure_space(this);
2441 EMIT(0x66); 2440 EMIT(0x66);
2442 EMIT(0x0F); 2441 EMIT(0x0F);
2443 EMIT(0x70); 2442 EMIT(0x70);
2444 emit_sse_operand(dst, src); 2443 emit_sse_operand(dst, src);
2445 EMIT(shuffle); 2444 EMIT(shuffle);
2446 } 2445 }
2447 2446
2448 2447
2449 void Assembler::pextrd(const Operand& dst, XMMRegister src, int8_t offset) { 2448 void Assembler::pextrd(const Operand& dst, XMMRegister src, int8_t offset) {
2450 ASSERT(CpuFeatures::IsEnabled(SSE4_1)); 2449 ASSERT(IsEnabled(SSE4_1));
2451 EnsureSpace ensure_space(this); 2450 EnsureSpace ensure_space(this);
2452 EMIT(0x66); 2451 EMIT(0x66);
2453 EMIT(0x0F); 2452 EMIT(0x0F);
2454 EMIT(0x3A); 2453 EMIT(0x3A);
2455 EMIT(0x16); 2454 EMIT(0x16);
2456 emit_sse_operand(src, dst); 2455 emit_sse_operand(src, dst);
2457 EMIT(offset); 2456 EMIT(offset);
2458 } 2457 }
2459 2458
2460 2459
2461 void Assembler::pinsrd(XMMRegister dst, const Operand& src, int8_t offset) { 2460 void Assembler::pinsrd(XMMRegister dst, const Operand& src, int8_t offset) {
2462 ASSERT(CpuFeatures::IsEnabled(SSE4_1)); 2461 ASSERT(IsEnabled(SSE4_1));
2463 EnsureSpace ensure_space(this); 2462 EnsureSpace ensure_space(this);
2464 EMIT(0x66); 2463 EMIT(0x66);
2465 EMIT(0x0F); 2464 EMIT(0x0F);
2466 EMIT(0x3A); 2465 EMIT(0x3A);
2467 EMIT(0x22); 2466 EMIT(0x22);
2468 emit_sse_operand(dst, src); 2467 emit_sse_operand(dst, src);
2469 EMIT(offset); 2468 EMIT(offset);
2470 } 2469 }
2471 2470
2472 2471
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
2687 fprintf(coverage_log, "%s\n", file_line); 2686 fprintf(coverage_log, "%s\n", file_line);
2688 fflush(coverage_log); 2687 fflush(coverage_log);
2689 } 2688 }
2690 } 2689 }
2691 2690
2692 #endif 2691 #endif
2693 2692
2694 } } // namespace v8::internal 2693 } } // namespace v8::internal
2695 2694
2696 #endif // V8_TARGET_ARCH_IA32 2695 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/assembler-ia32.h ('k') | src/ia32/code-stubs-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698