src/cpu/mips/vm/runtime_mips_64.cpp

changeset 8865
ffcdff41a92f
parent 6880
52ea28d233d2
child 9171
c67c94f5b85d
equal deleted inserted replaced
8864:e4aeef458496 8865:ffcdff41a92f
85 ResourceMark rm; 85 ResourceMark rm;
86 // setup code generation tools 86 // setup code generation tools
87 CodeBuffer buffer("exception_blob", 5120, 5120); 87 CodeBuffer buffer("exception_blob", 5120, 5120);
88 MacroAssembler* masm = new MacroAssembler(&buffer); 88 MacroAssembler* masm = new MacroAssembler(&buffer);
89 89
90 // OopMapSet *oop_maps = new OopMapSet();
91 90
92 address start = __ pc(); 91 address start = __ pc();
93 92
94 __ daddiu(SP, SP, -1 * framesize * wordSize); // Prolog! 93 __ daddiu(SP, SP, -1 * framesize * wordSize); // Prolog!
95 94
152 __ reset_last_Java_frame(thread, true, true); 151 __ reset_last_Java_frame(thread, true, true);
153 152
154 // Pop self-frame. 153 // Pop self-frame.
155 __ leave(); // Epilog! 154 __ leave(); // Epilog!
156 155
157 // rax,: exception handler for given <exception oop/exception pc> 156 // V0: exception handler
158 157
159 // We have a handler in rax, (could be deopt blob) 158 // We have a handler in V0, (could be deopt blob)
160 // rdx - throwing pc, deopt blob will need it.
161 /* FIXME: rdx? */
162
163 // rcx contains handler address
164 __ move(T9, V0); 159 __ move(T9, V0);
165 160
166 #ifndef OPT_THREAD 161 #ifndef OPT_THREAD
167 __ get_thread(thread); 162 __ get_thread(thread);
168 #endif 163 #endif

mercurial