Revision: 8500
Author: [email protected]
Date: Thu Jun 30 08:57:56 2011
Log: Change return type of FrameDescription::GetFrameSize to avoid
unneeded type casts.
Review URL: http://codereview.chromium.org/7282033
http://code.google.com/p/v8/source/detail?r=8500
Modified:
/branches/bleeding_edge/src/arm/deoptimizer-arm.cc
/branches/bleeding_edge/src/deoptimizer.cc
/branches/bleeding_edge/src/deoptimizer.h
/branches/bleeding_edge/src/ia32/deoptimizer-ia32.cc
/branches/bleeding_edge/src/x64/deoptimizer-x64.cc
=======================================
--- /branches/bleeding_edge/src/arm/deoptimizer-arm.cc Wed Jun 29 06:02:00
2011
+++ /branches/bleeding_edge/src/arm/deoptimizer-arm.cc Thu Jun 30 08:57:56
2011
@@ -550,7 +550,7 @@
}
// Fill the frame content from the actual data on the frame.
- for (intptr_t i = 0; i < input_->GetFrameSize(); i += kPointerSize) {
+ for (unsigned i = 0; i < input_->GetFrameSize(); i += kPointerSize) {
input_->SetFrameSlot(i, Memory::uint32_at(tos + i));
}
}
=======================================
--- /branches/bleeding_edge/src/deoptimizer.cc Thu Jun 30 06:08:13 2011
+++ /branches/bleeding_edge/src/deoptimizer.cc Thu Jun 30 08:57:56 2011
@@ -161,7 +161,7 @@
// Get the "simulated" top and size for the requested frame.
Address top =
reinterpret_cast<Address>(deoptimizer->output_[frame_index]->GetTop());
- intptr_t size =
+ unsigned size =
deoptimizer->output_[frame_index]->GetFrameSize() / kPointerSize;
// Done with the GC-unsafe frame descriptions. This re-enables
allocation.
@@ -1114,13 +1114,13 @@
if (slot_index >= 0) {
// Local or spill slots. Skip the fixed part of the frame
// including all arguments.
- unsigned base = static_cast<unsigned>(
- GetFrameSize() - deoptimizer->ComputeFixedSize(GetFunction()));
+ unsigned base =
+ GetFrameSize() - deoptimizer->ComputeFixedSize(GetFunction());
return base - ((slot_index + 1) * kPointerSize);
} else {
// Incoming parameter.
- unsigned base = static_cast<unsigned>(GetFrameSize() -
- deoptimizer->ComputeIncomingArgumentSize(GetFunction()));
+ unsigned base = GetFrameSize() -
+ deoptimizer->ComputeIncomingArgumentSize(GetFunction());
return base - ((slot_index + 1) * kPointerSize);
}
}
@@ -1128,8 +1128,8 @@
unsigned FrameDescription::GetExpressionCount(Deoptimizer* deoptimizer) {
ASSERT_EQ(Code::FUNCTION, kind_);
- intptr_t size = GetFrameSize() -
deoptimizer->ComputeFixedSize(GetFunction());
- return static_cast<unsigned>(size / kPointerSize);
+ unsigned size = GetFrameSize() -
deoptimizer->ComputeFixedSize(GetFunction());
+ return size / kPointerSize;
}
=======================================
--- /branches/bleeding_edge/src/deoptimizer.h Wed Jun 29 06:02:00 2011
+++ /branches/bleeding_edge/src/deoptimizer.h Thu Jun 30 08:57:56 2011
@@ -340,7 +340,10 @@
free(description);
}
- intptr_t GetFrameSize() const { return frame_size_; }
+ uint32_t GetFrameSize() const {
+ ASSERT(static_cast<uint32_t>(frame_size_) == frame_size_);
+ return static_cast<uint32_t>(frame_size_);
+ }
JSFunction* GetFunction() const { return function_; }
@@ -434,6 +437,9 @@
private:
static const uint32_t kZapUint32 = 0xbeeddead;
+ // Frame_size_ must hold a uint32_t value. It is only a uintptr_t to
+ // keep the variable-size array frame_content_ of type intptr_t at
+ // the end of the structure aligned.
uintptr_t frame_size_; // Number of bytes.
JSFunction* function_;
intptr_t registers_[Register::kNumRegisters];
=======================================
--- /branches/bleeding_edge/src/ia32/deoptimizer-ia32.cc Wed Jun 29
06:02:00 2011
+++ /branches/bleeding_edge/src/ia32/deoptimizer-ia32.cc Thu Jun 30
08:57:56 2011
@@ -621,7 +621,7 @@
}
// Fill the frame content from the actual data on the frame.
- for (intptr_t i = 0; i < input_->GetFrameSize(); i += kPointerSize) {
+ for (unsigned i = 0; i < input_->GetFrameSize(); i += kPointerSize) {
input_->SetFrameSlot(i, Memory::uint32_at(tos + i));
}
}
=======================================
--- /branches/bleeding_edge/src/x64/deoptimizer-x64.cc Wed Jun 29 06:02:00
2011
+++ /branches/bleeding_edge/src/x64/deoptimizer-x64.cc Thu Jun 30 08:57:56
2011
@@ -316,7 +316,7 @@
USE(height_in_bytes);
unsigned fixed_size = ComputeFixedSize(function_);
- unsigned input_frame_size =
static_cast<unsigned>(input_->GetFrameSize());
+ unsigned input_frame_size = input_->GetFrameSize();
ASSERT(fixed_size + height_in_bytes == input_frame_size);
unsigned stack_slot_size = optimized_code_->stack_slots() * kPointerSize;
@@ -451,7 +451,7 @@
// The 'fixed' part of the frame consists of the incoming parameters and
// the part described by JavaScriptFrameConstants.
unsigned fixed_frame_size = ComputeFixedSize(function);
- unsigned input_frame_size =
static_cast<unsigned>(input_->GetFrameSize());
+ unsigned input_frame_size = input_->GetFrameSize();
unsigned output_frame_size = height_in_bytes + fixed_frame_size;
// Allocate and store the output frame description.
@@ -616,7 +616,7 @@
}
// Fill the frame content from the actual data on the frame.
- for (intptr_t i = 0; i < input_->GetFrameSize(); i += kPointerSize) {
+ for (unsigned i = 0; i < input_->GetFrameSize(); i += kPointerSize) {
input_->SetFrameSlot(i, Memory::uint64_at(tos + i));
}
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev