| Index: src/debug.cc
|
| ===================================================================
|
| --- src/debug.cc (revision 352)
|
| +++ src/debug.cc (working copy)
|
| @@ -96,8 +96,8 @@
|
|
|
| // Whenever a statement position or (plain) position is passed update the
|
| // current value of these.
|
| - if (is_position(rmode())) {
|
| - if (is_statement_position(rmode())) {
|
| + if (RelocInfo::IsPosition(rmode())) {
|
| + if (RelocInfo::IsStatementPosition(rmode())) {
|
| statement_position_ =
|
| rinfo()->data() - debug_info_->shared()->start_position();
|
| }
|
| @@ -111,10 +111,10 @@
|
| // Check for breakable code target. Look in the original code as setting
|
| // break points can cause the code targets in the running (debugged) code to
|
| // be of a different kind than in the original code.
|
| - if (is_code_target(rmode())) {
|
| + if (RelocInfo::IsCodeTarget(rmode())) {
|
| Address target = original_rinfo()->target_address();
|
| Code* code = Debug::GetCodeTarget(target);
|
| - if (code->is_inline_cache_stub() || is_js_construct_call(rmode())) {
|
| + if (code->is_inline_cache_stub() || RelocInfo::IsConstructCall(rmode())) {
|
| break_point_++;
|
| return;
|
| }
|
| @@ -135,8 +135,7 @@
|
| }
|
|
|
| // Check for break at return.
|
| - // Currently is_exit_js_frame is used on ARM.
|
| - if (is_js_return(rmode()) || is_exit_js_frame(rmode())) {
|
| + if (RelocInfo::IsJSReturn(rmode())) {
|
| // Set the positions to the end of the function.
|
| if (debug_info_->shared()->HasSourceCode()) {
|
| position_ = debug_info_->shared()->end_position() -
|
| @@ -285,7 +284,7 @@
|
| return;
|
| }
|
|
|
| - if (is_js_return(rmode())) {
|
| + if (RelocInfo::IsJSReturn(rmode())) {
|
| // This path is currently only used on IA32 as JSExitFrame on ARM uses a
|
| // stub.
|
| // Patch the JS frame exit code with a debug break call. See
|
| @@ -310,7 +309,7 @@
|
|
|
|
|
| void BreakLocationIterator::ClearDebugBreak() {
|
| - if (is_js_return(rmode())) {
|
| + if (RelocInfo::IsJSReturn(rmode())) {
|
| // Restore the JS frame exit code.
|
| rinfo()->patch_code(original_rinfo()->pc(),
|
| Debug::kIa32JSReturnSequenceLength);
|
| @@ -341,15 +340,14 @@
|
| }
|
| } else {
|
| // Step in through constructs call requires no changes to the running code.
|
| - ASSERT(is_js_construct_call(rmode()));
|
| + ASSERT(RelocInfo::IsConstructCall(rmode()));
|
| }
|
| }
|
|
|
|
|
| // Check whether the break point is at a position which will exit the function.
|
| bool BreakLocationIterator::IsExit() const {
|
| - // Currently is_exit_js_frame is used on ARM.
|
| - return (is_js_return(rmode()) || is_exit_js_frame(rmode()));
|
| + return (RelocInfo::IsJSReturn(rmode()));
|
| }
|
|
|
|
|
| @@ -360,7 +358,7 @@
|
|
|
| // Check whether there is a debug break at the current position.
|
| bool BreakLocationIterator::IsDebugBreak() {
|
| - if (is_js_return(rmode())) {
|
| + if (RelocInfo::IsJSReturn(rmode())) {
|
| // This is IA32 specific but works as long as the ARM version
|
| // still uses a stub for JSExitFrame.
|
| //
|
| @@ -403,7 +401,7 @@
|
| // Threading support.
|
| void Debug::ThreadInit() {
|
| thread_local_.last_step_action_ = StepNone;
|
| - thread_local_.last_statement_position_ = kNoPosition;
|
| + thread_local_.last_statement_position_ = RelocInfo::kNoPosition;
|
| thread_local_.step_count_ = 0;
|
| thread_local_.last_fp_ = 0;
|
| thread_local_.step_into_fp_ = 0;
|
| @@ -921,7 +919,7 @@
|
|
|
| // Compute whether or not the target is a call target.
|
| bool is_call_target = false;
|
| - if (is_code_target(it.rinfo()->rmode())) {
|
| + if (RelocInfo::IsCodeTarget(it.rinfo()->rmode())) {
|
| Address target = it.rinfo()->target_address();
|
| Code* code = Debug::GetCodeTarget(target);
|
| if (code->is_call_stub()) is_call_target = true;
|
| @@ -937,7 +935,7 @@
|
| JSFunction* function = JSFunction::cast(frames_it.frame()->function());
|
| FloodWithOneShot(Handle<SharedFunctionInfo>(function->shared()));
|
| }
|
| - } else if (!(is_call_target || is_js_construct_call(it.rmode())) ||
|
| + } else if (!(is_call_target || RelocInfo::IsConstructCall(it.rmode())) ||
|
| step_action == StepNext || step_action == StepMin) {
|
| // Step next or step min.
|
|
|
| @@ -1017,9 +1015,9 @@
|
| Handle<Code> Debug::FindDebugBreak(RelocInfo* rinfo) {
|
| // Find the builtin debug break function matching the calling convention
|
| // used by the call site.
|
| - RelocMode mode = rinfo->rmode();
|
| + RelocInfo::Mode mode = rinfo->rmode();
|
|
|
| - if (is_code_target(mode)) {
|
| + if (RelocInfo::IsCodeTarget(mode)) {
|
| Address target = rinfo->target_address();
|
| Code* code = Debug::GetCodeTarget(target);
|
| if (code->is_inline_cache_stub()) {
|
| @@ -1043,15 +1041,11 @@
|
| return result;
|
| }
|
| }
|
| - if (is_js_construct_call(mode)) {
|
| + if (RelocInfo::IsConstructCall(mode)) {
|
| Handle<Code> result =
|
| Handle<Code>(Builtins::builtin(Builtins::ConstructCall_DebugBreak));
|
| return result;
|
| }
|
| - // Currently is_exit_js_frame is used on ARM.
|
| - if (is_exit_js_frame(mode)) {
|
| - return Handle<Code>(Builtins::builtin(Builtins::Return_DebugBreak));
|
| - }
|
| if (code->kind() == Code::STUB) {
|
| ASSERT(code->major_key() == CodeStub::CallFunction ||
|
| code->major_key() == CodeStub::StackCheck);
|
| @@ -1132,7 +1126,7 @@
|
|
|
| void Debug::ClearStepNext() {
|
| thread_local_.last_step_action_ = StepNone;
|
| - thread_local_.last_statement_position_ = kNoPosition;
|
| + thread_local_.last_statement_position_ = RelocInfo::kNoPosition;
|
| thread_local_.last_fp_ = 0;
|
| }
|
|
|
| @@ -1222,7 +1216,7 @@
|
| bool at_js_exit = false;
|
| RelocIterator it(debug_info->code());
|
| while (!it.done()) {
|
| - if (is_js_return(it.rinfo()->rmode())) {
|
| + if (RelocInfo::IsJSReturn(it.rinfo()->rmode())) {
|
| at_js_exit = it.rinfo()->pc() == addr - 1;
|
| }
|
| it.next();
|
|
|