3.19.43 Параметры RL78 ¶
-msim-
Ссылки на дополнительные целевые библиотеки для поддержки работы в симуляторе.
-mmul=none-mmul=g10-mmul=g13-mmul=g14-mmul=rl78-
Указывает тип аппаратной поддержки умножения и деления. Самый простой вариант
none, использующий программное обеспечение для умножения и деления. Это значение по умолчанию. Значениеg13предназначено для периферийного устройства аппаратного умножения/деления, найденного в целевых системах RL78/G13 (ядро S2). Значениеg14выбирает использование инструкций умножения и деления, поддерживаемых частями RL78/G14 (ядро S3). Значениеrl78является псевдонимом дляg14, а значениеmg10является псевдонимом дляnone.Кроме того, определён макрос препроцессора C, основанный на настройке этого параметра. Возможные значения:
__RL78_MUL_NONE__,__RL78_MUL_G13__или__RL78_MUL_G14__. -mcpu=g10-mcpu=g13-mcpu=g14-mcpu=rl78-
Указывает целевое ядро RL78. По умолчанию используется ядро G14, также известное как ядро S3 или просто RL78. Ядро G13 или S2 не имеет инструкций умножения и деления, вместо них используются аппаратные периферийные устройства для этих операций. Ядро G10 или S1 не имеет регистровых банков, поэтому оно использует другую согласованность вызовов.
Если этот параметр установлен, он также выбирает тип аппаратной поддержки умножения, если это не переопределено явным параметром -mmul=none в командной строке. Таким образом, указание -mcpu=g13 включает использование аппаратного периферийного устройства умножения G13, а указание -mcpu=g10 полностью отключает аппаратное умножение.
Обратите внимание, хотя ядро RL78/G14 является целевым по умолчанию, указание -mcpu=g14 или -mcpu=rl78 в командной строке изменяет поведение инструментальной цепочки, поскольку оно также включает аппаратную поддержку умножения G14. Если эти параметры не указаны в командной строке, будут использоваться программные процедуры умножения, даже если код предназначен для ядра RL78. Это для обратной совместимости со старыми инструментальными цепочками, не имевшими аппаратной поддержки умножения и деления.
Кроме того, определён макрос препроцессора C, основанный на настройке этого параметра. Возможные значения:
__RL78_G10__,__RL78_G13__или__RL78_G14__. -mg10-mg13-mg14-mrl78-
Это псевдонимы соответствующего параметра -mcpu=. Они предоставляются для обратной совместимости.
-mallregs-
Разрешить компилятору использовать все доступные регистры. По умолчанию регистры
r24..r31зарезервированы для использования в обработчиках прерываний. При включении этого параметра эти регистры также могут использоваться в обычных функциях. -m64bit-doubles-m32bit-doubles-
Сделать тип данных
double64-битным (-m64bit-doubles) или 32-битным (-m32bit-doubles). По умолчанию используется -m32bit-doubles. -msave-mduc-in-interrupts-mno-save-mduc-in-interrupts-
Указывает, что функции обработчиков прерываний должны сохранять регистры MDUC. Это необходимо только в том случае, если обычный код может использовать регистры MDUC, например, потому что он выполняет операции умножения и деления. По умолчанию регистры MDUC игнорируются, так как это делает обработчики прерываний быстрее. Для работы этой функции требуется целевой параметр -mg13, так как эта функция доступна только для целевой системы G13 (ядро S2). Регистры MDUC будут сохранены только в том случае, если обработчик прерываний выполняет операцию умножения или деления или вызывает другую функцию.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/RL78-Options.html