汇编代码阅读工具与技巧

  1. 编译选项 “-g3 “, 可以获得更多的debug信息,比如GEMM_Q, GEMM_R等宏定义的信息
  2. gdb 调试 , 调试命令 disas/disassemble 可以打印当前函数的汇编代码.
  3. layout asm/src/ 展示汇编代码面板,list 可以显示src代码行
  4. gdb的TUI模式类似screen,退出使用 Ctrl -x a
  5. TUI模式查看寄存器的命令为: layout regs
  6. display /10i $pc的方法与x /10i $pc在打印汇编上是同义的
  7. 把disas 输出写入文件:

    (gdb) set logging file <file name>

    (gdb) set logging on

    (gdb) disass

    (gdb) set logging off

  8. Debugging_assembly_code

  9. Debugging Applications with Intel ® SDE

  10. 新的gdb 目录 cube126;   /usr/local/gdb13.1/bin/gdb   version: 13.1

    1. 打印 向量寄存器:print $zmm0 会打印8个double 和512bit表示的其他类型数据组合,比如16个float, 64个int8 ..

  

用到的汇编指令汇总:参考地址

1、VMOVDDUP Operation

汇编代码阅读工具与技巧_第1张图片

2、VFMADD132PD

DEST[i+63:i] := RoundFPControl_MXCSR(DEST[i+63:i]*SRC3[63:0] + SRC2[i+63:i])

3、VBROADCAST — Load with Broadcast Floating-Point Data (felixcloutier.com)

   (KL, VL) = (8, 256), (16, 512)
    FOR j := 0 TO KL-1
      i := j* 32
      n := (j modulo 4) * 32
      DEST[i+31:i] := SRC[n+31:n]

汇编代码阅读工具与技巧_第2张图片

你可能感兴趣的:(c++,性能优化)