Commit a996709e by Richard Sandiford Committed by Anthony Green

o32.S (ffi_call_O32, [...]): Use jalr instead of jal.

        * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
        of jal.  Use an absolute encoding for the frame information.

        * configure.host: Enable the interpreter for mips*-*-linux*.

From-SVN: r91116
parent 6f9e3578
2004-11-23 Richard Sandiford <rsandifo@redhat.com>
* src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
of jal. Use an absolute encoding for the frame information.
2004-11-23 Kelley Cook <kcook@gcc.gnu.org> 2004-11-23 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS. * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
......
...@@ -73,7 +73,7 @@ sixteen: ...@@ -73,7 +73,7 @@ sixteen:
ADDU a0, $sp, 4 * FFI_SIZEOF_ARG ADDU a0, $sp, 4 * FFI_SIZEOF_ARG
ADDU a3, $fp, SIZEOF_FRAME + 3*FFI_SIZEOF_ARG ADDU a3, $fp, SIZEOF_FRAME + 3*FFI_SIZEOF_ARG
jal t9 jalr t9
REG_L t0, SIZEOF_FRAME + 3*FFI_SIZEOF_ARG($fp) # load the flags word REG_L t0, SIZEOF_FRAME + 3*FFI_SIZEOF_ARG($fp) # load the flags word
add t2, t0, 0 # and copy it into t2 add t2, t0, 0 # and copy it into t2
...@@ -141,7 +141,7 @@ call_it: ...@@ -141,7 +141,7 @@ call_it:
beqz t1, noretval beqz t1, noretval
bne t2, FFI_TYPE_INT, retlonglong bne t2, FFI_TYPE_INT, retlonglong
jal t9 jalr t9
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
REG_S v0, 0(t0) REG_S v0, 0(t0)
b epilogue b epilogue
...@@ -149,7 +149,7 @@ call_it: ...@@ -149,7 +149,7 @@ call_it:
retlonglong: retlonglong:
# Really any 64-bit int, signed or not. # Really any 64-bit int, signed or not.
bne t2, FFI_TYPE_UINT64, retfloat bne t2, FFI_TYPE_UINT64, retfloat
jal t9 jalr t9
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
REG_S v1, 4(t0) REG_S v1, 4(t0)
REG_S v0, 0(t0) REG_S v0, 0(t0)
...@@ -157,20 +157,20 @@ retlonglong: ...@@ -157,20 +157,20 @@ retlonglong:
retfloat: retfloat:
bne t2, FFI_TYPE_FLOAT, retdouble bne t2, FFI_TYPE_FLOAT, retdouble
jal t9 jalr t9
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
s.s $f0, 0(t0) s.s $f0, 0(t0)
b epilogue b epilogue
retdouble: retdouble:
bne t2, FFI_TYPE_DOUBLE, noretval bne t2, FFI_TYPE_DOUBLE, noretval
jal t9 jalr t9
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
s.d $f0, 0(t0) s.d $f0, 0(t0)
b epilogue b epilogue
noretval: noretval:
jal t9 jalr t9
# Epilogue # Epilogue
epilogue: epilogue:
...@@ -255,7 +255,7 @@ $LCFI7: ...@@ -255,7 +255,7 @@ $LCFI7:
addu $5, $fp, SIZEOF_FRAME2 - 6*FFI_SIZEOF_ARG addu $5, $fp, SIZEOF_FRAME2 - 6*FFI_SIZEOF_ARG
addu $6, $fp, SIZEOF_FRAME2 + 0*FFI_SIZEOF_ARG addu $6, $fp, SIZEOF_FRAME2 + 0*FFI_SIZEOF_ARG
addu $7, $fp, SIZEOF_FRAME2 - 10*FFI_SIZEOF_ARG addu $7, $fp, SIZEOF_FRAME2 - 10*FFI_SIZEOF_ARG
jal $31, $25 jalr $31, $25
# Load the return value into the appropriate register. # Load the return value into the appropriate register.
move $8, $2 move $8, $2
...@@ -306,7 +306,7 @@ $LSCIE0: ...@@ -306,7 +306,7 @@ $LSCIE0:
.sleb128 4 # CIE Data Alignment Factor .sleb128 4 # CIE Data Alignment Factor
.byte 0x1f # CIE RA Column .byte 0x1f # CIE RA Column
.uleb128 0x1 # Augmentation size .uleb128 0x1 # Augmentation size
.byte 0x1b # FDE Encoding (pcrel sdata4) .byte 0x00 # FDE Encoding (absptr)
.byte 0xc # DW_CFA_def_cfa .byte 0xc # DW_CFA_def_cfa
.uleb128 0x1d .uleb128 0x1d
.uleb128 0x0 .uleb128 0x0
...@@ -316,7 +316,7 @@ $LSFDE0: ...@@ -316,7 +316,7 @@ $LSFDE0:
.4byte $LEFDE0-$LASFDE0 # FDE Length .4byte $LEFDE0-$LASFDE0 # FDE Length
$LASFDE0: $LASFDE0:
.4byte $LASFDE0-$Lframe0 # FDE CIE offset .4byte $LASFDE0-$Lframe0 # FDE CIE offset
.4byte $LFB0-. # FDE initial location .4byte $LFB0 # FDE initial location
.4byte $LFE0-$LFB0 # FDE address range .4byte $LFE0-$LFB0 # FDE address range
.uleb128 0x0 # Augmentation size .uleb128 0x0 # Augmentation size
.byte 0x4 # DW_CFA_advance_loc4 .byte 0x4 # DW_CFA_advance_loc4
...@@ -342,7 +342,7 @@ $LSFDE1: ...@@ -342,7 +342,7 @@ $LSFDE1:
.4byte $LEFDE1-$LASFDE1 # FDE Length .4byte $LEFDE1-$LASFDE1 # FDE Length
$LASFDE1: $LASFDE1:
.4byte $LASFDE1-$Lframe0 # FDE CIE offset .4byte $LASFDE1-$Lframe0 # FDE CIE offset
.4byte $LFB1-. # FDE initial location .4byte $LFB1 # FDE initial location
.4byte $LFE1-$LFB1 # FDE address range .4byte $LFE1-$LFB1 # FDE address range
.uleb128 0x0 # Augmentation size .uleb128 0x0 # Augmentation size
.byte 0x4 # DW_CFA_advance_loc4 .byte 0x4 # DW_CFA_advance_loc4
......
2004-11-23 Richard Sandiford <rsandifo@redhat.com>
* configure.host: Enable the interpreter for mips*-*-linux*.
2004-11-23 Michael Koch <konqueror@gmx.de> 2004-11-23 Michael Koch <konqueror@gmx.de>
* java/lang/String.java (rehash): Removed. * java/lang/String.java (rehash): Removed.
......
...@@ -226,6 +226,7 @@ EOF ...@@ -226,6 +226,7 @@ EOF
mips*-*-linux* ) mips*-*-linux* )
sysdeps_dir=mips sysdeps_dir=mips
can_unwind_signal=yes can_unwind_signal=yes
libgcj_interpreter=yes
libgcj_flags="${libgcj_flags} -mxgot" libgcj_flags="${libgcj_flags} -mxgot"
DIVIDESPEC=-fno-use-divide-subroutine DIVIDESPEC=-fno-use-divide-subroutine
case "${host}" in case "${host}" in
......
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