From ae21cabb6d56d24385469959a35d824e26ae3dfe Mon Sep 17 00:00:00 2001 From: green Date: Tue, 23 Nov 2004 23:18:14 +0000 Subject: [PATCH] * 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*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91116 138bc75d-0d04-0410-961f-82ee72b054a4 --- libffi/ChangeLog | 5 +++++ libffi/src/mips/o32.S | 20 ++++++++++---------- libjava/ChangeLog | 4 ++++ libjava/configure.host | 1 + 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 94188a3da3e..9764750f88d 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,8 @@ +2004-11-23 Richard Sandiford + + * 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 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS. diff --git a/libffi/src/mips/o32.S b/libffi/src/mips/o32.S index 7391ce3fbfb..75261b9b88f 100644 --- a/libffi/src/mips/o32.S +++ b/libffi/src/mips/o32.S @@ -73,7 +73,7 @@ sixteen: ADDU a0, $sp, 4 * 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 add t2, t0, 0 # and copy it into t2 @@ -141,7 +141,7 @@ call_it: beqz t1, noretval bne t2, FFI_TYPE_INT, retlonglong - jal t9 + jalr t9 REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) REG_S v0, 0(t0) b epilogue @@ -149,7 +149,7 @@ call_it: retlonglong: # Really any 64-bit int, signed or not. bne t2, FFI_TYPE_UINT64, retfloat - jal t9 + jalr t9 REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) REG_S v1, 4(t0) REG_S v0, 0(t0) @@ -157,20 +157,20 @@ retlonglong: retfloat: bne t2, FFI_TYPE_FLOAT, retdouble - jal t9 + jalr t9 REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) s.s $f0, 0(t0) b epilogue retdouble: bne t2, FFI_TYPE_DOUBLE, noretval - jal t9 + jalr t9 REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp) s.d $f0, 0(t0) b epilogue noretval: - jal t9 + jalr t9 # Epilogue epilogue: @@ -255,7 +255,7 @@ $LCFI7: addu $5, $fp, SIZEOF_FRAME2 - 6*FFI_SIZEOF_ARG addu $6, $fp, SIZEOF_FRAME2 + 0*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. move $8, $2 @@ -306,7 +306,7 @@ $LSCIE0: .sleb128 4 # CIE Data Alignment Factor .byte 0x1f # CIE RA Column .uleb128 0x1 # Augmentation size - .byte 0x1b # FDE Encoding (pcrel sdata4) + .byte 0x00 # FDE Encoding (absptr) .byte 0xc # DW_CFA_def_cfa .uleb128 0x1d .uleb128 0x0 @@ -316,7 +316,7 @@ $LSFDE0: .4byte $LEFDE0-$LASFDE0 # FDE Length $LASFDE0: .4byte $LASFDE0-$Lframe0 # FDE CIE offset - .4byte $LFB0-. # FDE initial location + .4byte $LFB0 # FDE initial location .4byte $LFE0-$LFB0 # FDE address range .uleb128 0x0 # Augmentation size .byte 0x4 # DW_CFA_advance_loc4 @@ -342,7 +342,7 @@ $LSFDE1: .4byte $LEFDE1-$LASFDE1 # FDE Length $LASFDE1: .4byte $LASFDE1-$Lframe0 # FDE CIE offset - .4byte $LFB1-. # FDE initial location + .4byte $LFB1 # FDE initial location .4byte $LFE1-$LFB1 # FDE address range .uleb128 0x0 # Augmentation size .byte 0x4 # DW_CFA_advance_loc4 diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 0c5075edb2d..67d2d769d26 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,7 @@ +2004-11-23 Richard Sandiford + + * configure.host: Enable the interpreter for mips*-*-linux*. + 2004-11-23 Michael Koch * java/lang/String.java (rehash): Removed. diff --git a/libjava/configure.host b/libjava/configure.host index cbecf04106e..437566a3079 100644 --- a/libjava/configure.host +++ b/libjava/configure.host @@ -226,6 +226,7 @@ EOF mips*-*-linux* ) sysdeps_dir=mips can_unwind_signal=yes + libgcj_interpreter=yes libgcj_flags="${libgcj_flags} -mxgot" DIVIDESPEC=-fno-use-divide-subroutine case "${host}" in -- 2.11.0