Начал пытаться переделать макроопределения. Вот что получается, закомментировано в /* */ вариант макрокоманд для Keil. Прошу подсказать если неверно.
CODE
/*; AREA |.text|, CODE, READONLY*/
.section ".text"
/*THUMB*/
/*REQUIRE8*/
/*PRESERVE8*/
/*EXPORT xmp3_MULSHIFT32*/
.globl xmp3_MULSHIFT32
/*EXPORT xmp3_FASTABS*/
.globl xmp3_FASTABS
/*xmp3_MULSHIFT32 PROC*/
.type xmp3_MULSHIFT32, %function
xmp3_MULSHIFT32:
.fnstart
smull r2, r0, r1, r0
BX lr
/*ENDP*/
.fnend
/*xmp3_FASTABS PROC*/
.type xmp3_FASTABS, %function
xmp3_FASTABS:
.fnstart
mov r1, r0
mov r0, #0x0
eor r0, r1, r1, asr # 31
sub r0, r0, r1, asr # 31
bx lr
/*ENDP*/
.fnend
/*END*/
.end
Остановился на инструкции sub r0, r0, r1, asr # 31
Компидятор ругается: ../asmmisc.S:74: Error: unshifted register required -- `eor r0,r1,r1,asr#31'
Что значит запись asr#31 ?
Сообщение отредактировал IgorKossak - Aug 1 2013, 06:32
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!