2010-01-29 Zoltan Varga <vargaz@gmail.com>
commit42fc711b03ef6f949dcc47ba3aa7a3347428f3fe
authorzoltan <zoltan@e3ebcda4-bce8-0310-ba0a-eca2169e7518>
Fri, 29 Jan 2010 03:12:31 +0000 (29 03:12 +0000)
committerzoltan <zoltan@e3ebcda4-bce8-0310-ba0a-eca2169e7518>
Fri, 29 Jan 2010 03:12:31 +0000 (29 03:12 +0000)
treef9a51165a55956f2214d1f135b812b6fe680cf4c
parent97c3c5fdf09b8affafef18499bd9260c5f5175b0
2010-01-29  Zoltan Varga  <vargaz@gmail.com>

* mini.h (MONO_INST_FAULT): New instruction flag for loads which can cause
a fault, only used by the LLVM backend.

* ir-emit.h: Add _FAULT variants of the LOAD_MEMBASE macros. Mark
OP_CHECK_THIS with OP_IMPLICIT_EXCEPTION.

* method-to-ir.c: Use the new LOAD_MEMBASE_FAULT opcodes, get rid of the
calls to MONO_EMIT_NULL_CHECK which is automatically done by the new macros.

* mini-llvm.c: Only generate volatile loads from load instructions which have
the MONO_INST_FAULT flag set.

git-svn-id: svn+ssh://mono-cvs.ximian.com/source/trunk/mono@150534 e3ebcda4-bce8-0310-ba0a-eca2169e7518
mono/mini/ChangeLog
mono/mini/ir-emit.h
mono/mini/method-to-ir.c
mono/mini/mini-llvm-cpp.cpp
mono/mini/mini-llvm-cpp.h
mono/mini/mini-llvm.c
mono/mini/mini.h