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

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

Issue 21536: Improve generated code for non-smi bit operations by... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 10 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
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 1596 matching lines...) Expand 10 before | Expand all | Expand 10 after
1607 1607
1608 1608
1609 void Assembler::fistp_s(const Operand& adr) { 1609 void Assembler::fistp_s(const Operand& adr) {
1610 EnsureSpace ensure_space(this); 1610 EnsureSpace ensure_space(this);
1611 last_pc_ = pc_; 1611 last_pc_ = pc_;
1612 EMIT(0xDB); 1612 EMIT(0xDB);
1613 emit_operand(ebx, adr); 1613 emit_operand(ebx, adr);
1614 } 1614 }
1615 1615
1616 1616
1617 void Assembler::fisttp_d(const Operand& adr) {
1618 EnsureSpace ensure_space(this);
1619 last_pc_ = pc_;
1620 EMIT(0xDD);
1621 emit_operand(ecx, adr);
1622 }
1623
1624
1617 void Assembler::fist_s(const Operand& adr) { 1625 void Assembler::fist_s(const Operand& adr) {
1618 EnsureSpace ensure_space(this); 1626 EnsureSpace ensure_space(this);
1619 last_pc_ = pc_; 1627 last_pc_ = pc_;
1620 EMIT(0xDB); 1628 EMIT(0xDB);
1621 emit_operand(edx, adr); 1629 emit_operand(edx, adr);
1622 } 1630 }
1623 1631
1624 1632
1625 void Assembler::fistp_d(const Operand& adr) { 1633 void Assembler::fistp_d(const Operand& adr) {
1626 EnsureSpace ensure_space(this); 1634 EnsureSpace ensure_space(this);
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1802 1810
1803 1811
1804 void Assembler::frndint() { 1812 void Assembler::frndint() {
1805 EnsureSpace ensure_space(this); 1813 EnsureSpace ensure_space(this);
1806 last_pc_ = pc_; 1814 last_pc_ = pc_;
1807 EMIT(0xD9); 1815 EMIT(0xD9);
1808 EMIT(0xFC); 1816 EMIT(0xFC);
1809 } 1817 }
1810 1818
1811 1819
1820 void Assembler::fnclex() {
1821 EnsureSpace ensure_space(this);
1822 last_pc_ = pc_;
1823 EMIT(0xDB);
1824 EMIT(0xE2);
1825 }
1826
1827
1812 void Assembler::sahf() { 1828 void Assembler::sahf() {
1813 EnsureSpace ensure_space(this); 1829 EnsureSpace ensure_space(this);
1814 last_pc_ = pc_; 1830 last_pc_ = pc_;
1815 EMIT(0x9E); 1831 EMIT(0x9E);
1816 } 1832 }
1817 1833
1818 1834
1819 void Assembler::cvttss2si(Register dst, const Operand& src) { 1835 void Assembler::cvttss2si(Register dst, const Operand& src) {
1820 ASSERT(CpuFeatures::IsEnabled(CpuFeatures::SSE2)); 1836 ASSERT(CpuFeatures::IsEnabled(CpuFeatures::SSE2));
1821 EnsureSpace ensure_space(this); 1837 EnsureSpace ensure_space(this);
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
2142 ASSERT(bound_label.is_bound()); 2158 ASSERT(bound_label.is_bound());
2143 ASSERT(0 <= position); 2159 ASSERT(0 <= position);
2144 ASSERT(position + static_cast<int>(sizeof(uint32_t)) <= pc_offset()); 2160 ASSERT(position + static_cast<int>(sizeof(uint32_t)) <= pc_offset());
2145 ASSERT(long_at(position) == 0); // only initialize once! 2161 ASSERT(long_at(position) == 0); // only initialize once!
2146 2162
2147 uint32_t label_loc = reinterpret_cast<uint32_t>(addr_at(bound_label.pos())); 2163 uint32_t label_loc = reinterpret_cast<uint32_t>(addr_at(bound_label.pos()));
2148 long_at_put(position, label_loc); 2164 long_at_put(position, label_loc);
2149 } 2165 }
2150 2166
2151 } } // namespace v8::internal 2167 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/assembler-ia32.h ('k') | src/codegen-ia32.cc » ('j') | src/codegen-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698