Добавить возможность предварительной выборки для target из arm-linux-gnueabi-g++

Следующая строка кода была скомпилирована с использованием arm-linux-gnueabi-g++-4.7 на хост-машине Ubuntu. prfm инструкция должна была генерироваться для конкретной строки, но это не так.

__builtin_prefetch(&some_variable,0,3); 

Команда для компиляции:

arm-linux-gnueabi-g++-4.7 -O0 -S -std=c++11 main.cpp -D some_definition 
cat main.s | grep pr
//Returns null (main.s is all lower case)

Цитирование одной строки из ссылки gcc здесь связано с проблемой:

Если цель не поддерживает предварительную выборку данных, выражение адреса оценивается, если оно включает побочные эффекты, но никакой другой код не генерируется, и GCC не выдает предупреждение.

Последняя часть информации заключается в том, что кросс-компилятор устанавливается с помощью apt-get installне с нуля.

Здесь возникает вопрос:

Как можно просто добавить поддержку предварительной выборки данных к цели arm-linux-gnueabi-g++-4.7 кросс-компилятор?

заранее спасибо

1 ответ

Решение

Как предложил @Notlikethat, компилируя с -march=armv7-a решил проблему. Теперь в выводе сборки есть инструкция pld.

$ arm-linux-gnueabi-g++-4.7 -g -O3 -std=c++11 -static -S -march=armv7-a main.cpp -D some_definition
$ cat main.s | grep pld
pld [r0, #0]
Другие вопросы по тегам