GCC Built in Functions

Gast #1935825
Lesenswert?
• ▲
▼
Hallo,
wahrscheinlich kann man mir hier weiterhelfen. Ich habe den Befehlssatz 
von einen Nios II Softcore Prozessor mit Hilfe sogenannter 'Custom 
Instructions" erweitert. In der Altera Doku finde ich nun folgendes 
Beispiel zur Nutzung dieser HW Funktion in C:

1
#define ALT_CI_BITSWAP_N 0x00
2
#define ALT_CI_BITSWAP(A) __builtin_custom_ini(ALT_CI_BITSWAP_N,(A))

Zur Erklärung dieser MAkrodefinition heisst es nun im Folgendem:

'The ALT_CI_BITSWAP(A) macro is mapped to a gcc built-in function that
takes a single argument.'

Kann mir jemand mal erklären was man hierunter versteht. Warum
deklariert man eine Funktion als 'gcc built-in' Funktion ??? Vielen Dank 
& schönes WE,
Andreas
Gast #1936694
Lesenswert?
• ▲
▼
Mit etwas Google habe ich eine Seite aus der Nios gcc Doku gefunden, wo 
das drin steht.

Erstens kann deklariert man keine "builtin functions", man ruft sie auf 
— wie der Name schon sagt, sind das in gcc eingebaute Funktionen die 
immer zur Verfügung stehen.

Die __builtin_custom_xxx builtins erzeugen einfach eine Instruktion an 
dieser Stelle mit dem angegebenen Opcode. Der Buchstabencode ist i 
(int), f (float) und p (void*). n steht dabei für den Opcode und ist 
dementsprechend immer vorhanden.

__builtin_custom_ini() nimmt also ein int und hat ein int als Ergebnis. 
In deinem Beispiel wird das dann mit dem Opcode 0x00 sein. Der Nios 
Maschinencode ist wohl so regulär, dass sich das alles so einfach 
verpacken lässt.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.