Код модели - термин от AMD64 ABI (см. 3.5.1 от https://software.intel.com/sites/default/files/article/402129/mpx-linux64-abi.pdf для получения дополнительной информации).
Вкратце - большинство смещений внутри инструкций x64-64 относятся к ПК, однако непосредственное поле внутри инструкций составляет всего 32 бита. Поэтому, если данные расположены «далеко» от кода (более чем на 32-битных друг от друга), тогда невозможно было бы использовать непосредственное поле внутри инструкций для эффективного кодирования смещения и должно явно вычислять адрес. Модель кода предоставляет различные ограничения на относительное расположение кода и данных.
Если вы собираете все статически, то «маленький» является безопасным (и по умолчанию). Если вы JIT'ing, тогда все возможно, особенно если ASLR включен, и вам нужно использовать модель среднего/большого кода.