diff options
author | Ian Lynagh <ian@well-typed.com> | 2012-09-21 18:36:27 +0100 |
---|---|---|
committer | Ian Lynagh <ian@well-typed.com> | 2012-09-21 19:08:17 +0100 |
commit | c88fe3975a19a6ff33bda2db1da1c424625e2223 (patch) | |
tree | 0d507066f4be5d3e9d2761f3191f279bd504afee /includes/rts/storage/ClosureMacros.h | |
parent | ef3339cf634aceddae43cc42bfe545a5461ebe36 (diff) | |
download | haskell-c88fe3975a19a6ff33bda2db1da1c424625e2223.tar.gz |
Convert more RTS macros to functions
Object sizes still unchanged.
Diffstat (limited to 'includes/rts/storage/ClosureMacros.h')
-rw-r--r-- | includes/rts/storage/ClosureMacros.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/includes/rts/storage/ClosureMacros.h b/includes/rts/storage/ClosureMacros.h index 8f071a21d7..849a6efbe4 100644 --- a/includes/rts/storage/ClosureMacros.h +++ b/includes/rts/storage/ClosureMacros.h @@ -177,16 +177,22 @@ STATIC_LINK(const StgInfoTable *info, StgClosure *p) } } -#define STATIC_LINK2(info,p) \ - (*(StgClosure**)(&((p)->payload[info->layout.payload.ptrs + \ - info->layout.payload.nptrs + 1]))) +INLINE_HEADER StgClosure *STATIC_LINK2(const StgInfoTable *info, + StgClosure *p) { + return (*(StgClosure**)(&((p)->payload[info->layout.payload.ptrs + + info->layout.payload.nptrs + 1]))); +} /* ----------------------------------------------------------------------------- INTLIKE and CHARLIKE closures. -------------------------------------------------------------------------- */ -#define CHARLIKE_CLOSURE(n) ((P_)&stg_CHARLIKE_closure[(n)-MIN_CHARLIKE]) -#define INTLIKE_CLOSURE(n) ((P_)&stg_INTLIKE_closure[(n)-MIN_INTLIKE]) +INLINE_HEADER P_ CHARLIKE_CLOSURE(int n) { + return (P_)&stg_CHARLIKE_closure[(n)-MIN_CHARLIKE]; +} +INLINE_HEADER P_ INTLIKE_CLOSURE(int n) { + return (P_)&stg_INTLIKE_closure[(n)-MIN_INTLIKE]; +} /* ---------------------------------------------------------------------------- Macros for untagging and retagging closure pointers |