- 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
- ↑ Visual C++ Language Reference Kapitel Compiler Intrinsics von Microsoft im MSDN
- ↑ Absatz INTRINSIC FUNCTIONS im R32C IAR C/C++ Compiler Reference Guide der Fa. IAR Systems
Wikimedia Foundation.