Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/neutrinolabs/librfxcodec.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormirabilos <thorsten.glaser@teckids.org>2017-03-26 01:20:04 +0300
committermirabilos <thorsten.glaser@teckids.org>2017-03-26 01:20:04 +0300
commitfb9e996771c69b4640bb7d983686ac2311b5b89e (patch)
treecb100a2ac3e946efb7e30ef923878a7cb4b45694
parentce09addf016d6186b798752d7bdddf6957e4615f (diff)
add new END_OF_FILE macro; use it to place the small i386 PIC code late
-rw-r--r--src/amd64/cpuid_amd64.asm1
-rw-r--r--src/amd64/rfxcodec_encode_dwt_shift_amd64_sse2.asm1
-rw-r--r--src/amd64/rfxcodec_encode_dwt_shift_amd64_sse41.asm1
-rw-r--r--src/common.asm14
-rw-r--r--src/x86/cpuid_x86.asm1
-rw-r--r--src/x86/rfxcodec_encode_dwt_shift_x86_sse2.asm1
-rw-r--r--src/x86/rfxcodec_encode_dwt_shift_x86_sse41.asm1
7 files changed, 18 insertions, 2 deletions
diff --git a/src/amd64/cpuid_amd64.asm b/src/amd64/cpuid_amd64.asm
index 306bd5a..38e2023 100644
--- a/src/amd64/cpuid_amd64.asm
+++ b/src/amd64/cpuid_amd64.asm
@@ -30,3 +30,4 @@ PROC cpuid_amd64
; restore registers
pop rbx
ret
+END_OF_FILE
diff --git a/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse2.asm b/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse2.asm
index aa03abd..cef3902 100644
--- a/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse2.asm
+++ b/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse2.asm
@@ -1484,3 +1484,4 @@ PROC rfxcodec_encode_dwt_shift_amd64_sse2
pop rdx
pop rbx
ret
+END_OF_FILE
diff --git a/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse41.asm b/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse41.asm
index 0df70f5..da176e7 100644
--- a/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse41.asm
+++ b/src/amd64/rfxcodec_encode_dwt_shift_amd64_sse41.asm
@@ -1352,3 +1352,4 @@ PROC rfxcodec_encode_dwt_shift_amd64_sse41
pop rdx
pop rbx
ret
+END_OF_FILE
diff --git a/src/common.asm b/src/common.asm
index 12f0ad5..403d54b 100644
--- a/src/common.asm
+++ b/src/common.asm
@@ -63,15 +63,20 @@ section .note.GNU-stack noalloc noexec nowrite progbits
%ifdef ASM_ARCH_I386
%ifdef PIC
; i386 PIC
-%macro PREPARE_RODATA 0
+%macro END_OF_FILE 0
+%ifdef I386_PIC_NEEDED
section .text
..@get_caller_address:
mov ebx, [esp]
ret
+%endif
+%endmacro
+%macro PREPARE_RODATA 0
align 16
..@rodata_begin:
%endmacro
%macro RETRIEVE_RODATA 0
+%define I386_PIC_NEEDED
call ..@get_caller_address
%%the_caller_address:
sub ebx, %%the_caller_address - ..@rodata_begin
@@ -88,11 +93,16 @@ align 16
%define lsym(name) name
%endif
-%ifnmacro PREPARE_RODATA
+%ifnmacro PREPARE_RODATA 0
%macro PREPARE_RODATA 0
section .text
align 16
%endmacro
%endif
+%ifnmacro END_OF_FILE 0
+%macro END_OF_FILE 0
+%endmacro
+%endif
+
section .text
diff --git a/src/x86/cpuid_x86.asm b/src/x86/cpuid_x86.asm
index 69b59c3..b666732 100644
--- a/src/x86/cpuid_x86.asm
+++ b/src/x86/cpuid_x86.asm
@@ -28,3 +28,4 @@ PROC cpuid_x86
pop ecx
pop ebx
ret
+END_OF_FILE
diff --git a/src/x86/rfxcodec_encode_dwt_shift_x86_sse2.asm b/src/x86/rfxcodec_encode_dwt_shift_x86_sse2.asm
index fffdbbf..f05a705 100644
--- a/src/x86/rfxcodec_encode_dwt_shift_x86_sse2.asm
+++ b/src/x86/rfxcodec_encode_dwt_shift_x86_sse2.asm
@@ -1516,3 +1516,4 @@ PROC rfxcodec_encode_dwt_shift_x86_sse2
; return value
mov eax, 0
ret
+END_OF_FILE
diff --git a/src/x86/rfxcodec_encode_dwt_shift_x86_sse41.asm b/src/x86/rfxcodec_encode_dwt_shift_x86_sse41.asm
index 7c11723..00d4b1d 100644
--- a/src/x86/rfxcodec_encode_dwt_shift_x86_sse41.asm
+++ b/src/x86/rfxcodec_encode_dwt_shift_x86_sse41.asm
@@ -1384,3 +1384,4 @@ PROC rfxcodec_encode_dwt_shift_x86_sse41
; return value
mov eax, 0
ret
+END_OF_FILE