Diff
checker
Texte
Texte
Images
Documents
Excel
Dossiers
Legal
Enterprise
Application de bureau
Prix
Se connecter
Télécharger Diffchecker Desktop
Comparer le texte
Trouver la différence entre deux fichiers texte
Outils
Historique
Éditeur live
Masquer les espaces
Cacher identiques
Sans retour à la ligne
Vue
Divisé
Unifié
Niveau de précision
Intelligent
Mot
Caractère
Styles de texte
Modifier l’apparence
Coloration syntaxique
Choisir la syntaxe
Ignorer
Transformer le texte
Aller au premier écart
Modifier l'entrée
Diffchecker Desktop
La façon la plus sécurisée d'utiliser Diffchecker. Obtenez l'application Diffchecker Desktop : vos diffs ne quittent jamais votre ordinateur !
Obtenir Desktop
Untitled diff
Créé
il y a 8 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
49 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
81 lignes
Copier tout
44 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
76 lignes
Copier tout
Copier
Copié
Copier
Copié
cbQ
9
: // global
cbQ
A
: // global
R5 = P64[Sp + 32];
R5 = P64[Sp + 32];
R4 = P64[Sp + 24];
R4 = P64[Sp + 24];
R3 = P64[Sp + 16];
R3 = P64[Sp + 16];
R2 = P64[Sp + 8];
R2 = P64[Sp + 8];
Sp = Sp + 48;
Sp = Sp + 48;
call GHC.IO.Handle.Internals.$wdo_operation_info(R5,
call GHC.IO.Handle.Internals.$wdo_operation_info(R5,
R4,
R4,
R3,
R3,
R2) args: 8, res: 0, upd: 8;
R2) args: 8, res: 0, upd: 8;
Copier
Copié
Copier
Copié
cbQ
6
: // global
cbQ
x
: // global
R1 = _saE
g
::P64;
R1 = _saE
F
::P64;
Sp = Sp + 48;
Sp = Sp + 48;
call stg_raiseIO#(R1) args: 8, res: 0, upd: 8;
call stg_raiseIO#(R1) args: 8, res: 0, upd: 8;
}
}
},
},
Copier
Copié
Copier
Copié
sat_entry() // [R1]
{ info_tbl: [(cbQt,
label: sat_info
rep:HeapRep 2 ptrs { Thunk })]
stack_info: arg_space: 8 updfr_space: Just 8
}
{offset
cbQt: // global
R2 = P64[R1 + 24];
R1 = P64[R1 + 16];
call stg_ap_p_fast(R2, R1) args: 8, res: 0, upd: 8;
}
},
GHC.IO.Handle.Internals.$wdo_operation_entry() // [R5, R4, R3, R2]
GHC.IO.Handle.Internals.$wdo_operation_entry() // [R5, R4, R3, R2]
Copier
Copié
Copier
Copié
{ info_tbl: [(cbP
q
,
{ info_tbl: [(cbP
P
,
label: block_info
label: block_info
rep:StackRep [False, False, False, False]),
rep:StackRep [False, False, False, False]),
Copier
Copié
Copier
Copié
(cbQ
w
,
(cbPR,
label: block_info
rep:StackRep [False, False, False, False, False]),
(cbQ
Q
,
label: GHC.IO.Handle.Internals.$wdo_operation_info
label: GHC.IO.Handle.Internals.$wdo_operation_info
rep:HeapRep static { Fun {arity: 5 fun_type: ArgSpec 24} })]
rep:HeapRep static { Fun {arity: 5 fun_type: ArgSpec 24} })]
stack_info: arg_space: 8 updfr_space: Just 8
stack_info: arg_space: 8 updfr_space: Just 8
}
}
{offset
{offset
Copier
Copié
Copier
Copié
cbQ
w
: // global
cbQ
Q
: // global
if ((Sp + -
40
) < SpLim) (likely: False) goto cbQ
x
; else goto cbQ
y
;
if ((Sp + -
48
) < SpLim) (likely: False) goto cbQ
R
; else goto cbQ
S
;
cbQ
x
: // global
cbQ
R
: // global
R5 = R5;
R5 = R5;
R4 = R4;
R4 = R4;
R3 = R3;
R3 = R3;
R2 = R2;
R2 = R2;
R1 = GHC.IO.Handle.Internals.$wdo_operation_closure;
R1 = GHC.IO.Handle.Internals.$wdo_operation_closure;
call (stg_gc_fun)(R5, R4, R3, R2, R1) args: 8, res: 0, upd: 8;
call (stg_gc_fun)(R5, R4, R3, R2, R1) args: 8, res: 0, upd: 8;
Copier
Copié
Copier
Copié
cbQ
y
: // global
cbQ
S
: // global
I64[Sp - 40] = cbP
q
;
I64[Sp - 40] = cbP
P
;
R1 = R5;
R1 = R5;
P64[Sp - 32] = R2;
P64[Sp - 32] = R2;
P64[Sp - 24] = R3;
P64[Sp - 24] = R3;
P64[Sp - 16] = R4;
P64[Sp - 16] = R4;
P64[Sp - 8] = R5;
P64[Sp - 8] = R5;
Sp = Sp - 40;
Sp = Sp - 40;
Copier
Copié
Copier
Copié
call stg_takeMVar#(R1) returns to cbP
q
, args: 8, res: 8, upd: 8;
call stg_takeMVar#(R1) returns to cbP
P
, args: 8, res: 8, upd: 8;
cbPq
: // global
cbPP: // global
Hp = Hp +
80
;
I64[Sp - 8] = cbPR;
if (Hp > HpLim) (likely: False) goto cbQ
B
; else goto cbQ
A
;
R2 = R1;
cbQ
B
: // global
_saEA::P64 = R1;
HpAlloc =
80
;
R1 = P64[Sp + 24];
P64[Sp] = _saEA::P64;
Sp = Sp - 8;
call stg_ap_p_fast(R2,
R1) returns to cbPR, args: 8, res: 8, upd: 8;
cbPR
: // global
Hp = Hp +
48
;
if (Hp > HpLim) (likely: False) goto cbQ
W
; else goto cbQ
V
;
cbQ
W
: // global
HpAlloc =
48
;
R1 = R1;
R1 = R1;
Copier
Copié
Copier
Copié
call stg_gc_unpt_r1(R1) returns to cbP
q
, args: 8, res: 8, upd: 8;
call stg_gc_unpt_r1(R1) returns to cbP
R
, args: 8, res: 8, upd: 8;
cbQ
A
: // global
cbQ
V
: // global
I64[Hp -
72
] = sat_info;
I64[Hp -
40
] = sat_info;
P64[Hp -
64] = P64[Sp + 8];
P64[Hp -
32
] = P64[Sp + 16];
P64[Hp - 56
] = P64[Sp + 16];
P64
[Hp - 24]
= P64[Sp + 24];
_saE6::
P64
= P64[Sp + 24];
P64[Hp -
16
] = P64[Sp + 32];
P64[Hp -
48] = _saE6::P64;
P64[Hp -
8
] =
P64[
Sp + 40]
;
P64[Hp - 40
] = P64[Sp + 32];
P64[Hp] =
P64[Sp + 8]
;
P64[Hp -
32] = R1;
R2 = Hp -
38
;
I64[Hp - 24
] =
sat_info;
R1 =
R1
;
P64[
Hp - 8] = _saE6::P64
;
Sp = Sp +
48
;
P64[Hp] =
R1
;
R2 = Hp -
70
;
R1 =
Hp - 24
;
Sp = Sp +
40
;
call stg_catch#(R2, R1) args: 8, res: 0, upd: 8;
call stg_catch#(R2, R1) args: 8, res: 0, upd: 8;
}
}
}]
}]
Différences enregistrées
Texte d'origine
Ouvrir un fichier
cbQ9: // global R5 = P64[Sp + 32]; R4 = P64[Sp + 24]; R3 = P64[Sp + 16]; R2 = P64[Sp + 8]; Sp = Sp + 48; call GHC.IO.Handle.Internals.$wdo_operation_info(R5, R4, R3, R2) args: 8, res: 0, upd: 8; cbQ6: // global R1 = _saEg::P64; Sp = Sp + 48; call stg_raiseIO#(R1) args: 8, res: 0, upd: 8; } }, sat_entry() // [R1] { info_tbl: [(cbQt, label: sat_info rep:HeapRep 2 ptrs { Thunk })] stack_info: arg_space: 8 updfr_space: Just 8 } {offset cbQt: // global R2 = P64[R1 + 24]; R1 = P64[R1 + 16]; call stg_ap_p_fast(R2, R1) args: 8, res: 0, upd: 8; } }, GHC.IO.Handle.Internals.$wdo_operation_entry() // [R5, R4, R3, R2] { info_tbl: [(cbPq, label: block_info rep:StackRep [False, False, False, False]), (cbQw, label: GHC.IO.Handle.Internals.$wdo_operation_info rep:HeapRep static { Fun {arity: 5 fun_type: ArgSpec 24} })] stack_info: arg_space: 8 updfr_space: Just 8 } {offset cbQw: // global if ((Sp + -40) < SpLim) (likely: False) goto cbQx; else goto cbQy; cbQx: // global R5 = R5; R4 = R4; R3 = R3; R2 = R2; R1 = GHC.IO.Handle.Internals.$wdo_operation_closure; call (stg_gc_fun)(R5, R4, R3, R2, R1) args: 8, res: 0, upd: 8; cbQy: // global I64[Sp - 40] = cbPq; R1 = R5; P64[Sp - 32] = R2; P64[Sp - 24] = R3; P64[Sp - 16] = R4; P64[Sp - 8] = R5; Sp = Sp - 40; call stg_takeMVar#(R1) returns to cbPq, args: 8, res: 8, upd: 8; cbPq: // global Hp = Hp + 80; if (Hp > HpLim) (likely: False) goto cbQB; else goto cbQA; cbQB: // global HpAlloc = 80; R1 = R1; call stg_gc_unpt_r1(R1) returns to cbPq, args: 8, res: 8, upd: 8; cbQA: // global I64[Hp - 72] = sat_info; P64[Hp - 64] = P64[Sp + 8]; P64[Hp - 56] = P64[Sp + 16]; _saE6::P64 = P64[Sp + 24]; P64[Hp - 48] = _saE6::P64; P64[Hp - 40] = P64[Sp + 32]; P64[Hp - 32] = R1; I64[Hp - 24] = sat_info; P64[Hp - 8] = _saE6::P64; P64[Hp] = R1; R2 = Hp - 70; R1 = Hp - 24; Sp = Sp + 40; call stg_catch#(R2, R1) args: 8, res: 0, upd: 8; } }]
Texte modifié
Ouvrir un fichier
cbQA: // global R5 = P64[Sp + 32]; R4 = P64[Sp + 24]; R3 = P64[Sp + 16]; R2 = P64[Sp + 8]; Sp = Sp + 48; call GHC.IO.Handle.Internals.$wdo_operation_info(R5, R4, R3, R2) args: 8, res: 0, upd: 8; cbQx: // global R1 = _saEF::P64; Sp = Sp + 48; call stg_raiseIO#(R1) args: 8, res: 0, upd: 8; } }, GHC.IO.Handle.Internals.$wdo_operation_entry() // [R5, R4, R3, R2] { info_tbl: [(cbPP, label: block_info rep:StackRep [False, False, False, False]), (cbPR, label: block_info rep:StackRep [False, False, False, False, False]), (cbQQ, label: GHC.IO.Handle.Internals.$wdo_operation_info rep:HeapRep static { Fun {arity: 5 fun_type: ArgSpec 24} })] stack_info: arg_space: 8 updfr_space: Just 8 } {offset cbQQ: // global if ((Sp + -48) < SpLim) (likely: False) goto cbQR; else goto cbQS; cbQR: // global R5 = R5; R4 = R4; R3 = R3; R2 = R2; R1 = GHC.IO.Handle.Internals.$wdo_operation_closure; call (stg_gc_fun)(R5, R4, R3, R2, R1) args: 8, res: 0, upd: 8; cbQS: // global I64[Sp - 40] = cbPP; R1 = R5; P64[Sp - 32] = R2; P64[Sp - 24] = R3; P64[Sp - 16] = R4; P64[Sp - 8] = R5; Sp = Sp - 40; call stg_takeMVar#(R1) returns to cbPP, args: 8, res: 8, upd: 8; cbPP: // global I64[Sp - 8] = cbPR; R2 = R1; _saEA::P64 = R1; R1 = P64[Sp + 24]; P64[Sp] = _saEA::P64; Sp = Sp - 8; call stg_ap_p_fast(R2, R1) returns to cbPR, args: 8, res: 8, upd: 8; cbPR: // global Hp = Hp + 48; if (Hp > HpLim) (likely: False) goto cbQW; else goto cbQV; cbQW: // global HpAlloc = 48; R1 = R1; call stg_gc_unpt_r1(R1) returns to cbPR, args: 8, res: 8, upd: 8; cbQV: // global I64[Hp - 40] = sat_info; P64[Hp - 32] = P64[Sp + 16]; P64[Hp - 24] = P64[Sp + 24]; P64[Hp - 16] = P64[Sp + 32]; P64[Hp - 8] = P64[Sp + 40]; P64[Hp] = P64[Sp + 8]; R2 = Hp - 38; R1 = R1; Sp = Sp + 48; call stg_catch#(R2, R1) args: 8, res: 0, upd: 8; } }]
Trouver la différence