Intrinsic Funktions

Intrinsic Funktions

Hochsprachen-Compiler unterstützen häufig sogenannte Intrinsic Functions oder Intrinsics, bei denen prozessorspezifische Operationen in Funktionsaufrufe gekapselt werden. Anders als bei der Verwendung von inline-Assembler kann der Compiler Intrinsic Functions in vollem Umfang bei Optimierungen berücksichtigen.

Häufig muss man für die Verwendung von Intrinsic Functions bestimmte Headerdateien einbinden und/oder bestimmte Compiler-Optionen setzen[1]. Meist ist durch die Namensgebung der Intrinsic Functions sichergestellt, dass sie sich von library- oder eigenen Funktionen unterscheiden, z.B. durch zwei Unterstriche als Präfix.

Beispiele

Die Programmzeile

u32_intvalue = __ROUND(f_floatvalue);

wird vom C-Compiler für den R32C in den Assembler-Code ROUND übersetzt, wobei der Compiler die Kontrolle über die für die Variablen verwendeten Prozessor-Register hat[2]. Der ROUND-Opcode wandelt beim R32C eine Gleitkommazahl unter Berücksichtigung des für den Prozessor eingestellten Rundungsmodus in eine Integer-Zahl um.

Einzelnachweise

  1. Visual C++ Language Reference Kapitel Compiler Intrinsics von Microsoft im MSDN
  2. Absatz INTRINSIC FUNCTIONS im R32C IAR C/C++ Compiler Reference Guide der Fa. IAR Systems

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”