comparison src/cpu/x86/vm/x86_64.ad @ 6143:8b0a4867acf0

7174218: remove AtomicLongCSImpl intrinsics Reviewed-by: kvn, twisti Contributed-by: Krystal Mok <sajia@taobao.com>
author twisti
date Tue, 12 Jun 2012 14:31:44 -0700
parents ccaa67adfe5b
children 8c92982cbbc4
comparison
equal deleted inserted replaced
6142:121e5708ae96 6143:8b0a4867acf0
7495 opcode(0x8B); 7495 opcode(0x8B);
7496 ins_encode(REX_reg_mem_wide(dst, mem), OpcP, reg_mem(dst, mem)); 7496 ins_encode(REX_reg_mem_wide(dst, mem), OpcP, reg_mem(dst, mem));
7497 ins_pipe(ialu_reg_mem); // XXX 7497 ins_pipe(ialu_reg_mem); // XXX
7498 %} 7498 %}
7499 7499
7500 // LoadL-locked - same as a regular LoadL when used with compare-swap
7501 instruct loadLLocked(rRegL dst, memory mem)
7502 %{
7503 match(Set dst (LoadLLocked mem));
7504
7505 ins_cost(125); // XXX
7506 format %{ "movq $dst, $mem\t# long locked" %}
7507 opcode(0x8B);
7508 ins_encode(REX_reg_mem_wide(dst, mem), OpcP, reg_mem(dst, mem));
7509 ins_pipe(ialu_reg_mem); // XXX
7510 %}
7511
7512 // Conditional-store of the updated heap-top. 7500 // Conditional-store of the updated heap-top.
7513 // Used during allocation of the shared heap. 7501 // Used during allocation of the shared heap.
7514 // Sets flags (EQ) on success. Implemented with a CMPXCHG on Intel. 7502 // Sets flags (EQ) on success. Implemented with a CMPXCHG on Intel.
7515 7503
7516 instruct storePConditional(memory heap_top_ptr, 7504 instruct storePConditional(memory heap_top_ptr,