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.
Um mecanismo do software para permitir um programador de encaixar selecionou instruções de máquina no código de fonte do programa em uma forma conveniente, e opcionalmente em restringir requisitar novamente de tais instruções pelo compilador sem fazer nenhumas modificações significativas a processar do compilador. Usando uma aproximação table-driven, o mecanismo analisa gramaticalmente a instrução de máquina encaixada constrói e verifica a sintaxe e a exatidão semântica. O mecanismo traduz então as construções nas respresentações internas do compilador de baixo nível que podem ser integradas no outro código do compilador com mudanças mínimas do compilador. Quando suportadas também por uma estrutura inter-module subjacente robust do optimization, as rotinas da biblioteca que contêm instruções de máquina encaixadas de acordo com a invenção atual podem ser inlined em aplicações. Quando aquelas aplicações invocam tais rotinas da biblioteca, a invenção atual permite as rotinas de optimized mais eficazmente, desse modo melhorando o desempenho run-time da aplicação. Um mecanismo é divulgado também usando "_ um tipo de dados do fpreg" permitir a aritmética floating-point de ser programado de um nível da fonte onde o programador ganhe o acesso à largura cheia da respresentação floating-point do registo do processador subjacente.