Commit ef8d8b89 by Richard Henderson

crtbegin.asm (__JCR_LIST__): New.

        * config/alpha/crtbegin.asm (__JCR_LIST__): New.
        (__do_global_dtors_aux): Use gp-relative static data to avoid
        one dynamic relocation.
        (__do_frame_setup): Register Java classes.
        * config/alpha/crtend.asm (__JCR_END__): New.

From-SVN: r44746
parent 3b87de3d
2001-08-09 Richard Henderson <rth@redhat.com>
* config/alpha/crtbegin.asm (__JCR_LIST__): New.
(__do_global_dtors_aux): Use gp-relative static data to avoid
one dynamic relocation.
(__do_frame_setup): Register Java classes.
* config/alpha/crtend.asm (__JCR_END__): New.
2001-08-09 Zack Weinberg <zackw@stanford.edu> 2001-08-09 Zack Weinberg <zackw@stanford.edu>
* Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE. * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
(CONFIG_H, TCONFIG_H, TM_P_H): Update. (CONFIG_H, TCONFIG_H, TM_P_H): Update.
(GEN, STAGESTUFF): Add new files. (GEN, STAGESTUFF): Add new files.
(insn-constants.h, s-constants, tm-preds.h, s-preds, (insn-constants.h, s-constants, tm-preds.h, s-preds,
genconstants, genpreds, genconstants.o, genpreds.o): New rules. genconstants, genpreds, genconstants.o, genpreds.o): New rules.
(hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE. (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
* mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
as well as insn-codes.h and insn-flags.h in config.h; and no as well as insn-codes.h and insn-flags.h in config.h; and no
extra headers in tconfig.h and hconfig.h. extra headers in tconfig.h and hconfig.h.
* gencodes.c: Eliminate code to generate predicate declarations * gencodes.c: Eliminate code to generate predicate declarations
or #defines for md-file constants. or #defines for md-file constants.
* genconstants.c, genpreds.c: New files. * genconstants.c, genpreds.c: New files.
* i386.md: Re-order guard expressions such that TARGET_64BIT * i386.md: Re-order guard expressions such that TARGET_64BIT
comes first, when this permits better optimization. Add comes first, when this permits better optimization. Add
TARGET_64BIT to more x86-64 patterns. Add comment explaining TARGET_64BIT to more x86-64 patterns. Add comment explaining
why this is desirable. why this is desirable.
2001-08-09 Jakub Jelinek <jakub@redhat.com> 2001-08-09 Jakub Jelinek <jakub@redhat.com>
......
...@@ -44,16 +44,18 @@ ...@@ -44,16 +44,18 @@
application's lists. */ application's lists. */
.section .ctors,"aw" .section .ctors,"aw"
.align 3 .align 3
__CTOR_LIST__: __CTOR_LIST__:
.quad -1 .quad -1
.section .dtors,"aw" .section .dtors,"aw"
.align 3 .align 3
__DTOR_LIST__: __DTOR_LIST__:
.quad -1 .quad -1
.section .jcr,"aw"
.align 3
__JCR_LIST__:
.section .eh_frame,"aw" .section .eh_frame,"aw"
__EH_FRAME_BEGIN__: __EH_FRAME_BEGIN__:
...@@ -96,9 +98,9 @@ __EH_FRAME_BEGIN__: ...@@ -96,9 +98,9 @@ __EH_FRAME_BEGIN__:
/* Support recursive calls to exit. */ /* Support recursive calls to exit. */
.type dtor_ptr,@object .type dtor_ptr,@object
.size dtor_ptr,8 .size dtor_ptr,4
dtor_ptr: dtor_ptr:
.quad __DTOR_LIST__ + 8 .gprel32 __DTOR_LIST__ + 8
/* A globally unique widget for c++ local destructors to hang off. /* A globally unique widget for c++ local destructors to hang off.
...@@ -150,12 +152,13 @@ __do_global_dtors_aux: ...@@ -150,12 +152,13 @@ __do_global_dtors_aux:
0: lda $9,dtor_ptr 0: lda $9,dtor_ptr
br 2f br 2f
1: stq $1,0($9) 1: stl $1,0($9)
jsr $26,($27) jsr $26,($27)
ldgp $29,0($26) ldgp $29,0($26)
2: ldq $1,0($9) 2: ldl $1,0($9)
ldq $27,0($1) addq $1,$29,$2
addq $1,8,$1 ldq $27,0($2)
addl $1,8,$1
bne $27,1b bne $27,1b
/* Remove our frame info. */ /* Remove our frame info. */
...@@ -173,11 +176,9 @@ __do_global_dtors_aux: ...@@ -173,11 +176,9 @@ __do_global_dtors_aux:
.end __do_global_dtors_aux .end __do_global_dtors_aux
/* /*
* Install our frame info. * Install our frame info; register java classes, if any.
*/ */
/* ??? How can we rationally keep this size correct? */
.section .bss .section .bss
.type frame_object,@object .type frame_object,@object
.size frame_object, 48 .size frame_object, 48
...@@ -205,8 +206,16 @@ __do_frame_setup: ...@@ -205,8 +206,16 @@ __do_frame_setup:
jsr $26,__register_frame_info jsr $26,__register_frame_info
ldgp $29,0($26) ldgp $29,0($26)
ldq $26,0($30) 0: lda $1,_Jv_RegisterClasses
0: lda $30,16($30) lda $16,__JCR_LIST__
beq $1,0f
ldq $2,8($16)
beq $2,0f
jsr $26,_Jv_RegisterClasses
ldgp $29,0($26)
0: ldq $26,0($30)
lda $30,16($30)
ret ret
.end __do_frame_setup .end __do_frame_setup
...@@ -216,3 +225,4 @@ __do_frame_setup: ...@@ -216,3 +225,4 @@ __do_frame_setup:
#ifdef SHARED #ifdef SHARED
.weak __cxa_finalize .weak __cxa_finalize
#endif #endif
.weak _Jv_RegisterClasses
...@@ -41,17 +41,20 @@ ...@@ -41,17 +41,20 @@
application's lists. */ application's lists. */
.section .ctors,"aw" .section .ctors,"aw"
.align 3 .align 3
__CTOR_END__: __CTOR_END__:
.quad 0 .quad 0
.section .dtors,"aw" .section .dtors,"aw"
.align 3 .align 3
__DTOR_END__: __DTOR_END__:
.quad 0 .quad 0
.section .jcr,"aw"
.align 3
__JCR_END__:
.quad 0
.section .eh_frame,"aw" .section .eh_frame,"aw"
__FRAME_END__: __FRAME_END__:
.quad 0 .quad 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment