/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
void add_irp_mode(ir_mode *mode);
/* INLINE functions */
+static INLINE ir_type *
+_get_segment_type(ir_segment_t segment)
+{
+ ir_type *type;
+
+ assert(segment < IR_SEGMENT_COUNT);
+ type = skip_tid(irp->segment_types[segment]);
+ irp->segment_types[segment] = type;
+ return type;
+}
static INLINE ir_type *
_get_glob_type(void) {
- assert(irp);
- return irp->glob_type = skip_tid(irp->glob_type);
+ return _get_segment_type(IR_SEGMENT_GLOBAL);
}
static INLINE ir_type *
_get_tls_type(void) {
- assert(irp);
- return irp->tls_type = skip_tid(irp->tls_type);
+ return _get_segment_type(IR_SEGMENT_THREAD_LOCAL);
}
static INLINE int
}
#endif /* DEBUG_libfirm */
+static INLINE int
+get_irp_new_irg_idx(void) {
+ assert(irp);
+ return irp->max_irg_idx++;
+}
+
static INLINE ir_graph *
_get_const_code_irg(void) {
return irp->const_code_irg;
#define get_irp_n_opcodes() _get_irp_n_opcodes()
#define get_irp_opcode(pos) _get_irp_opcode(pos)
#define get_const_code_irg() _get_const_code_irg()
+#define get_segment_type(s) _get_segment_type(s
#define get_glob_type() _get_glob_type()
#define get_tls_type() _get_tls_type()
#define get_irp_next_region_nr() _get_irp_next_region_nr()