メモリ割り当て - __constant_c_and_count_memset()
概要
任意の大きさのメモリを初期化する
詳細
この関数では以下の引数を受け取る
- 初期化するメモリへのポインタ : s
- 初期化する値へのポインタ : pattern
- 初期化するメモリの大きさ : count
countの値が0 - 4の場合は、sのアドレスの値をpatternの値でcountバイト分上書きし、sのアドレスを返して処理を終了する
5以上の場合はpatternのアドレスをeaxレジスタに保存し、sをediレジスタ、countを4で割った値をecxレジスタに割り当ててrep stosl
命令で4バイトずつメモリコピーを行う。
その後countを4で割った余りのバイト数分をstos
命令でコピーしてsのアドレスを返して処理を終了する