Mercurial > hg > graal-jvmci-8
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 |