src/cpu/x86/vm/c1_Runtime1_x86.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 1665,1699 **** f.load_argument(0, pre_val); __ movptr(Address(tmp, 0), pre_val); __ jmp(done); __ bind(runtime); ! __ push(rcx); ! #ifdef _LP64 ! __ push(r8); ! __ push(r9); ! __ push(r10); ! __ push(r11); ! # ifndef _WIN64 ! __ push(rdi); ! __ push(rsi); ! # endif ! #endif // load the pre-value f.load_argument(0, rcx); __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), rcx, thread); ! #ifdef _LP64 ! # ifndef _WIN64 ! __ pop(rsi); ! __ pop(rdi); ! # endif ! __ pop(r11); ! __ pop(r10); ! __ pop(r9); ! __ pop(r8); ! #endif ! __ pop(rcx); __ bind(done); __ pop(rdx); __ pop(rax); } --- 1665,1683 ---- f.load_argument(0, pre_val); __ movptr(Address(tmp, 0), pre_val); __ jmp(done); __ bind(runtime); ! ! save_live_registers(sasm, 3); ! // load the pre-value f.load_argument(0, rcx); __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), rcx, thread); ! ! restore_live_registers(sasm); ! __ bind(done); __ pop(rdx); __ pop(rax); }
*** 1771,1801 **** __ pop(rbx); __ jmp(done); __ bind(runtime); __ push(rdx); ! #ifdef _LP64 ! __ push(r8); ! __ push(r9); ! __ push(r10); ! __ push(r11); ! # ifndef _WIN64 ! __ push(rdi); ! __ push(rsi); ! # endif ! #endif __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), card_addr, thread); ! #ifdef _LP64 ! # ifndef _WIN64 ! __ pop(rsi); ! __ pop(rdi); ! # endif ! __ pop(r11); ! __ pop(r10); ! __ pop(r9); ! __ pop(r8); ! #endif __ pop(rdx); __ bind(done); __ pop(rcx); __ pop(rax); --- 1755,1771 ---- __ pop(rbx); __ jmp(done); __ bind(runtime); __ push(rdx); ! ! save_live_registers(sasm, 3); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), card_addr, thread); ! ! restore_live_registers(sasm); ! __ pop(rdx); __ bind(done); __ pop(rcx); __ pop(rax);