Локальные переменные потока и сегмент fs

Я читаю из локальной переменной потока в своем коде вот так,

// tid_local is declared as __thread int tid_local;
long tid = tid_local

Осмотрев дизассемблированный код, я увидел что-то вроде этого, что, как я подозреваю, является инструкцией, которая присваивает tid, читая tid_local.

movslq %fs:0xfffffffffffffffc,%rbx

Теперь мой вопрос в том, действительно ли это может быть инструкция, которая делает это, то есть читает из локальной переменной потока, и если gcc всегда использует сегмент fs для хранения локальных переменных потока. Как это должно работать?

10
задан MetallicPriest 5 January 2012 в 17:42
поделиться