< prev index next >

src/share/vm/runtime/icache.hpp

Print this page




  66 
  67 
  68 // Must be included before the definition of ICacheStubGenerator
  69 // because ICacheStubGenerator uses ICache definitions.
  70 
  71 #ifdef TARGET_ARCH_x86
  72 # include "icache_x86.hpp"
  73 #endif
  74 #ifdef TARGET_ARCH_sparc
  75 # include "icache_sparc.hpp"
  76 #endif
  77 #ifdef TARGET_ARCH_zero
  78 # include "icache_zero.hpp"
  79 #endif
  80 #ifdef TARGET_ARCH_arm
  81 # include "icache_arm.hpp"
  82 #endif
  83 #ifdef TARGET_ARCH_ppc
  84 # include "icache_ppc.hpp"
  85 #endif



  86 
  87 
  88 
  89 class ICacheStubGenerator : public StubCodeGenerator {
  90  public:
  91   ICacheStubGenerator(CodeBuffer *c) : StubCodeGenerator(c) {}
  92 
  93   // Generate the icache flush stub.
  94   //
  95   // Since we cannot flush the cache when this stub is generated,
  96   // it must be generated first, and just to be sure, we do extra
  97   // work to allow a check that these instructions got executed.
  98   //
  99   // The flush stub has three parameters (see flush_icache_stub_t).
 100   //
 101   //   addr  - Start address, must be aligned at log2_line_size
 102   //   lines - Number of line_size icache lines to flush
 103   //   magic - Magic number copied to result register to make sure
 104   //           the stub executed properly
 105   //




  66 
  67 
  68 // Must be included before the definition of ICacheStubGenerator
  69 // because ICacheStubGenerator uses ICache definitions.
  70 
  71 #ifdef TARGET_ARCH_x86
  72 # include "icache_x86.hpp"
  73 #endif
  74 #ifdef TARGET_ARCH_sparc
  75 # include "icache_sparc.hpp"
  76 #endif
  77 #ifdef TARGET_ARCH_zero
  78 # include "icache_zero.hpp"
  79 #endif
  80 #ifdef TARGET_ARCH_arm
  81 # include "icache_arm.hpp"
  82 #endif
  83 #ifdef TARGET_ARCH_ppc
  84 # include "icache_ppc.hpp"
  85 #endif
  86 #ifdef TARGET_ARCH_aarch32
  87 # include "icache_aarch32.hpp"
  88 #endif
  89 
  90 
  91 
  92 class ICacheStubGenerator : public StubCodeGenerator {
  93  public:
  94   ICacheStubGenerator(CodeBuffer *c) : StubCodeGenerator(c) {}
  95 
  96   // Generate the icache flush stub.
  97   //
  98   // Since we cannot flush the cache when this stub is generated,
  99   // it must be generated first, and just to be sure, we do extra
 100   // work to allow a check that these instructions got executed.
 101   //
 102   // The flush stub has three parameters (see flush_icache_stub_t).
 103   //
 104   //   addr  - Start address, must be aligned at log2_line_size
 105   //   lines - Number of line_size icache lines to flush
 106   //   magic - Magic number copied to result register to make sure
 107   //           the stub executed properly
 108   //


< prev index next >