소스 검색

Fixed parameter offsets due to erroneous comments

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8091 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 년 전
부모
커밋
c0ea64c058
1개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. 4 4
      source/I386.Builtins.Mod

+ 4 - 4
source/I386.Builtins.Mod

@@ -120,8 +120,8 @@ CODE{SYSTEM.i386}
 	; [EBP+r+4]:[EBP+r+0] = multiplier (r)
 	; [EBP+r+4]:[EBP+r+0] = multiplier (r)
 	; Out: EDX:EAX = (multiplicand * multiplier) % 2^64
 	; Out: EDX:EAX = (multiplicand * multiplier) % 2^64
 	; Destroys: EAX, ECX, EDX, EFlags
 	; Destroys: EAX, ECX, EDX, EFlags
-	MOV EDX, [EBP+l+4] 		; multiplicand_hi
-	MOV ECX, [EBP+r+4] 		; multiplier_hi
+	MOV EDX, [EBP+r+4] 		; multiplicand_hi
+	MOV ECX, [EBP+l+4] 		; multiplier_hi
 	OR EDX,ECX 				; One operand >= 2^32?
 	OR EDX,ECX 				; One operand >= 2^32?
 	MOV EDX, [EBP+l+0] 		; multiplier_lo
 	MOV EDX, [EBP+l+0] 		; multiplier_lo
 	MOV EAX, [EBP+r+0] 		; multiplicand_lo
 	MOV EAX, [EBP+r+0] 		; multiplicand_lo
@@ -129,10 +129,10 @@ CODE{SYSTEM.i386}
 	MUL EDX 					; multiplicand_lo * multiplier_lo
 	MUL EDX 					; multiplicand_lo * multiplier_lo
 	JMP done 					; Done, return to caller.
 	JMP done 					; Done, return to caller.
 	twomul:
 	twomul:
-	IMUL EDX, [EBP+l+4]		; p3_lo = multiplicand_hi * multiplier_lo
+	IMUL EDX, [EBP+r+4]		; p3_lo = multiplicand_hi * multiplier_lo
 	IMUL ECX,EAX 			; p2_lo = multiplier_hi * multiplicand_lo
 	IMUL ECX,EAX 			; p2_lo = multiplier_hi * multiplicand_lo
 	ADD ECX, EDX 			; p2_lo + p3_lo
 	ADD ECX, EDX 			; p2_lo + p3_lo
-	MUL DWORD [EBP+r+0] 	; p1 = multiplicand_lo * multiplier_lo
+	MUL DWORD [EBP+l+0] 	; p1 = multiplicand_lo * multiplier_lo
 	ADD EDX,ECX 			; p1 + p2_lo + p3_lo = result in EDX:EAX
 	ADD EDX,ECX 			; p1 + p2_lo + p3_lo = result in EDX:EAX
 	done:
 	done:
 	POP	ECX
 	POP	ECX