GNU as для AVR поддерживает байтовую адресацию флеша, поэтому умножать на 2 не надо.
Для старшего/младшего байта есть модификаторы:
Код
ldi r30, lo8(Table)
ldi r31, hi8(Table)
lpm
Если нужен адрес функции, то тогда надо бы делить на два, есть модификатор pm() и pm_lo8()/pm_hi8()
Сверх этого мне нужны были только разности перемещаемых величин для получения абсолютной (длина таблицы) или сумма/разность перемещаемой и абсолютной величин для получения смещённого относительно метки значения. Больше мне не было нужно, даже не знаю, насколько вольно он позволяет жонглировать перемещаемыми величинами.