linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

アセンブラ命令 - P6_NOPx

概要

P6アーキテクチャのCPUで使用可能なNOP命令

詳細

各数値が実行命令のバイト数を表しており、以下の命令が使用できる

  • P6_NOP1
  • P6_NOP2
  • P6_NOP3
  • P6_NOP4
  • P6_NOP5
  • P6_NOP6
  • P6_NOP7
  • P6_NOP8
  • P6_NOP5_ATOMIC

それぞれの命令は以下に示すアセンブラ命令と同等である

   1        : nop;
   2        : osp nop;
   3        : nopl (%eax);
   4        : nopl 0x00(%eax);
   5        : nopl 0x00(%eax,%eax,1);
   6        : osp nopl 0x00(%eax,%eax,1);
   7        : nopl 0x00000000(%eax);
   8        : nopl 0x00000000(%eax,%eax,1);

すべての命令が単一命令として定義されているためatomicに実行される

したがって、P6_NOP5P6_NOP5_ATOMICは同一命令で定義されている

同様な用途としてGENERIC_NOPxK8_NOPxK7_NOPxが定義されています