diff options
| author | 2014-07-09 07:44:21 +0000 | |
|---|---|---|
| committer | 2014-07-08 22:56:31 +0000 | |
| commit | 2cfe30bd592cb6ae63bb4c28ccaf4b069d6ab565 (patch) | |
| tree | 3eb01d4c9f9a36985f70450822c0bb3f4065db02 /compiler/dex/backend.h | |
| parent | 7b68fb3b9b421d4b20c1993704986d637f1cab91 (diff) | |
| parent | 60bfe7b3e8f00f0a8ef3f5d8716adfdf86b71f43 (diff) | |
Merge "X86 Backend support for vectorized float and byte 16x16 operations"
Diffstat (limited to 'compiler/dex/backend.h')
| -rw-r--r-- | compiler/dex/backend.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/compiler/dex/backend.h b/compiler/dex/backend.h index 596b3c9802..1f24849257 100644 --- a/compiler/dex/backend.h +++ b/compiler/dex/backend.h @@ -28,6 +28,25 @@ class Backend { virtual void Materialize() = 0; virtual CompiledMethod* GetCompiledMethod() = 0; + // Queries for backend support for vectors + /* + * Return the number of bits in a vector register. + * @return 0 if vector registers are not supported, or the + * number of bits in the vector register if supported. + */ + virtual int VectorRegisterSize() { return 0; } + + /* + * Return the number of reservable vector registers supported + * @param fp_used ‘true’ if floating point computations will be + * executed while vector registers are reserved. + * @return the number of vector registers that are available + * @note The backend should ensure that sufficient vector registers + * are held back to generate scalar code without exhausting vector + * registers, if scalar code also uses the vector registers. + */ + virtual int NumReservableVectorRegisters(bool fp_used) { return 0; } + protected: explicit Backend(ArenaAllocator* arena) : arena_(arena) {} ArenaAllocator* const arena_; |