diff options
| author | 2012-05-30 17:06:46 -0700 | |
|---|---|---|
| committer | 2012-05-30 17:06:46 -0700 | |
| commit | 3c0e2a54030190e6eb6cdabcf4a2809588c1c184 (patch) | |
| tree | ac1a40366701d76986ba3711ffd4fb1932f4f642 /src/compiler_llvm/method_compiler.h | |
| parent | bba47a499beac418d3fc933acd6d4fe01dcaa3cb (diff) | |
| parent | e21021411bcab601692815ea13696f7426ac026e (diff) | |
Merge "Refactor dalvik_reg." into ics-mr1-plus-art
Diffstat (limited to 'src/compiler_llvm/method_compiler.h')
| -rw-r--r-- | src/compiler_llvm/method_compiler.h | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/src/compiler_llvm/method_compiler.h b/src/compiler_llvm/method_compiler.h index 50411a1bf5..6de50ed46f 100644 --- a/src/compiler_llvm/method_compiler.h +++ b/src/compiler_llvm/method_compiler.h @@ -18,7 +18,6 @@ #define ART_SRC_COMPILER_LLVM_METHOD_COMPILER_H_ #include "backend_types.h" -#include "dalvik_reg.h" #include "dex_file.h" #include "dex_instruction.h" #include "invoke_type.h" @@ -59,6 +58,7 @@ namespace compiler_llvm { class CompilationUnit; class CompilerLLVM; +class DalvikReg; class IRBuilder; class MethodCompiler { @@ -81,11 +81,9 @@ class MethodCompiler { // Register helper function - llvm::Value* AllocDalvikLocalVarReg(RegCategory cat, uint32_t reg_idx); + llvm::Value* AllocDalvikReg(RegCategory cat, const std::string& name); - llvm::Value* AllocShadowFrameEntry(uint32_t reg_idx); - - llvm::Value* AllocDalvikRetValReg(RegCategory cat); + llvm::Value* GetShadowFrameEntry(uint32_t reg_idx); private: @@ -395,43 +393,23 @@ class MethodCompiler { // Register helper function - llvm::Value* EmitLoadDalvikReg(uint32_t reg_idx, JType jty, - JTypeSpace space) { - return regs_[reg_idx]->GetValue(jty, space); - } + llvm::Value* EmitLoadDalvikReg(uint32_t reg_idx, JType jty, JTypeSpace space); - llvm::Value* EmitLoadDalvikReg(uint32_t reg_idx, char shorty, - JTypeSpace space) { - return EmitLoadDalvikReg(reg_idx, GetJTypeFromShorty(shorty), space); - } + llvm::Value* EmitLoadDalvikReg(uint32_t reg_idx, char shorty, JTypeSpace space); void EmitStoreDalvikReg(uint32_t reg_idx, JType jty, - JTypeSpace space, llvm::Value* new_value) { - regs_[reg_idx]->SetValue(jty, space, new_value); - } + JTypeSpace space, llvm::Value* new_value); void EmitStoreDalvikReg(uint32_t reg_idx, char shorty, - JTypeSpace space, llvm::Value* new_value) { - EmitStoreDalvikReg(reg_idx, GetJTypeFromShorty(shorty), space, new_value); - } + JTypeSpace space, llvm::Value* new_value); - llvm::Value* EmitLoadDalvikRetValReg(JType jty, JTypeSpace space) { - return retval_reg_->GetValue(jty, space); - } + llvm::Value* EmitLoadDalvikRetValReg(JType jty, JTypeSpace space); - llvm::Value* EmitLoadDalvikRetValReg(char shorty, JTypeSpace space) { - return EmitLoadDalvikRetValReg(GetJTypeFromShorty(shorty), space); - } + llvm::Value* EmitLoadDalvikRetValReg(char shorty, JTypeSpace space); - void EmitStoreDalvikRetValReg(JType jty, JTypeSpace space, - llvm::Value* new_value) { - retval_reg_->SetValue(jty, space, new_value); - } + void EmitStoreDalvikRetValReg(JType jty, JTypeSpace space, llvm::Value* new_value); - void EmitStoreDalvikRetValReg(char shorty, JTypeSpace space, - llvm::Value* new_value) { - EmitStoreDalvikRetValReg(GetJTypeFromShorty(shorty), space, new_value); - } + void EmitStoreDalvikRetValReg(char shorty, JTypeSpace space, llvm::Value* new_value); // TODO: Use high-level IR to do this bool EmitInlineJavaIntrinsic(const std::string& callee_method_name, @@ -477,6 +455,7 @@ class MethodCompiler { llvm::Function* func_; std::vector<DalvikReg*> regs_; + std::vector<llvm::Value*> shadow_frame_entries_; std::vector<int32_t> reg_to_shadow_frame_index_; UniquePtr<DalvikReg> retval_reg_; |