Create init varieties for unsigned long helper functions.

An INITPATCH is used to make sure the correct symbols are used.
The GCC kernel now shows the copyright string and boots a little further.
This commit is contained in:
Bart Oldeman 2017-12-19 13:46:49 -05:00 committed by Kenneth J Davis
parent 97003a8aca
commit 9b5b2e7d60
2 changed files with 17 additions and 10 deletions

View File

@ -889,23 +889,26 @@ __U4D:
%endif
%ifdef gcc
global ___udivsi3
___udivsi3: call ldivmodu
%macro ULONG_HELPERS 1
global %1udivsi3
%1udivsi3: call %1ldivmodu
ret 8
global ___umodsi3
___umodsi3: call ldivmodu
global %1umodsi3
%1umodsi3: call %1ldivmodu
mov dx, cx
mov ax, bx
ret 8
ldivmodu: LDIVMODU
%1ldivmodu: LDIVMODU
global ___ashlsi3
___ashlsi3: LSHLU
global %1ashlsi3
%1ashlsi3: LSHLU
global ___lshrsi3
___lshrsi3: LSHRU
global %1lshrsi3
%1lshrsi3: LSHRU
%endmacro
ULONG_HELPERS ___
%endif
times 0xd0 - ($-begin_hma) db 0
@ -1146,3 +1149,7 @@ _TEXT_DGROUP dw DGROUP
segment INIT_TEXT
global _INIT_DGROUP
_INIT_DGROUP dw DGROUP
%ifdef gcc
ULONG_HELPERS _init_
%endif

View File

@ -45,7 +45,7 @@ DIRSEP=/
RM=rm -f
CP=cp
ECHOTO=echo>>
INITPATCH=@echo > /dev/null
INITPATCH=objcopy --redefine-sym ___umodsi3=_init_umodsi3 --redefine-sym ___udivsi3=_init_udivsi3 --redefine-sym ___ashlsi3=_init_ashlsi3 --redefine-sym ___lshrsi3=_init_lshrsi3
CLDEF=1
CLT=gcc -DDOSC_TIME_H -I../hdr -o $@
CLC=$(CLT)