MIPS: Add speculation_barrier support
speculation_barrier for MIPS needs sync+jr.hb (r2+), so we implement __speculation_barrier in libgcc, like arm32 does. gcc/ChangeLog: * config/mips/mips-protos.h (mips_emit_speculation_barrier): New prototype. * config/mips/mips.cc (speculation_barrier_libfunc): New static variable. (mips_init_libfuncs): Initialize it. (mips_emit_speculation_barrier): New function. * config/mips/mips.md (speculation_barrier): Call mips_emit_speculation_barrier. libgcc/ChangeLog: * config/mips/lib1funcs.S: New file. define __speculation_barrier and include mips16.S. * config/mips/t-mips: define LIB1ASMSRC as mips/lib1funcs.S. define LIB1ASMFUNCS as _speculation_barrier. set version info for __speculation_barrier. * config/mips/libgcc-mips.ver: New file. * config/mips/t-mips16: don't define LIB1ASMSRC as mips16.S included in lib1funcs.S now.
Showing
- gcc/config/mips/mips-protos.h 2 additions, 0 deletionsgcc/config/mips/mips-protos.h
- gcc/config/mips/mips.cc 12 additions, 0 deletionsgcc/config/mips/mips.cc
- gcc/config/mips/mips.md 12 additions, 0 deletionsgcc/config/mips/mips.md
- libgcc/config/mips/lib1funcs.S 65 additions, 0 deletionslibgcc/config/mips/lib1funcs.S
- libgcc/config/mips/libgcc-mips.ver 21 additions, 0 deletionslibgcc/config/mips/libgcc-mips.ver
- libgcc/config/mips/t-mips 7 additions, 0 deletionslibgcc/config/mips/t-mips
- libgcc/config/mips/t-mips16 1 addition, 2 deletionslibgcc/config/mips/t-mips16
Loading