comparison src/cpu/x86/vm/templateInterpreter_x86_64.cpp @ 10506:7344fa3e8833

Fixed an interpreter issue concerning a trashed register.
author Christian Haeubl <haeubl@ssw.jku.at>
date Mon, 24 Jun 2013 11:43:48 +0200
parents 40b8c383bc31
children ce09ad599709
comparison
equal deleted inserted replaced
10490:dcbdf71c4507 10506:7344fa3e8833
373 if (CompilationPolicyChoice == 4) { 373 if (CompilationPolicyChoice == 4) {
374 Label not_zero; 374 Label not_zero;
375 __ testl(rcx, InvocationCounter::count_mask_value); 375 __ testl(rcx, InvocationCounter::count_mask_value);
376 __ jcc(Assembler::notZero, not_zero); 376 __ jcc(Assembler::notZero, not_zero);
377 377
378 __ push(rax);
378 __ push(rcx); 379 __ push(rcx);
379 __ call_VM(noreg, CAST_FROM_FN_PTR(address, graal_initialize_time), rdx, false); 380 __ call_VM(noreg, CAST_FROM_FN_PTR(address, graal_initialize_time), rdx, false);
380 __ set_method_data_pointer_for_bcp(); 381 __ set_method_data_pointer_for_bcp();
381 __ get_method(rbx); 382 __ get_method(rbx);
382 __ pop(rcx); 383 __ pop(rcx);
384 __ pop(rax);
383 385
384 __ testl(rcx, InvocationCounter::count_mask_value); 386 __ testl(rcx, InvocationCounter::count_mask_value);
385 __ jcc(Assembler::zero, not_zero); 387 __ jcc(Assembler::zero, not_zero);
386 __ stop("unexpected counter value in rcx"); 388 __ stop("unexpected counter value in rcx");
387 389