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

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

Issue 2806080: X64: Fix order of operands on movq(reg, xmm). (Closed)
Patch Set: Also fixed disassembler. Created 10 years, 4 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
« no previous file with comments | « no previous file | src/x64/disasm-x64.cc » ('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 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 2511 matching lines...) Expand 10 before | Expand all | Expand 10 after
2522 emit(0x0F); 2522 emit(0x0F);
2523 emit(0x6E); 2523 emit(0x6E);
2524 emit_sse_operand(dst, src); 2524 emit_sse_operand(dst, src);
2525 } 2525 }
2526 2526
2527 2527
2528 void Assembler::movd(Register dst, XMMRegister src) { 2528 void Assembler::movd(Register dst, XMMRegister src) {
2529 EnsureSpace ensure_space(this); 2529 EnsureSpace ensure_space(this);
2530 last_pc_ = pc_; 2530 last_pc_ = pc_;
2531 emit(0x66); 2531 emit(0x66);
2532 emit_optional_rex_32(dst, src); 2532 emit_optional_rex_32(src, dst);
2533 emit(0x0F); 2533 emit(0x0F);
2534 emit(0x7E); 2534 emit(0x7E);
2535 emit_sse_operand(dst, src); 2535 emit_sse_operand(src, dst);
2536 } 2536 }
2537 2537
2538 2538
2539 void Assembler::movq(XMMRegister dst, Register src) { 2539 void Assembler::movq(XMMRegister dst, Register src) {
2540 EnsureSpace ensure_space(this); 2540 EnsureSpace ensure_space(this);
2541 last_pc_ = pc_; 2541 last_pc_ = pc_;
2542 emit(0x66); 2542 emit(0x66);
2543 emit_rex_64(dst, src); 2543 emit_rex_64(dst, src);
2544 emit(0x0F); 2544 emit(0x0F);
2545 emit(0x6E); 2545 emit(0x6E);
2546 emit_sse_operand(dst, src); 2546 emit_sse_operand(dst, src);
2547 } 2547 }
2548 2548
2549 2549
2550 void Assembler::movq(Register dst, XMMRegister src) { 2550 void Assembler::movq(Register dst, XMMRegister src) {
2551 EnsureSpace ensure_space(this); 2551 EnsureSpace ensure_space(this);
2552 last_pc_ = pc_; 2552 last_pc_ = pc_;
2553 emit(0x66); 2553 emit(0x66);
2554 emit_rex_64(dst, src); 2554 emit_rex_64(src, dst);
2555 emit(0x0F); 2555 emit(0x0F);
2556 emit(0x7E); 2556 emit(0x7E);
2557 emit_sse_operand(dst, src); 2557 emit_sse_operand(src, dst);
2558 } 2558 }
2559 2559
2560 2560
2561 void Assembler::extractps(Register dst, XMMRegister src, byte imm8) { 2561 void Assembler::extractps(Register dst, XMMRegister src, byte imm8) {
2562 ASSERT(is_uint2(imm8)); 2562 ASSERT(is_uint2(imm8));
2563 EnsureSpace ensure_space(this); 2563 EnsureSpace ensure_space(this);
2564 last_pc_ = pc_; 2564 last_pc_ = pc_;
2565 emit(0x66); 2565 emit(0x66);
2566 emit_optional_rex_32(dst, src); 2566 emit_optional_rex_32(dst, src);
2567 emit(0x0F); 2567 emit(0x0F);
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
2954 // specially coded on x64 means that it is a relative 32 bit address, as used 2954 // specially coded on x64 means that it is a relative 32 bit address, as used
2955 // by branch instructions. 2955 // by branch instructions.
2956 return (1 << rmode_) & kApplyMask; 2956 return (1 << rmode_) & kApplyMask;
2957 } 2957 }
2958 2958
2959 2959
2960 2960
2961 } } // namespace v8::internal 2961 } } // namespace v8::internal
2962 2962
2963 #endif // V8_TARGET_ARCH_X64 2963 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « no previous file | src/x64/disasm-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698