X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.h;h=fd1b3d6758da0e120be85163b9918338105c72d6;hb=b78bdd4d94de46de4156272e6dbfe44e97933a5b;hp=2b6934fbac41a35fe99384caba5c942bc55245b4;hpb=e1c33a238578342a072e1c95ff12eefe6d0acd37;p=libfirm diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index 2b6934fba..fd1b3d675 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -245,14 +245,16 @@ typedef enum { pn_Start_M, /**< Projection on the initial memory. */ pn_Start_P_frame_base, /**< Projection on the frame base pointer. */ pn_Start_P_globals, /**< Projection on the pointer to the data segment - containing _all_ global entities. */ + containing _all_ global entities. Use for + position independent data/code access. */ + pn_Start_P_tls, /**< Projection on the pointer to the thread local store + segment containing _all_thread local variables. */ pn_Start_T_args, /**< Projection on all arguments. */ pn_Start_P_value_arg_base, /**< Pointer to region of compound value arguments as defined by type of this method. */ pn_Start_max /**< number of projections from a Start */ } pn_Start; /* Projection numbers for Start. */ - /** Test whether arbitrary node is frame pointer. * * Test whether arbitrary node is frame pointer, i.e. Proj(pn_Start_P_frame_base) @@ -265,6 +267,12 @@ ir_type *is_frame_pointer(ir_node *n); * from Start. If so returns global type, else Null. */ ir_type *is_globals_pointer(ir_node *n); +/** Test whether arbitrary node is tls pointer. + * + * Test whether arbitrary node is tls pointer, i.e. Proj(pn_Start_P_tls) + * from Start. If so returns tls type, else Null. */ +ir_type *is_tls_pointer(ir_node *n); + /** Test whether arbitrary node is value arg base. * * Test whether arbitrary node is value arg base, i.e. Proj(pn_Start_P_value_arg_base)