comparison src/cpu/x86/vm/templateInterpreter_x86_64.cpp @ 11228:e28663a9f5ef

fixed bug in java.util.zip.CRC32.update(int b) interpreter entry stub and re-enabled CRC32 intrinsics
author Doug Simon <doug.simon@oracle.com>
date Tue, 06 Aug 2013 18:31:23 +0200
parents 6b0fd0964b87
children 5c153c59ba62
comparison
equal deleted inserted replaced
11227:bd0e589a9a65 11228:e28663a9f5ef
923 address InterpreterGenerator::generate_CRC32_update_entry() { 923 address InterpreterGenerator::generate_CRC32_update_entry() {
924 if (UseCRC32Intrinsics) { 924 if (UseCRC32Intrinsics) {
925 address entry = __ pc(); 925 address entry = __ pc();
926 926
927 // rbx,: Method* 927 // rbx,: Method*
928 // rsi: senderSP must preserved for slow path, set SP to it on fast path 928 // r13: senderSP must preserved for slow path, set SP to it on fast path
929 // rdx: scratch 929 // rdx: scratch
930 // rdi: scratch 930 // rdi: scratch
931 931
932 Label slow_path; 932 Label slow_path;
933 // If we need a safepoint check, generate full interpreter entry. 933 // If we need a safepoint check, generate full interpreter entry.
954 __ notl(crc); // ~crc 954 __ notl(crc); // ~crc
955 // result in rax 955 // result in rax
956 956
957 // _areturn 957 // _areturn
958 __ pop(rdi); // get return address 958 __ pop(rdi); // get return address
959 __ mov(rsp, rsi); // set sp to sender sp 959 __ mov(rsp, r13); // set sp to sender sp
960 __ jmp(rdi); 960 __ jmp(rdi);
961 961
962 // generate a vanilla native entry as the slow path 962 // generate a vanilla native entry as the slow path
963 __ bind(slow_path); 963 __ bind(slow_path);
964 964