Created
May 30, 2017 00:16
-
-
Save fumieval/6933b61a6d63c721c8ff790a13e54249 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
insert_rp0_entry() // [R4, R3, R2] | |
{ [(c2ds, | |
block_c2ds_info: | |
const 2; | |
const 32;), | |
(c2dz, | |
insert_rp0_info: | |
const 12884901911; | |
const 0; | |
const 15;), | |
(c2dE, | |
block_c2dE_info: | |
const 5; | |
const 32;), | |
(c2dJ, | |
block_c2dJ_info: | |
const 772; | |
const 32;), | |
(c2e3, | |
block_c2e3_info: | |
const 1669; | |
const 32;), | |
(c2ef, | |
block_c2ef_info: | |
const 0; | |
const 32;)] | |
} | |
{offset | |
c2dz: | |
_s26q::P64 = R4; | |
_s26p::P64 = R3; | |
_s26o::P64 = R2; | |
if ((Sp + -72) < SpLim) goto c2dA; else goto c2dB; | |
c2dA: | |
R4 = _s26q::P64; | |
R3 = _s26p::P64; | |
R2 = _s26o::P64; | |
R1 = PicBaseReg + insert_rp0_closure; | |
call (I64[BaseReg - 8])(R4, R3, R2, R1) args: 8, res: 0, upd: 8; | |
c2dB: | |
I64[Sp - 24] = PicBaseReg + block_c2ds_info; | |
R1 = _s26q::P64; | |
P64[Sp - 16] = _s26o::P64; | |
P64[Sp - 8] = _s26p::P64; | |
Sp = Sp - 24; | |
if (R1 & 7 != 0) goto c2ds; else goto c2dt; | |
c2dt: | |
call (I64[R1])(R1) returns to c2ds, args: 8, res: 8, upd: 8; | |
c2ds: | |
_s26o::P64 = P64[Sp + 8]; | |
_s26p::P64 = P64[Sp + 16]; | |
_s26r::P64 = R1; | |
_c2dy::P64 = _s26r::P64 & 7; | |
if (_c2dy::P64 != 1) goto c2dx; else goto c2dw; | |
c2dx: | |
I64[Sp + 16] = PicBaseReg + block_c2ef_info; | |
R1 = _s26p::P64; | |
Sp = Sp + 16; | |
call stg_ap_0_fast(R1) returns to c2ef, args: 8, res: 8, upd: 8; | |
c2ef: | |
_s26y::P64 = R1; | |
Hp = Hp + 32; | |
if (Hp > I64[BaseReg + 856]) goto c2el; else goto c2ek; | |
c2el: | |
I64[BaseReg + 904] = 32; | |
R1 = _s26y::P64; | |
call (I64[PicBaseReg + stg_gc_unpt_r1@GOTPCREL])(R1) returns to c2ef, args: 8, res: 8, upd: 8; | |
c2ek: | |
I64[Hp - 24] = PicBaseReg + Main.Bin_con_info; | |
P64[Hp - 16] = _s26y::P64; | |
I64[Hp - 8] = PicBaseReg + (Main.Tip_closure+2); | |
I64[Hp] = PicBaseReg + (Main.Tip_closure+2); | |
_c2eh::P64 = Hp - 23; | |
R1 = _c2eh::P64; | |
Sp = Sp + 8; | |
call (P64[Sp])(R1) args: 8, res: 0, upd: 8; | |
c2dw: | |
_s26s::P64 = P64[_s26r::P64 + 7]; | |
_s26t::P64 = P64[_s26r::P64 + 15]; | |
_s26u::P64 = P64[_s26r::P64 + 23]; | |
I64[Sp - 24] = PicBaseReg + block_c2dE_info; | |
R2 = _s26o::P64; | |
I64[Sp - 48] = I64[PicBaseReg + stg_ap_pp_info@GOTPCREL]; | |
P64[Sp - 40] = _s26p::P64; | |
P64[Sp - 32] = _s26s::P64; | |
P64[Sp - 16] = _s26t::P64; | |
P64[Sp - 8] = _s26u::P64; | |
P64[Sp] = _s26s::P64; | |
Sp = Sp - 48; | |
call GHC.Classes.compare_info(R2) returns to c2dE, args: 32, res: 8, upd: 8; | |
c2dE: | |
_s26o::P64 = P64[Sp + 32]; | |
_s26p::P64 = P64[Sp + 40]; | |
_s26s::P64 = P64[Sp + 24]; | |
_s26t::P64 = P64[Sp + 8]; | |
_s26u::P64 = P64[Sp + 16]; | |
_s26v::P64 = R1; | |
_c2en::P64 = _s26v::P64 & 7; | |
if (_c2en::P64 < 3) goto u2em; else goto c2e9; | |
u2em: | |
if (_c2en::P64 < 2) goto c2dQ; else goto c2dX; | |
c2dQ: | |
I64[Sp + 8] = PicBaseReg + block_c2dJ_info; | |
R4 = _s26t::P64; | |
R3 = _s26p::P64; | |
R2 = _s26o::P64; | |
Sp = Sp + 8; | |
call insert_rp0_info(R4, | |
R3, | |
R2) returns to c2dJ, args: 8, res: 8, upd: 8; | |
c2dJ: | |
_s26s::P64 = P64[Sp + 16]; | |
_s26u::P64 = P64[Sp + 8]; | |
_s26w::P64 = R1; | |
Hp = Hp + 32; | |
if (Hp > I64[BaseReg + 856]) goto c2dT; else goto c2dS; | |
c2dT: | |
I64[BaseReg + 904] = 32; | |
R1 = _s26w::P64; | |
call (I64[PicBaseReg + stg_gc_unpt_r1@GOTPCREL])(R1) returns to c2dJ, args: 8, res: 8, upd: 8; | |
c2dS: | |
I64[Hp - 24] = PicBaseReg + Main.Bin_con_info; | |
P64[Hp - 16] = _s26s::P64; | |
P64[Hp - 8] = _s26w::P64; | |
P64[Hp] = _s26u::P64; | |
_c2dN::P64 = Hp - 23; | |
R1 = _c2dN::P64; | |
Sp = Sp + 40; | |
call (P64[Sp])(R1) args: 8, res: 0, upd: 8; | |
c2dX: | |
Hp = Hp + 32; | |
if (Hp > I64[BaseReg + 856]) goto c2e0; else goto c2dZ; | |
c2e0: | |
I64[BaseReg + 904] = 32; | |
R1 = _s26v::P64; | |
call (I64[PicBaseReg + stg_gc_unpt_r1@GOTPCREL])(R1) returns to c2dE, args: 8, res: 8, upd: 8; | |
c2dZ: | |
I64[Hp - 24] = PicBaseReg + Main.Bin_con_info; | |
P64[Hp - 16] = _s26s::P64; | |
P64[Hp - 8] = _s26t::P64; | |
P64[Hp] = _s26u::P64; | |
_c2dW::P64 = Hp - 23; | |
R1 = _c2dW::P64; | |
Sp = Sp + 48; | |
call (P64[Sp])(R1) args: 8, res: 0, upd: 8; | |
c2e9: | |
I64[Sp] = PicBaseReg + block_c2e3_info; | |
R4 = _s26u::P64; | |
R3 = _s26p::P64; | |
R2 = _s26o::P64; | |
call insert_rp0_info(R4, | |
R3, | |
R2) returns to c2e3, args: 8, res: 8, upd: 8; | |
c2e3: | |
_s26s::P64 = P64[Sp + 24]; | |
_s26t::P64 = P64[Sp + 8]; | |
_s26x::P64 = R1; | |
Hp = Hp + 32; | |
if (Hp > I64[BaseReg + 856]) goto c2ec; else goto c2eb; | |
c2ec: | |
I64[BaseReg + 904] = 32; | |
R1 = _s26x::P64; | |
call (I64[PicBaseReg + stg_gc_unpt_r1@GOTPCREL])(R1) returns to c2e3, args: 8, res: 8, upd: 8; | |
c2eb: | |
I64[Hp - 24] = PicBaseReg + Main.Bin_con_info; | |
P64[Hp - 16] = _s26s::P64; | |
P64[Hp - 8] = _s26t::P64; | |
P64[Hp] = _s26x::P64; | |
_c2e7::P64 = Hp - 23; | |
R1 = _c2e7::P64; | |
Sp = Sp + 48; | |
call (P64[Sp])(R1) args: 8, res: 0, upd: 8; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment