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

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

Issue 865002: Add SSE2 instructions to disassembler and movmskpd SSE2 instruction to assemb... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 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
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 2130 matching lines...) Expand 10 before | Expand all | Expand 10 after
2141 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2141 ASSERT(CpuFeatures::IsEnabled(SSE2));
2142 EnsureSpace ensure_space(this); 2142 EnsureSpace ensure_space(this);
2143 last_pc_ = pc_; 2143 last_pc_ = pc_;
2144 EMIT(0x66); 2144 EMIT(0x66);
2145 EMIT(0x0F); 2145 EMIT(0x0F);
2146 EMIT(0x2E); 2146 EMIT(0x2E);
2147 emit_sse_operand(dst, src); 2147 emit_sse_operand(dst, src);
2148 } 2148 }
2149 2149
2150 2150
2151 void Assembler::movmskpd(Register dst, XMMRegister src) {
2152 ASSERT(CpuFeatures::IsEnabled(SSE2));
2153 EnsureSpace ensure_space(this);
2154 last_pc_ = pc_;
2155 EMIT(0x66);
2156 EMIT(0x0F);
2157 EMIT(0x50);
2158 emit_sse_operand(dst, src);
2159 }
2160
2161
2151 void Assembler::movdqa(const Operand& dst, XMMRegister src ) { 2162 void Assembler::movdqa(const Operand& dst, XMMRegister src ) {
2152 ASSERT(CpuFeatures::IsEnabled(SSE2)); 2163 ASSERT(CpuFeatures::IsEnabled(SSE2));
2153 EnsureSpace ensure_space(this); 2164 EnsureSpace ensure_space(this);
2154 last_pc_ = pc_; 2165 last_pc_ = pc_;
2155 EMIT(0x66); 2166 EMIT(0x66);
2156 EMIT(0x0F); 2167 EMIT(0x0F);
2157 EMIT(0x7F); 2168 EMIT(0x7F);
2158 emit_sse_operand(src, dst); 2169 emit_sse_operand(src, dst);
2159 } 2170 }
2160 2171
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
2276 Register ireg = { reg.code() }; 2287 Register ireg = { reg.code() };
2277 emit_operand(ireg, adr); 2288 emit_operand(ireg, adr);
2278 } 2289 }
2279 2290
2280 2291
2281 void Assembler::emit_sse_operand(XMMRegister dst, XMMRegister src) { 2292 void Assembler::emit_sse_operand(XMMRegister dst, XMMRegister src) {
2282 EMIT(0xC0 | dst.code() << 3 | src.code()); 2293 EMIT(0xC0 | dst.code() << 3 | src.code());
2283 } 2294 }
2284 2295
2285 2296
2297 void Assembler::emit_sse_operand(Register dst, XMMRegister src) {
2298 EMIT(0xC0 | dst.code() << 3 | src.code());
2299 }
2300
2301
2286 void Assembler::Print() { 2302 void Assembler::Print() {
2287 Disassembler::Decode(stdout, buffer_, pc_); 2303 Disassembler::Decode(stdout, buffer_, pc_);
2288 } 2304 }
2289 2305
2290 2306
2291 void Assembler::RecordJSReturn() { 2307 void Assembler::RecordJSReturn() {
2292 WriteRecordedPositions(); 2308 WriteRecordedPositions();
2293 EnsureSpace ensure_space(this); 2309 EnsureSpace ensure_space(this);
2294 RecordRelocInfo(RelocInfo::JS_RETURN); 2310 RecordRelocInfo(RelocInfo::JS_RETURN);
2295 } 2311 }
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
2505 push_insn[1] = 13; // Skip over coverage insns. 2521 push_insn[1] = 13; // Skip over coverage insns.
2506 if (coverage_log != NULL) { 2522 if (coverage_log != NULL) {
2507 fprintf(coverage_log, "%s\n", file_line); 2523 fprintf(coverage_log, "%s\n", file_line);
2508 fflush(coverage_log); 2524 fflush(coverage_log);
2509 } 2525 }
2510 } 2526 }
2511 2527
2512 #endif 2528 #endif
2513 2529
2514 } } // namespace v8::internal 2530 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/ia32/assembler-ia32.h ('k') | src/ia32/disasm-ia32.cc » ('j') | src/ia32/disasm-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698