реклама на сайте
подробности

 
 
> Type double (64-bit) and IAR/gcc
RCray
сообщение Nov 16 2011, 17:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548



Что вижу:
Передача double числа в качестве единственного параметра в функцию для IAR и для gcc приводит разному расположению частей double числа в регистрах R0:R1.

Тип - little-endian, процессор один и тот же.

Как воспроизвожу:
во время вызова

double function (double x);
a = function (2.0);

в IAR число 2.0 попадает как
R0 0x00000000
R1 0x40000000

в gcc число 2.0 попадает как
R0 0x40000000
R1 0x00000000


Теория:
Говорит о том, что long long, double и прочие больше 32-бит попадают в последовательные регистры R0:R1 или R2:R3.
Либо покажите где есть уточнения.


Как мне код-то писать на асме?
Стандартного разделения на big и little endian'а получается, что уже не хватает. Ещё привязываться и к компилятору? Или скажите какие вы видите результаты под разными компиляторами?


IAR 6.30.1
gcc 4.4.0

CPU - ARM Cortex.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
demiurg_spb
сообщение Nov 16 2011, 17:45
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Эти различия видимо уже определяются соответствию-несоответствию abi-eabi стандарту.
И одного рецепта тут ИМХО нет. Попробуйте разные сборки gcc (eabi noneabi) может что-то прояснится.
Опять же можно поискать описание на eabi и посмотреть что там на сей счёт имеется.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
RCray
сообщение Nov 16 2011, 17:53
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548



Цитата(demiurg_spb @ Nov 16 2011, 21:45) *
Эти различия видимо уже определяются соответствию-несоответствию abi-eabi стандарту.
И одного рецепта тут ИМХО нет. Попробуйте разные сборк gcc eabi noneabi может что-то прояснится.
Опять же можно поискать описание на eabi и посмотреть что там на сей счёт имеется.


Говоря про теорию я и имел ввиду документы по EABI. В них просто отмалчиваются про последовательные регистры R0:R1, R2:R3.
Сборка gcc у меня одна для этого ядра.

Вопрос собственно в том - какие результаты лично у коллег.
А за разъяснениями уже к суппорту.

или про eabi вы имели ввиду ключики? пошёл играться!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th August 2025 - 21:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.02656 секунд с 7
ELECTRONIX ©2004-2016