A software mechanism for enabling a programmer to embed selected machine
instructions into program source code in a convenient fashion, and
optionally restricting the re-ordering of such instructions by the
compiler without making any significant modifications to the compiler
processing. Using a table-driven approach, the mechanism parses the
embedded machine instruction constructs and verifies syntax and semantic
correctness. The mechanism then translates the constructs into low-level
compiler internal representations that may be integrated into other
compiler code with minimal compiler changes. When also supported by a
robust underlying inter-module optimization framework, library routines
containing embedded machine instructions according to the present
invention can be inlined into applications. When those applications invoke
such library routines, the present invention enables the routines to be
optimized more effectively, thereby improving run-time application
performance. A mechanism is also disclosed using a "_fpreg" data type to
enable floating-point arithmetic to be programmed from a source level
where the programmer gains access to the full width of the floating-point
register representation of the underlying processor.
Un mecanismo del software para permitir a un programador encajar seleccionó instrucciones de máquina en código de fuente del programa en una manera conveniente, y opcionalmente la restricción de reordenar de tales instrucciones por el recopilador sin la fabricación de ningunas modificaciones significativas al proceso del recopilador. Usando un acercamiento table-driven, el mecanismo analiza la instrucción de máquina encajada construye y verifica sintaxis y la corrección semántica. El mecanismo entonces traduce las construcciones a las representaciones internas del recopilador bajo que se pueden integrar en el otro código del recopilador con los cambios mínimos del recopilador. Cuando también son apoyadas por un marco entre módulos subyacente robusto de la optimización, las rutinas de la biblioteca que contienen instrucciones de máquina encajadas según la actual invención pueden ser inlined en usos. Cuando esos usos invocan tales rutinas de la biblioteca, la actual invención permite a las rutinas ser optimizada más con eficacia, de tal modo mejorando funcionamiento run-time del uso. Un mecanismo también se divulga usando "_ un tipo de datos del fpreg" para permitir a aritmética floating-point ser programado de un nivel de la fuente donde accede el programador al máximo anchura de la representación floating-point del registro del procesador subyacente.