Home | History | Annotate | Download | only in arm
      1 The codegen file for the ARM-based JIT is composed by files broken by
      2 functionality hierarchies. The goal is to separate architectural dependent
      3 and independent components to facilitate maintenance and future extension.
      4 
      5 For example, the codegen file for armv7-a is assembled by the following
      6 components:
      7 
      8 --
      9 
     10 /* Architectural independent building blocks */
     11 #include "../CodegenCommon.cpp"
     12 
     13 /* Thumb2-specific factory utilities */
     14 #include "../Thumb2/Factory.cpp"
     15 /* Factory utilities dependent on arch-specific features */
     16 #include "../CodegenFactory.cpp"
     17 
     18 /* Thumb2-specific codegen routines */
     19 #include "../Thumb2/Gen.cpp"
     20 /* Thumb2+VFP codegen routines */
     21 #include "../FP/Thumb2VFP.cpp"
     22 
     23 /* Thumb2-specific register allocation */
     24 #include "../Thumb2/Ralloc.cpp"
     25 
     26 /* MIR2LIR dispatcher and architectural independent codegen routines */
     27 #include "../CodegenDriver.cpp"
     28 
     29 /* Architecture manifest */
     30 #include "ArchVariant.cpp"
     31 
     32 --
     33 
     34 For the Thumb/Thumb2 directories, each contain the followin three files:
     35 
     36 - Factory.c (low-level routines for instruction selections)
     37 - Gen.c     (invoke the ISA-specific instruction selection routines)
     38 - Ralloc.c  (arch-dependent register pools)
     39 
     40 The FP directory contains FP-specific codegen routines depending on
     41 Thumb/Thumb2/VFP/PortableFP:
     42 
     43 - Thumb2VFP.c
     44 - ThumbVFP.c
     45 - ThumbPortableFP.c
     46 
     47 In this way the dependency between generic and specific code tied to
     48 particular architectures can be explicitly represented.
     49