comparison src/cpu/zero/vm/frame_zero.cpp @ 1078:8e7adf982378

6896043: first round of zero fixes Reviewed-by: kvn Contributed-by: Gary Benson <gbenson@redhat.com>
author twisti
date Fri, 27 Nov 2009 07:56:58 -0800
parents 354d3184f6b2
children 0c5b3cf3c1f5
comparison
equal deleted inserted replaced
1073:de44705e6b33 1078:8e7adf982378
34 34
35 bool frame::is_interpreted_frame() const { 35 bool frame::is_interpreted_frame() const {
36 return zeroframe()->is_interpreter_frame(); 36 return zeroframe()->is_interpreter_frame();
37 } 37 }
38 38
39 bool frame::is_fake_stub_frame() const {
40 return zeroframe()->is_fake_stub_frame();
41 }
42
43 frame frame::sender_for_entry_frame(RegisterMap *map) const { 39 frame frame::sender_for_entry_frame(RegisterMap *map) const {
40 assert(zeroframe()->is_entry_frame(), "wrong type of frame");
44 assert(map != NULL, "map must be set"); 41 assert(map != NULL, "map must be set");
45 assert(!entry_frame_is_first(), "next Java fp must be non zero"); 42 assert(!entry_frame_is_first(), "next Java fp must be non zero");
46 assert(entry_frame_call_wrapper()->anchor()->last_Java_sp() == sender_sp(), 43 assert(entry_frame_call_wrapper()->anchor()->last_Java_sp() == sender_sp(),
47 "sender should be next Java frame"); 44 "sender should be next Java frame");
48 map->clear(); 45 map->clear();
49 assert(map->include_argument_oops(), "should be set by clear"); 46 assert(map->include_argument_oops(), "should be set by clear");
50 return frame(sender_sp(), sp() + 1); 47 return frame(sender_sp(), sp() + 1);
51 } 48 }
52 49
53 frame frame::sender_for_interpreter_frame(RegisterMap *map) const { 50 frame frame::sender_for_nonentry_frame(RegisterMap *map) const {
54 return frame(sender_sp(), sp() + 1); 51 assert(zeroframe()->is_interpreter_frame() ||
55 } 52 zeroframe()->is_shark_frame() ||
56 53 zeroframe()->is_fake_stub_frame(), "wrong type of frame");
57 frame frame::sender_for_compiled_frame(RegisterMap *map) const {
58 return frame(sender_sp(), sp() + 1);
59 }
60
61 frame frame::sender_for_fake_stub_frame(RegisterMap *map) const {
62 return frame(sender_sp(), sp() + 1); 54 return frame(sender_sp(), sp() + 1);
63 } 55 }
64 56
65 frame frame::sender(RegisterMap* map) const { 57 frame frame::sender(RegisterMap* map) const {
66 // Default is not to follow arguments; the various 58 // Default is not to follow arguments; the various
67 // sender_for_xxx methods update this accordingly. 59 // sender_for_xxx methods update this accordingly.
68 map->set_include_argument_oops(false); 60 map->set_include_argument_oops(false);
69 61
70 if (is_entry_frame()) 62 if (is_entry_frame())
71 return sender_for_entry_frame(map); 63 return sender_for_entry_frame(map);
72 64 else
73 if (is_interpreted_frame()) 65 return sender_for_nonentry_frame(map);
74 return sender_for_interpreter_frame(map);
75
76 if (is_compiled_frame())
77 return sender_for_compiled_frame(map);
78
79 if (is_fake_stub_frame())
80 return sender_for_fake_stub_frame(map);
81
82 ShouldNotReachHere();
83 } 66 }
84 67
85 #ifdef CC_INTERP 68 #ifdef CC_INTERP
86 BasicObjectLock* frame::interpreter_frame_monitor_begin() const { 69 BasicObjectLock* frame::interpreter_frame_monitor_begin() const {
87 return get_interpreterState()->monitor_base(); 70 return get_interpreterState()->monitor_base();