• Title of article

    The case for virtual register machines

  • Author/Authors

    David Gregg، نويسنده , , Andrew Beatty، نويسنده , , Kevin Casey، نويسنده , , Brian Davis، نويسنده , , Andy Nisbet، نويسنده ,

  • Issue Information
    دوهفته نامه با شماره پیاپی سال 2005
  • Pages
    20
  • From page
    319
  • To page
    338
  • Abstract
    Virtual machines (VMs) are a popular target for language implementers. A long-running question in the design of virtual machines has been whether stack or register architectures can be implemented more efficiently with an interpreter. Many designers favour stack architectures since the location of operands is implicit in the stack pointer. In contrast, the operands of register machine instructions must be specified explicitly. In this paper, we present a working system for translating stack-based Java virtual machine (JVM) code to a simple register code. We describe the translation process, the complicated parts of the JVM which make translation more difficult, and the optimisations needed to eliminate copy instructions. Experimental results show that a register format reduced the number of executed instructions by 34.88%, while increasing the number of bytecode loads by an average of 44.81%. Overall, this corresponds to an increase of 2.32 loads for each dispatch removed. We believe that the high cost of dispatches makes register machines attractive even at the cost of increased loads.
  • Keywords
    Interpreter , Virtual machine , Register architecture , Stack architecture
  • Journal title
    Science of Computer Programming
  • Serial Year
    2005
  • Journal title
    Science of Computer Programming
  • Record number

    1079810