diff options
author | Simon Marlow <simonmar@microsoft.com> | 2007-02-27 13:46:09 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2007-02-27 13:46:09 +0000 |
commit | b067bdc33ce1a0bb01957b0bcfbb1c516dba53a4 (patch) | |
tree | ca8c9a739185c3714fa795c1924b5bd781c21bbd /rts/PrimOps.cmm | |
parent | f38310c9d33a263a610005996f32f3d7d2e25c44 (diff) | |
download | haskell-b067bdc33ce1a0bb01957b0bcfbb1c516dba53a4.tar.gz |
Remove the itbls field of BCO, put itbls in with the literals
This is a simplification & minor optimisation for GHCi
Diffstat (limited to 'rts/PrimOps.cmm')
-rw-r--r-- | rts/PrimOps.cmm | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm index e0823e4eaf..955e50bbff 100644 --- a/rts/PrimOps.cmm +++ b/rts/PrimOps.cmm @@ -1900,17 +1900,16 @@ newBCOzh_fast /* R1 = instrs R2 = literals R3 = ptrs - R4 = itbls - R5 = arity - R6 = bitmap array + R4 = arity + R5 = bitmap array */ W_ bco, bitmap_arr, bytes, words; - bitmap_arr = R6; + bitmap_arr = R5; words = BYTES_TO_WDS(SIZEOF_StgBCO) + StgArrWords_words(bitmap_arr); bytes = WDS(words); - ALLOC_PRIM( bytes, R1_PTR&R2_PTR&R3_PTR&R4_PTR&R6_PTR, newBCOzh_fast ); + ALLOC_PRIM( bytes, R1_PTR&R2_PTR&R3_PTR&R5_PTR, newBCOzh_fast ); bco = Hp - bytes + WDS(1); SET_HDR(bco, stg_BCO_info, W_[CCCS]); @@ -1918,8 +1917,7 @@ newBCOzh_fast StgBCO_instrs(bco) = R1; StgBCO_literals(bco) = R2; StgBCO_ptrs(bco) = R3; - StgBCO_itbls(bco) = R4; - StgBCO_arity(bco) = HALF_W_(R5); + StgBCO_arity(bco) = HALF_W_(R4); StgBCO_size(bco) = HALF_W_(words); // Copy the arity/bitmap info into the BCO |