Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
텍스트 스타일
모양 변경
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
8년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
49 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
81 행
복사
44 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
76 행
복사
복사
복사됨
복사
복사됨
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;
복사
복사됨
복사
복사됨
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;
}
}
},
},
복사
복사됨
복사
복사됨
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]
복사
복사됨
복사
복사됨
{ 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]),
복사
복사됨
복사
복사됨
(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
복사
복사됨
복사
복사됨
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;
복사
복사됨
복사
복사됨
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;
복사
복사됨
복사
복사됨
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;
복사
복사됨
복사
복사됨
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;
}
}
}]
}]
저장된 비교 결과
원본
파일 열기
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; } }]
수정본
파일 열기
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; } }]
비교하기