From 80626e947f2a266a62356c4e1e16b1c0e9e4dc8a Mon Sep 17 00:00:00 2001
From: Chris Lattner Syntax:
- declare sbyte* %llvm.gcread(sbyte** %Ptr)
+ declare sbyte* %llvm.gcread(sbyte* %ObjPtr, sbyte** %Ptr)
Overview:
@@ -2928,8 +2928,10 @@ barriers.
The argument is the address to read from, which should be an address -allocated from the garbage collector.
+The second argument is the address to read from, which should be an address +allocated from the garbage collector. The first object is a pointer to the +start of the referenced object, if needed by the language runtime (otherwise +null).
- declare void %llvm.gcwrite(sbyte* %P1, sbyte** %P2) + declare void %llvm.gcwrite(sbyte* %P1, sbyte* %Obj, sbyte** %P2)
The first argument is the reference to store, and the second is the heap -location to store to.
+The first argument is the reference to store, the second is the start of the +object to store it to, and the third is the address of the field of Obj to +store to. If the runtime does not require a pointer to the object, Obj may be +null.