mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-11-04 08:04:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
diff -urp flac-1.2.1-old/src/libFLAC/ia32/bitreader_asm.nasm flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm
 | 
						|
--- flac-1.2.1-old/src/libFLAC/ia32/bitreader_asm.nasm	2007-03-30 02:54:53.000000000 +0200
 | 
						|
+++ flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm	2007-09-27 21:39:45.000000000 +0200
 | 
						|
@@ -140,8 +140,13 @@ cident FLAC__bitreader_read_rice_signed_
 | 
						|
 %ifdef FLAC__PUBLIC_NEEDS_UNDERSCORE
 | 
						|
 	mov	edi, _FLAC__crc16_table
 | 
						|
 %else
 | 
						|
+%ifdef OBJ_FORMAT_elf
 | 
						|
+	mov	edi, [esp + 16]		;		saved ebx (GOT base)
 | 
						|
+	lea	edi, [edi + FLAC__crc16_table wrt ..gotoff]
 | 
						|
+%else
 | 
						|
 	mov	edi, FLAC__crc16_table
 | 
						|
 %endif
 | 
						|
+%endif
 | 
						|
 	;; eax (ax)	crc a.k.a. br->read_crc
 | 
						|
 	;; ebx (bl)	intermediate result index into FLAC__crc16_table[]
 | 
						|
 	;; ecx		br->crc16_align
 | 
						|
@@ -216,8 +221,13 @@ cident FLAC__bitreader_read_rice_signed_
 | 
						|
 %ifdef FLAC__PUBLIC_NEEDS_UNDERSCORE
 | 
						|
 	mov	edi, _FLAC__crc16_table
 | 
						|
 %else
 | 
						|
+%ifdef OBJ_FORMAT_elf
 | 
						|
+	mov	edi, [esp + 16]		;		saved ebx (GOT base)
 | 
						|
+	lea	edi, [edi + FLAC__crc16_table wrt ..gotoff]
 | 
						|
+%else
 | 
						|
 	mov	edi, FLAC__crc16_table
 | 
						|
 %endif
 | 
						|
+%endif
 | 
						|
 	;; eax (ax)	crc a.k.a. br->read_crc
 | 
						|
 	;; ebx (bl)	intermediate result index into FLAC__crc16_table[]
 | 
						|
 	;; ecx		br->crc16_align
 | 
						|
@@ -315,8 +325,13 @@ cident FLAC__bitreader_read_rice_signed_
 | 
						|
 %ifdef FLAC__PUBLIC_NEEDS_UNDERSCORE
 | 
						|
 	call	_bitreader_read_from_client_
 | 
						|
 %else
 | 
						|
+%ifdef OBJ_FORMAT_elf
 | 
						|
+	mov	ebx, [esp + 20]		;		saved ebx (GOT base)
 | 
						|
+	call	bitreader_read_from_client_ wrt ..plt
 | 
						|
+%else
 | 
						|
 	call	bitreader_read_from_client_
 | 
						|
 %endif
 | 
						|
+%endif
 | 
						|
 	pop	edx			;     /* discard, unused */
 | 
						|
 	pop	ecx			;     /* restore */
 | 
						|
 	mov	esi, [ebp + 16]		;     cwords = br->consumed_words;
 | 
						|
@@ -362,13 +377,20 @@ cident FLAC__bitreader_read_rice_signed_
 | 
						|
 	mov	[ebp + 16], esi		;       br->consumed_words = cwords;
 | 
						|
 	mov	[ebp + 20], ecx		;       br->consumed_bits = cbits;
 | 
						|
 	push	ecx			;       /* save */
 | 
						|
+	push	ebx			;       /* save */
 | 
						|
 	push	ebp			;       /* push br argument */
 | 
						|
 %ifdef FLAC__PUBLIC_NEEDS_UNDERSCORE
 | 
						|
 	call	_bitreader_read_from_client_
 | 
						|
 %else
 | 
						|
+%ifdef OBJ_FORMAT_elf
 | 
						|
+	mov	ebx, [esp + 24]		;		saved ebx (GOT base)
 | 
						|
+	call	bitreader_read_from_client_ wrt ..plt
 | 
						|
+%else
 | 
						|
 	call	bitreader_read_from_client_
 | 
						|
 %endif
 | 
						|
+%endif
 | 
						|
 	pop	edx			;       /* discard, unused */
 | 
						|
+	pop	ebx			;       /* restore */
 | 
						|
 	pop	ecx			;       /* restore */
 | 
						|
 	mov	esi, [ebp + 16]		;       cwords = br->consumed_words;
 | 
						|
 					;       ucbits = (br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits;
 | 
						|
@@ -437,8 +459,13 @@ cident FLAC__bitreader_read_rice_signed_
 | 
						|
 %ifdef FLAC__PUBLIC_NEEDS_UNDERSCORE
 | 
						|
 	mov	edi, _FLAC__crc16_table
 | 
						|
 %else
 | 
						|
+%ifdef OBJ_FORMAT_elf
 | 
						|
+	mov	edi, [esp + 24]		;		saved ebx (GOT base)
 | 
						|
+	lea	edi, [edi + FLAC__crc16_table wrt ..gotoff]
 | 
						|
+%else
 | 
						|
 	mov	edi, FLAC__crc16_table
 | 
						|
 %endif
 | 
						|
+%endif
 | 
						|
 	;; eax (ax)	crc a.k.a. br->read_crc
 | 
						|
 	;; ebx (bl)	intermediate result index into FLAC__crc16_table[]
 | 
						|
 	;; ecx		br->crc16_align
 |