Add vregs to ShadowFrame.
Change-Id: I870ab3c19c0e727f0e67b570eb55d45c3497d2ad
diff --git a/src/compiler_llvm/runtime_support_builder.cc b/src/compiler_llvm/runtime_support_builder.cc
index b51a822..2effddd 100644
--- a/src/compiler_llvm/runtime_support_builder.cc
+++ b/src/compiler_llvm/runtime_support_builder.cc
@@ -86,7 +86,8 @@
/* ShadowFrame */
llvm::Value* RuntimeSupportBuilder::EmitPushShadowFrame(llvm::Value* new_shadow_frame,
- llvm::Value* method, uint32_t size) {
+ llvm::Value* method, uint16_t num_refs,
+ uint16_t num_vregs) {
Value* old_shadow_frame = EmitLoadFromThreadOffset(Thread::TopShadowFrameOffset().Int32Value(),
irb_.getArtFrameTy()->getPointerTo(),
kTBAARuntimeInfo);
@@ -100,10 +101,16 @@
method,
kTBAAShadowFrame);
- // Store the number of the pointer slots
+ // Store the number of the reference slots
irb_.StoreToObjectOffset(new_shadow_frame,
ShadowFrame::NumberOfReferencesOffset(),
- irb_.getInt32(size),
+ irb_.getInt16(num_refs),
+ kTBAAShadowFrame);
+
+ // Store the number of vregs
+ irb_.StoreToObjectOffset(new_shadow_frame,
+ ShadowFrame::NumberOfVRegsOffset(),
+ irb_.getInt16(num_vregs),
kTBAAShadowFrame);
// Store the link to previous shadow frame