Chromium Code Reviews| Index: runtime/vm/assembler_x64.cc |
| =================================================================== |
| --- runtime/vm/assembler_x64.cc (revision 6416) |
| +++ runtime/vm/assembler_x64.cc (working copy) |
| @@ -278,12 +278,15 @@ |
| } |
| +// Use 0x89 encoding (instead of 0x8B encoding), which is expected by gdb64 |
| +// older than 7.3.1-gg5 when disassembling a function's prolog (movq rbp, rsp) |
| +// for proper unwinding of Dart frames (use --generate_gdb_symbols and -O0). |
| void Assembler::movq(Register dst, Register src) { |
| AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| - Operand operand(src); |
| - EmitOperandREX(dst, operand, REX_W); |
| - EmitUint8(0x8B); |
| - EmitOperand(dst & 7, operand); |
| + Operand operand(dst); |
| + EmitOperandREX(src, operand, REX_W); |
| + EmitUint8(0x89); |
|
Lasse Reichstein Nielsen
2012/04/12 09:57:38
You could decide whether to use 0x89 or 0x8b depen
regis
2012/04/12 16:46:16
This is a good point for memory addressing modes,
|
| + EmitOperand(src & 7, operand); |
| } |