From: Zoltan Varga Date: Tue, 27 May 2008 18:01:59 +0000 (-0000) Subject: 2008-05-27 Zoltan Varga X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=ea76cb19e186cdcd46c0f5698fe30b4f732527d4;p=mono.git 2008-05-27 Zoltan Varga * mini.c (mini_get_inst_for_method): Add support for CAS instrinsics when the 'value' to store is a constant. * mini-ops.h: Add OP_ATOMIC_CAS_IMM opcodes. * mini-amd64.c (mono_arch_output_basic_block): Optimize the the implementation of ATOMIC_EXCHANGE opcodes, add support for the CAS opcodes. svn path=/trunk/mono/; revision=104171 --- diff --git a/mono/mini/cpu-amd64.md b/mono/mini/cpu-amd64.md index 6ea8864491e..9ab2bb62033 100644 --- a/mono/mini/cpu-amd64.md +++ b/mono/mini/cpu-amd64.md @@ -293,10 +293,12 @@ amd64_save_sp_to_lmf: len:16 tls_get: dest:i len:16 atomic_add_i4: src1:b src2:i dest:i len:32 atomic_add_new_i4: src1:b src2:i dest:i len:32 -atomic_exchange_i4: src1:b src2:i dest:i len:32 +atomic_exchange_i4: src1:b src2:i dest:a len:32 atomic_add_i8: src1:b src2:i dest:i len:32 atomic_add_new_i8: src1:b src2:i dest:i len:32 -atomic_exchange_i8: src1:b src2:i dest:i len:32 +atomic_exchange_i8: src1:b src2:i dest:a len:32 +atomic_cas_imm_i4: src1:b src2:i dest:a len:32 +atomic_cas_imm_i8: src1:b src2:i dest:a len:32 memory_barrier: len:16 adc: dest:i src1:i src2:i len:3 clob:1 addcc: dest:i src1:i src2:i len:3 clob:1