first commit
This commit is contained in:
BIN
bin/loongarch32-linux-gnuf64-addr2line
Executable file
BIN
bin/loongarch32-linux-gnuf64-addr2line
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-ar
Executable file
BIN
bin/loongarch32-linux-gnuf64-ar
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-as
Executable file
BIN
bin/loongarch32-linux-gnuf64-as
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-c++
Executable file
BIN
bin/loongarch32-linux-gnuf64-c++
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-c++filt
Executable file
BIN
bin/loongarch32-linux-gnuf64-c++filt
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-cpp
Executable file
BIN
bin/loongarch32-linux-gnuf64-cpp
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-elfedit
Executable file
BIN
bin/loongarch32-linux-gnuf64-elfedit
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-g++
Executable file
BIN
bin/loongarch32-linux-gnuf64-g++
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcc
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcc
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcc-8.3.0
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcc-8.3.0
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcc-ar
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcc-ar
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcc-nm
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcc-nm
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcc-ranlib
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcc-ranlib
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcov
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcov
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcov-dump
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcov-dump
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gcov-tool
Executable file
BIN
bin/loongarch32-linux-gnuf64-gcov-tool
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gfortran
Executable file
BIN
bin/loongarch32-linux-gnuf64-gfortran
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-gprof
Executable file
BIN
bin/loongarch32-linux-gnuf64-gprof
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-ld
Executable file
BIN
bin/loongarch32-linux-gnuf64-ld
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-ld.bfd
Executable file
BIN
bin/loongarch32-linux-gnuf64-ld.bfd
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-nm
Executable file
BIN
bin/loongarch32-linux-gnuf64-nm
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-objcopy
Executable file
BIN
bin/loongarch32-linux-gnuf64-objcopy
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-objdump
Executable file
BIN
bin/loongarch32-linux-gnuf64-objdump
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-ranlib
Executable file
BIN
bin/loongarch32-linux-gnuf64-ranlib
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-readelf
Executable file
BIN
bin/loongarch32-linux-gnuf64-readelf
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-size
Executable file
BIN
bin/loongarch32-linux-gnuf64-size
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-strings
Executable file
BIN
bin/loongarch32-linux-gnuf64-strings
Executable file
Binary file not shown.
BIN
bin/loongarch32-linux-gnuf64-strip
Executable file
BIN
bin/loongarch32-linux-gnuf64-strip
Executable file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtbegin.o
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtbegin.o
Normal file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtbeginS.o
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtbeginS.o
Normal file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtbeginT.o
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtbeginT.o
Normal file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtend.o
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtend.o
Normal file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtendS.o
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtendS.o
Normal file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtfastmath.o
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/crtfastmath.o
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
436
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/omp_lib.f90
Normal file
436
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/omp_lib.f90
Normal file
@ -0,0 +1,436 @@
|
||||
! Copyright (C) 2005-2018 Free Software Foundation, Inc.
|
||||
! Contributed by Jakub Jelinek <jakub@redhat.com>.
|
||||
|
||||
! This file is part of the GNU Offloading and Multi Processing Library
|
||||
! (libgomp).
|
||||
|
||||
! Libgomp is free software; you can redistribute it and/or modify it
|
||||
! under the terms of the GNU General Public License as published by
|
||||
! the Free Software Foundation; either version 3, or (at your option)
|
||||
! any later version.
|
||||
|
||||
! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
! more details.
|
||||
|
||||
! Under Section 7 of GPL version 3, you are granted additional
|
||||
! permissions described in the GCC Runtime Library Exception, version
|
||||
! 3.1, as published by the Free Software Foundation.
|
||||
|
||||
! You should have received a copy of the GNU General Public License and
|
||||
! a copy of the GCC Runtime Library Exception along with this program;
|
||||
! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
! <http://www.gnu.org/licenses/>.
|
||||
|
||||
module omp_lib_kinds
|
||||
implicit none
|
||||
integer, parameter :: omp_lock_kind = 4
|
||||
integer, parameter :: omp_nest_lock_kind = 8
|
||||
integer, parameter :: omp_sched_kind = 4
|
||||
integer, parameter :: omp_proc_bind_kind = 4
|
||||
integer, parameter :: omp_lock_hint_kind = 4
|
||||
integer (omp_sched_kind), parameter :: omp_sched_static = 1
|
||||
integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
|
||||
integer (omp_sched_kind), parameter :: omp_sched_guided = 3
|
||||
integer (omp_sched_kind), parameter :: omp_sched_auto = 4
|
||||
integer (omp_proc_bind_kind), &
|
||||
parameter :: omp_proc_bind_false = 0
|
||||
integer (omp_proc_bind_kind), &
|
||||
parameter :: omp_proc_bind_true = 1
|
||||
integer (omp_proc_bind_kind), &
|
||||
parameter :: omp_proc_bind_master = 2
|
||||
integer (omp_proc_bind_kind), &
|
||||
parameter :: omp_proc_bind_close = 3
|
||||
integer (omp_proc_bind_kind), &
|
||||
parameter :: omp_proc_bind_spread = 4
|
||||
integer (omp_lock_hint_kind), &
|
||||
parameter :: omp_lock_hint_none = 0
|
||||
integer (omp_lock_hint_kind), &
|
||||
parameter :: omp_lock_hint_uncontended = 1
|
||||
integer (omp_lock_hint_kind), &
|
||||
parameter :: omp_lock_hint_contended = 2
|
||||
integer (omp_lock_hint_kind), &
|
||||
parameter :: omp_lock_hint_nonspeculative = 4
|
||||
integer (omp_lock_hint_kind), &
|
||||
parameter :: omp_lock_hint_speculative = 8
|
||||
end module
|
||||
|
||||
module omp_lib
|
||||
use omp_lib_kinds
|
||||
implicit none
|
||||
integer, parameter :: openmp_version = 201511
|
||||
|
||||
interface
|
||||
subroutine omp_init_lock (svar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_lock_kind), intent (out) :: svar
|
||||
end subroutine omp_init_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_init_lock_with_hint (svar, hint)
|
||||
use omp_lib_kinds
|
||||
integer (omp_lock_kind), intent (out) :: svar
|
||||
integer (omp_lock_hint_kind), intent (in) :: hint
|
||||
end subroutine omp_init_lock_with_hint
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_init_nest_lock (nvar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_nest_lock_kind), intent (out) :: nvar
|
||||
end subroutine omp_init_nest_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_init_nest_lock_with_hint (nvar, hint)
|
||||
use omp_lib_kinds
|
||||
integer (omp_nest_lock_kind), intent (out) :: nvar
|
||||
integer (omp_lock_hint_kind), intent (in) :: hint
|
||||
end subroutine omp_init_nest_lock_with_hint
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_destroy_lock (svar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_lock_kind), intent (inout) :: svar
|
||||
end subroutine omp_destroy_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_destroy_nest_lock (nvar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_nest_lock_kind), intent (inout) :: nvar
|
||||
end subroutine omp_destroy_nest_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_set_lock (svar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_lock_kind), intent (inout) :: svar
|
||||
end subroutine omp_set_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_set_nest_lock (nvar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_nest_lock_kind), intent (inout) :: nvar
|
||||
end subroutine omp_set_nest_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_unset_lock (svar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_lock_kind), intent (inout) :: svar
|
||||
end subroutine omp_unset_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine omp_unset_nest_lock (nvar)
|
||||
use omp_lib_kinds
|
||||
integer (omp_nest_lock_kind), intent (inout) :: nvar
|
||||
end subroutine omp_unset_nest_lock
|
||||
end interface
|
||||
|
||||
interface omp_set_dynamic
|
||||
subroutine omp_set_dynamic (dynamic_threads)
|
||||
logical (4), intent (in) :: dynamic_threads
|
||||
end subroutine omp_set_dynamic
|
||||
subroutine omp_set_dynamic_8 (dynamic_threads)
|
||||
logical (8), intent (in) :: dynamic_threads
|
||||
end subroutine omp_set_dynamic_8
|
||||
end interface
|
||||
|
||||
interface omp_set_nested
|
||||
subroutine omp_set_nested (nested)
|
||||
logical (4), intent (in) :: nested
|
||||
end subroutine omp_set_nested
|
||||
subroutine omp_set_nested_8 (nested)
|
||||
logical (8), intent (in) :: nested
|
||||
end subroutine omp_set_nested_8
|
||||
end interface
|
||||
|
||||
interface omp_set_num_threads
|
||||
subroutine omp_set_num_threads (num_threads)
|
||||
integer (4), intent (in) :: num_threads
|
||||
end subroutine omp_set_num_threads
|
||||
subroutine omp_set_num_threads_8 (num_threads)
|
||||
integer (8), intent (in) :: num_threads
|
||||
end subroutine omp_set_num_threads_8
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_dynamic ()
|
||||
logical (4) :: omp_get_dynamic
|
||||
end function omp_get_dynamic
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_nested ()
|
||||
logical (4) :: omp_get_nested
|
||||
end function omp_get_nested
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_in_parallel ()
|
||||
logical (4) :: omp_in_parallel
|
||||
end function omp_in_parallel
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_test_lock (svar)
|
||||
use omp_lib_kinds
|
||||
logical (4) :: omp_test_lock
|
||||
integer (omp_lock_kind), intent (inout) :: svar
|
||||
end function omp_test_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_max_threads ()
|
||||
integer (4) :: omp_get_max_threads
|
||||
end function omp_get_max_threads
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_num_procs ()
|
||||
integer (4) :: omp_get_num_procs
|
||||
end function omp_get_num_procs
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_num_threads ()
|
||||
integer (4) :: omp_get_num_threads
|
||||
end function omp_get_num_threads
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_thread_num ()
|
||||
integer (4) :: omp_get_thread_num
|
||||
end function omp_get_thread_num
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_test_nest_lock (nvar)
|
||||
use omp_lib_kinds
|
||||
integer (4) :: omp_test_nest_lock
|
||||
integer (omp_nest_lock_kind), intent (inout) :: nvar
|
||||
end function omp_test_nest_lock
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_wtick ()
|
||||
double precision :: omp_get_wtick
|
||||
end function omp_get_wtick
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_wtime ()
|
||||
double precision :: omp_get_wtime
|
||||
end function omp_get_wtime
|
||||
end interface
|
||||
|
||||
interface omp_set_schedule
|
||||
subroutine omp_set_schedule (kind, chunk_size)
|
||||
use omp_lib_kinds
|
||||
integer (omp_sched_kind), intent (in) :: kind
|
||||
integer (4), intent (in) :: chunk_size
|
||||
end subroutine omp_set_schedule
|
||||
subroutine omp_set_schedule_8 (kind, chunk_size)
|
||||
use omp_lib_kinds
|
||||
integer (omp_sched_kind), intent (in) :: kind
|
||||
integer (8), intent (in) :: chunk_size
|
||||
end subroutine omp_set_schedule_8
|
||||
end interface
|
||||
|
||||
interface omp_get_schedule
|
||||
subroutine omp_get_schedule (kind, chunk_size)
|
||||
use omp_lib_kinds
|
||||
integer (omp_sched_kind), intent (out) :: kind
|
||||
integer (4), intent (out) :: chunk_size
|
||||
end subroutine omp_get_schedule
|
||||
subroutine omp_get_schedule_8 (kind, chunk_size)
|
||||
use omp_lib_kinds
|
||||
integer (omp_sched_kind), intent (out) :: kind
|
||||
integer (8), intent (out) :: chunk_size
|
||||
end subroutine omp_get_schedule_8
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_thread_limit ()
|
||||
integer (4) :: omp_get_thread_limit
|
||||
end function omp_get_thread_limit
|
||||
end interface
|
||||
|
||||
interface omp_set_max_active_levels
|
||||
subroutine omp_set_max_active_levels (max_levels)
|
||||
integer (4), intent (in) :: max_levels
|
||||
end subroutine omp_set_max_active_levels
|
||||
subroutine omp_set_max_active_levels_8 (max_levels)
|
||||
integer (8), intent (in) :: max_levels
|
||||
end subroutine omp_set_max_active_levels_8
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_max_active_levels ()
|
||||
integer (4) :: omp_get_max_active_levels
|
||||
end function omp_get_max_active_levels
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_level ()
|
||||
integer (4) :: omp_get_level
|
||||
end function omp_get_level
|
||||
end interface
|
||||
|
||||
interface omp_get_ancestor_thread_num
|
||||
function omp_get_ancestor_thread_num (level)
|
||||
integer (4), intent (in) :: level
|
||||
integer (4) :: omp_get_ancestor_thread_num
|
||||
end function omp_get_ancestor_thread_num
|
||||
function omp_get_ancestor_thread_num_8 (level)
|
||||
integer (8), intent (in) :: level
|
||||
integer (4) :: omp_get_ancestor_thread_num_8
|
||||
end function omp_get_ancestor_thread_num_8
|
||||
end interface
|
||||
|
||||
interface omp_get_team_size
|
||||
function omp_get_team_size (level)
|
||||
integer (4), intent (in) :: level
|
||||
integer (4) :: omp_get_team_size
|
||||
end function omp_get_team_size
|
||||
function omp_get_team_size_8 (level)
|
||||
integer (8), intent (in) :: level
|
||||
integer (4) :: omp_get_team_size_8
|
||||
end function omp_get_team_size_8
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_active_level ()
|
||||
integer (4) :: omp_get_active_level
|
||||
end function omp_get_active_level
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_in_final ()
|
||||
logical (4) :: omp_in_final
|
||||
end function omp_in_final
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_cancellation ()
|
||||
logical (4) :: omp_get_cancellation
|
||||
end function omp_get_cancellation
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_proc_bind ()
|
||||
use omp_lib_kinds
|
||||
integer (omp_proc_bind_kind) :: omp_get_proc_bind
|
||||
end function omp_get_proc_bind
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_num_places ()
|
||||
integer (4) :: omp_get_num_places
|
||||
end function omp_get_num_places
|
||||
end interface
|
||||
|
||||
interface omp_get_place_num_procs
|
||||
function omp_get_place_num_procs (place_num)
|
||||
integer (4), intent(in) :: place_num
|
||||
integer (4) :: omp_get_place_num_procs
|
||||
end function omp_get_place_num_procs
|
||||
|
||||
function omp_get_place_num_procs_8 (place_num)
|
||||
integer (8), intent(in) :: place_num
|
||||
integer (4) :: omp_get_place_num_procs_8
|
||||
end function omp_get_place_num_procs_8
|
||||
end interface
|
||||
|
||||
interface omp_get_place_proc_ids
|
||||
subroutine omp_get_place_proc_ids (place_num, ids)
|
||||
integer (4), intent(in) :: place_num
|
||||
integer (4), intent(out) :: ids(*)
|
||||
end subroutine omp_get_place_proc_ids
|
||||
|
||||
subroutine omp_get_place_proc_ids_8 (place_num, ids)
|
||||
integer (8), intent(in) :: place_num
|
||||
integer (8), intent(out) :: ids(*)
|
||||
end subroutine omp_get_place_proc_ids_8
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_place_num ()
|
||||
integer (4) :: omp_get_place_num
|
||||
end function omp_get_place_num
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_partition_num_places ()
|
||||
integer (4) :: omp_get_partition_num_places
|
||||
end function omp_get_partition_num_places
|
||||
end interface
|
||||
|
||||
interface omp_get_partition_place_nums
|
||||
subroutine omp_get_partition_place_nums (place_nums)
|
||||
integer (4), intent(out) :: place_nums(*)
|
||||
end subroutine omp_get_partition_place_nums
|
||||
|
||||
subroutine omp_get_partition_place_nums_8 (place_nums)
|
||||
integer (8), intent(out) :: place_nums(*)
|
||||
end subroutine omp_get_partition_place_nums_8
|
||||
end interface
|
||||
|
||||
interface omp_set_default_device
|
||||
subroutine omp_set_default_device (device_num)
|
||||
integer (4), intent (in) :: device_num
|
||||
end subroutine omp_set_default_device
|
||||
subroutine omp_set_default_device_8 (device_num)
|
||||
integer (8), intent (in) :: device_num
|
||||
end subroutine omp_set_default_device_8
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_default_device ()
|
||||
integer (4) :: omp_get_default_device
|
||||
end function omp_get_default_device
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_num_devices ()
|
||||
integer (4) :: omp_get_num_devices
|
||||
end function omp_get_num_devices
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_num_teams ()
|
||||
integer (4) :: omp_get_num_teams
|
||||
end function omp_get_num_teams
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_team_num ()
|
||||
integer (4) :: omp_get_team_num
|
||||
end function omp_get_team_num
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_is_initial_device ()
|
||||
logical (4) :: omp_is_initial_device
|
||||
end function omp_is_initial_device
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_initial_device ()
|
||||
integer (4) :: omp_get_initial_device
|
||||
end function omp_get_initial_device
|
||||
end interface
|
||||
|
||||
interface
|
||||
function omp_get_max_task_priority ()
|
||||
integer (4) :: omp_get_max_task_priority
|
||||
end function omp_get_max_task_priority
|
||||
end interface
|
||||
|
||||
end module omp_lib
|
||||
128
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/omp_lib.h
Normal file
128
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/omp_lib.h
Normal file
@ -0,0 +1,128 @@
|
||||
! Copyright (C) 2005-2018 Free Software Foundation, Inc.
|
||||
! Contributed by Jakub Jelinek <jakub@redhat.com>.
|
||||
|
||||
! This file is part of the GNU Offloading and Multi Processing Library
|
||||
! (libgomp).
|
||||
|
||||
! Libgomp is free software; you can redistribute it and/or modify it
|
||||
! under the terms of the GNU General Public License as published by
|
||||
! the Free Software Foundation; either version 3, or (at your option)
|
||||
! any later version.
|
||||
|
||||
! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
! more details.
|
||||
|
||||
! Under Section 7 of GPL version 3, you are granted additional
|
||||
! permissions described in the GCC Runtime Library Exception, version
|
||||
! 3.1, as published by the Free Software Foundation.
|
||||
|
||||
! You should have received a copy of the GNU General Public License and
|
||||
! a copy of the GCC Runtime Library Exception along with this program;
|
||||
! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
! <http://www.gnu.org/licenses/>.
|
||||
|
||||
integer omp_lock_kind, omp_nest_lock_kind, openmp_version
|
||||
parameter (omp_lock_kind = 4)
|
||||
parameter (omp_nest_lock_kind = 8)
|
||||
integer omp_sched_kind
|
||||
parameter (omp_sched_kind = 4)
|
||||
integer (omp_sched_kind) omp_sched_static, omp_sched_dynamic
|
||||
integer (omp_sched_kind) omp_sched_guided, omp_sched_auto
|
||||
parameter (omp_sched_static = 1)
|
||||
parameter (omp_sched_dynamic = 2)
|
||||
parameter (omp_sched_guided = 3)
|
||||
parameter (omp_sched_auto = 4)
|
||||
integer omp_proc_bind_kind
|
||||
parameter (omp_proc_bind_kind = 4)
|
||||
integer (omp_proc_bind_kind) omp_proc_bind_false
|
||||
integer (omp_proc_bind_kind) omp_proc_bind_true
|
||||
integer (omp_proc_bind_kind) omp_proc_bind_master
|
||||
integer (omp_proc_bind_kind) omp_proc_bind_close
|
||||
integer (omp_proc_bind_kind) omp_proc_bind_spread
|
||||
parameter (omp_proc_bind_false = 0)
|
||||
parameter (omp_proc_bind_true = 1)
|
||||
parameter (omp_proc_bind_master = 2)
|
||||
parameter (omp_proc_bind_close = 3)
|
||||
parameter (omp_proc_bind_spread = 4)
|
||||
integer omp_lock_hint_kind
|
||||
parameter (omp_lock_hint_kind = 4)
|
||||
integer (omp_lock_hint_kind) omp_lock_hint_none
|
||||
integer (omp_lock_hint_kind) omp_lock_hint_uncontended
|
||||
integer (omp_lock_hint_kind) omp_lock_hint_contended
|
||||
integer (omp_lock_hint_kind) omp_lock_hint_nonspeculative
|
||||
integer (omp_lock_hint_kind) omp_lock_hint_speculative
|
||||
parameter (omp_lock_hint_none = 0)
|
||||
parameter (omp_lock_hint_uncontended = 1)
|
||||
parameter (omp_lock_hint_contended = 2)
|
||||
parameter (omp_lock_hint_nonspeculative = 4)
|
||||
parameter (omp_lock_hint_speculative = 8)
|
||||
parameter (openmp_version = 201511)
|
||||
|
||||
external omp_init_lock, omp_init_nest_lock
|
||||
external omp_init_lock_with_hint
|
||||
external omp_init_nest_lock_with_hint
|
||||
external omp_destroy_lock, omp_destroy_nest_lock
|
||||
external omp_set_lock, omp_set_nest_lock
|
||||
external omp_unset_lock, omp_unset_nest_lock
|
||||
external omp_set_dynamic, omp_set_nested
|
||||
external omp_set_num_threads
|
||||
|
||||
external omp_get_dynamic, omp_get_nested
|
||||
logical(4) omp_get_dynamic, omp_get_nested
|
||||
external omp_test_lock, omp_in_parallel
|
||||
logical(4) omp_test_lock, omp_in_parallel
|
||||
|
||||
external omp_get_max_threads, omp_get_num_procs
|
||||
integer(4) omp_get_max_threads, omp_get_num_procs
|
||||
external omp_get_num_threads, omp_get_thread_num
|
||||
integer(4) omp_get_num_threads, omp_get_thread_num
|
||||
external omp_test_nest_lock
|
||||
integer(4) omp_test_nest_lock
|
||||
|
||||
external omp_get_wtick, omp_get_wtime
|
||||
double precision omp_get_wtick, omp_get_wtime
|
||||
|
||||
external omp_set_schedule, omp_get_schedule
|
||||
external omp_get_thread_limit, omp_set_max_active_levels
|
||||
external omp_get_max_active_levels, omp_get_level
|
||||
external omp_get_ancestor_thread_num, omp_get_team_size
|
||||
external omp_get_active_level
|
||||
integer(4) omp_get_thread_limit, omp_get_max_active_levels
|
||||
integer(4) omp_get_level, omp_get_ancestor_thread_num
|
||||
integer(4) omp_get_team_size, omp_get_active_level
|
||||
|
||||
external omp_in_final
|
||||
logical(4) omp_in_final
|
||||
|
||||
external omp_get_cancelllation
|
||||
logical(4) omp_get_cancelllation
|
||||
|
||||
external omp_get_proc_bind
|
||||
integer(omp_proc_bind_kind) omp_get_proc_bind
|
||||
|
||||
integer(4) omp_get_num_places
|
||||
external omp_get_num_places
|
||||
integer(4) omp_get_place_num_procs
|
||||
external omp_get_place_num_procs
|
||||
external omp_get_place_proc_ids
|
||||
integer(4) omp_get_place_num
|
||||
external omp_get_place_num
|
||||
integer(4) omp_get_partition_num_places
|
||||
external omp_get_partition_num_places
|
||||
external omp_get_partition_place_nums
|
||||
|
||||
external omp_set_default_device, omp_get_default_device
|
||||
external omp_get_num_devices, omp_get_num_teams
|
||||
external omp_get_team_num
|
||||
integer(4) omp_get_default_device, omp_get_num_devices
|
||||
integer(4) omp_get_num_teams, omp_get_team_num
|
||||
|
||||
external omp_is_initial_device
|
||||
logical(4) omp_is_initial_device
|
||||
external omp_get_initial_device
|
||||
integer(4) omp_get_initial_device
|
||||
|
||||
external omp_get_max_task_priority
|
||||
integer(4) omp_get_max_task_priority
|
||||
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/omp_lib.mod
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/omp_lib.mod
Normal file
Binary file not shown.
Binary file not shown.
968
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/openacc.f90
Normal file
968
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/openacc.f90
Normal file
@ -0,0 +1,968 @@
|
||||
! OpenACC Runtime Library Definitions.
|
||||
|
||||
! Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
||||
|
||||
! Contributed by Tobias Burnus <burnus@net-b.de>
|
||||
! and Mentor Embedded.
|
||||
|
||||
! This file is part of the GNU Offloading and Multi Processing Library
|
||||
! (libgomp).
|
||||
|
||||
! Libgomp is free software; you can redistribute it and/or modify it
|
||||
! under the terms of the GNU General Public License as published by
|
||||
! the Free Software Foundation; either version 3, or (at your option)
|
||||
! any later version.
|
||||
|
||||
! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
! more details.
|
||||
|
||||
! Under Section 7 of GPL version 3, you are granted additional
|
||||
! permissions described in the GCC Runtime Library Exception, version
|
||||
! 3.1, as published by the Free Software Foundation.
|
||||
|
||||
! You should have received a copy of the GNU General Public License and
|
||||
! a copy of the GCC Runtime Library Exception along with this program;
|
||||
! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
! <http://www.gnu.org/licenses/>.
|
||||
|
||||
module openacc_kinds
|
||||
use iso_fortran_env, only: int32
|
||||
implicit none
|
||||
|
||||
private :: int32
|
||||
public :: acc_device_kind
|
||||
|
||||
integer, parameter :: acc_device_kind = int32
|
||||
|
||||
public :: acc_device_none, acc_device_default, acc_device_host
|
||||
public :: acc_device_not_host, acc_device_nvidia
|
||||
|
||||
! Keep in sync with include/gomp-constants.h.
|
||||
integer (acc_device_kind), parameter :: acc_device_none = 0
|
||||
integer (acc_device_kind), parameter :: acc_device_default = 1
|
||||
integer (acc_device_kind), parameter :: acc_device_host = 2
|
||||
! integer (acc_device_kind), parameter :: acc_device_host_nonshm = 3 removed.
|
||||
integer (acc_device_kind), parameter :: acc_device_not_host = 4
|
||||
integer (acc_device_kind), parameter :: acc_device_nvidia = 5
|
||||
|
||||
public :: acc_handle_kind
|
||||
|
||||
integer, parameter :: acc_handle_kind = int32
|
||||
|
||||
public :: acc_async_noval, acc_async_sync
|
||||
|
||||
! Keep in sync with include/gomp-constants.h.
|
||||
integer (acc_handle_kind), parameter :: acc_async_noval = -1
|
||||
integer (acc_handle_kind), parameter :: acc_async_sync = -2
|
||||
|
||||
end module
|
||||
|
||||
module openacc_internal
|
||||
use openacc_kinds
|
||||
implicit none
|
||||
|
||||
interface
|
||||
function acc_get_num_devices_h (d)
|
||||
import
|
||||
integer acc_get_num_devices_h
|
||||
integer (acc_device_kind) d
|
||||
end function
|
||||
|
||||
subroutine acc_set_device_type_h (d)
|
||||
import
|
||||
integer (acc_device_kind) d
|
||||
end subroutine
|
||||
|
||||
function acc_get_device_type_h ()
|
||||
import
|
||||
integer (acc_device_kind) acc_get_device_type_h
|
||||
end function
|
||||
|
||||
subroutine acc_set_device_num_h (n, d)
|
||||
import
|
||||
integer n
|
||||
integer (acc_device_kind) d
|
||||
end subroutine
|
||||
|
||||
function acc_get_device_num_h (d)
|
||||
import
|
||||
integer acc_get_device_num_h
|
||||
integer (acc_device_kind) d
|
||||
end function
|
||||
|
||||
function acc_async_test_h (a)
|
||||
logical acc_async_test_h
|
||||
integer a
|
||||
end function
|
||||
|
||||
function acc_async_test_all_h ()
|
||||
logical acc_async_test_all_h
|
||||
end function
|
||||
|
||||
subroutine acc_wait_h (a)
|
||||
integer a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_async_h (a1, a2)
|
||||
integer a1, a2
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_all_h ()
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_all_async_h (a)
|
||||
integer a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_init_h (d)
|
||||
import
|
||||
integer (acc_device_kind) d
|
||||
end subroutine
|
||||
|
||||
subroutine acc_shutdown_h (d)
|
||||
import
|
||||
integer (acc_device_kind) d
|
||||
end subroutine
|
||||
|
||||
function acc_on_device_h (d)
|
||||
import
|
||||
integer (acc_device_kind) d
|
||||
logical acc_on_device_h
|
||||
end function
|
||||
|
||||
subroutine acc_copyin_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyin_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyin_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
|
||||
function acc_is_present_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
logical acc_is_present_32_h
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end function
|
||||
|
||||
function acc_is_present_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
logical acc_is_present_64_h
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end function
|
||||
|
||||
function acc_is_present_array_h (a)
|
||||
logical acc_is_present_array_h
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end function
|
||||
end interface
|
||||
|
||||
interface
|
||||
function acc_get_num_devices_l (d) &
|
||||
bind (C, name = "acc_get_num_devices")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int) :: acc_get_num_devices_l
|
||||
integer (c_int), value :: d
|
||||
end function
|
||||
|
||||
subroutine acc_set_device_type_l (d) &
|
||||
bind (C, name = "acc_set_device_type")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int), value :: d
|
||||
end subroutine
|
||||
|
||||
function acc_get_device_type_l () &
|
||||
bind (C, name = "acc_get_device_type")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int) :: acc_get_device_type_l
|
||||
end function
|
||||
|
||||
subroutine acc_set_device_num_l (n, d) &
|
||||
bind (C, name = "acc_set_device_num")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int), value :: n, d
|
||||
end subroutine
|
||||
|
||||
function acc_get_device_num_l (d) &
|
||||
bind (C, name = "acc_get_device_num")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int) :: acc_get_device_num_l
|
||||
integer (c_int), value :: d
|
||||
end function
|
||||
|
||||
function acc_async_test_l (a) &
|
||||
bind (C, name = "acc_async_test")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int) :: acc_async_test_l
|
||||
integer (c_int), value :: a
|
||||
end function
|
||||
|
||||
function acc_async_test_all_l () &
|
||||
bind (C, name = "acc_async_test_all")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int) :: acc_async_test_all_l
|
||||
end function
|
||||
|
||||
subroutine acc_wait_l (a) &
|
||||
bind (C, name = "acc_wait")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int), value :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_async_l (a1, a2) &
|
||||
bind (C, name = "acc_wait_async")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int), value :: a1, a2
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_all_l () &
|
||||
bind (C, name = "acc_wait_all")
|
||||
use iso_c_binding, only: c_int
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_all_async_l (a) &
|
||||
bind (C, name = "acc_wait_all_async")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int), value :: a
|
||||
end subroutine
|
||||
|
||||
subroutine acc_init_l (d) &
|
||||
bind (C, name = "acc_init")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int), value :: d
|
||||
end subroutine
|
||||
|
||||
subroutine acc_shutdown_l (d) &
|
||||
bind (C, name = "acc_shutdown")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int), value :: d
|
||||
end subroutine
|
||||
|
||||
function acc_on_device_l (d) &
|
||||
bind (C, name = "acc_on_device")
|
||||
use iso_c_binding, only: c_int
|
||||
integer (c_int) :: acc_on_device_l
|
||||
integer (c_int), value :: d
|
||||
end function
|
||||
|
||||
subroutine acc_copyin_l (a, len) &
|
||||
bind (C, name = "acc_copyin")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_l (a, len) &
|
||||
bind (C, name = "acc_present_or_copyin")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_l (a, len) &
|
||||
bind (C, name = "acc_create")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_l (a, len) &
|
||||
bind (C, name = "acc_present_or_create")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_l (a, len) &
|
||||
bind (C, name = "acc_copyout")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_l (a, len) &
|
||||
bind (C, name = "acc_delete")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_l (a, len) &
|
||||
bind (C, name = "acc_update_device")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_l (a, len) &
|
||||
bind (C, name = "acc_update_self")
|
||||
use iso_c_binding, only: c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end subroutine
|
||||
|
||||
function acc_is_present_l (a, len) &
|
||||
bind (C, name = "acc_is_present")
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
integer (c_int32_t) :: acc_is_present_l
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_size_t), value :: len
|
||||
end function
|
||||
end interface
|
||||
end module
|
||||
|
||||
module openacc
|
||||
use openacc_kinds
|
||||
use openacc_internal
|
||||
implicit none
|
||||
|
||||
public :: openacc_version
|
||||
|
||||
public :: acc_get_num_devices, acc_set_device_type, acc_get_device_type
|
||||
public :: acc_set_device_num, acc_get_device_num, acc_async_test
|
||||
public :: acc_async_test_all
|
||||
public :: acc_wait, acc_async_wait, acc_wait_async
|
||||
public :: acc_wait_all, acc_async_wait_all, acc_wait_all_async
|
||||
public :: acc_init, acc_shutdown, acc_on_device
|
||||
public :: acc_copyin, acc_present_or_copyin, acc_pcopyin, acc_create
|
||||
public :: acc_present_or_create, acc_pcreate, acc_copyout, acc_delete
|
||||
public :: acc_update_device, acc_update_self, acc_is_present
|
||||
|
||||
integer, parameter :: openacc_version = 201306
|
||||
|
||||
interface acc_get_num_devices
|
||||
procedure :: acc_get_num_devices_h
|
||||
end interface
|
||||
|
||||
interface acc_set_device_type
|
||||
procedure :: acc_set_device_type_h
|
||||
end interface
|
||||
|
||||
interface acc_get_device_type
|
||||
procedure :: acc_get_device_type_h
|
||||
end interface
|
||||
|
||||
interface acc_set_device_num
|
||||
procedure :: acc_set_device_num_h
|
||||
end interface
|
||||
|
||||
interface acc_get_device_num
|
||||
procedure :: acc_get_device_num_h
|
||||
end interface
|
||||
|
||||
interface acc_async_test
|
||||
procedure :: acc_async_test_h
|
||||
end interface
|
||||
|
||||
interface acc_async_test_all
|
||||
procedure :: acc_async_test_all_h
|
||||
end interface
|
||||
|
||||
interface acc_wait
|
||||
procedure :: acc_wait_h
|
||||
end interface
|
||||
|
||||
! acc_async_wait is an OpenACC 1.0 compatibility name for acc_wait.
|
||||
interface acc_async_wait
|
||||
procedure :: acc_wait_h
|
||||
end interface
|
||||
|
||||
interface acc_wait_async
|
||||
procedure :: acc_wait_async_h
|
||||
end interface
|
||||
|
||||
interface acc_wait_all
|
||||
procedure :: acc_wait_all_h
|
||||
end interface
|
||||
|
||||
! acc_async_wait_all is an OpenACC 1.0 compatibility name for acc_wait_all.
|
||||
interface acc_async_wait_all
|
||||
procedure :: acc_wait_all_h
|
||||
end interface
|
||||
|
||||
interface acc_wait_all_async
|
||||
procedure :: acc_wait_all_async_h
|
||||
end interface
|
||||
|
||||
interface acc_init
|
||||
procedure :: acc_init_h
|
||||
end interface
|
||||
|
||||
interface acc_shutdown
|
||||
procedure :: acc_shutdown_h
|
||||
end interface
|
||||
|
||||
interface acc_on_device
|
||||
procedure :: acc_on_device_h
|
||||
end interface
|
||||
|
||||
! acc_malloc: Only available in C/C++
|
||||
! acc_free: Only available in C/C++
|
||||
|
||||
! As vendor extension, the following code supports both 32bit and 64bit
|
||||
! arguments for "size"; the OpenACC standard only permits default-kind
|
||||
! integers, which are of kind 4 (i.e. 32 bits).
|
||||
! Additionally, the two-argument version also takes arrays as argument.
|
||||
! and the one argument version also scalars. Note that the code assumes
|
||||
! that the arrays are contiguous.
|
||||
|
||||
interface acc_copyin
|
||||
procedure :: acc_copyin_32_h
|
||||
procedure :: acc_copyin_64_h
|
||||
procedure :: acc_copyin_array_h
|
||||
end interface
|
||||
|
||||
interface acc_present_or_copyin
|
||||
procedure :: acc_present_or_copyin_32_h
|
||||
procedure :: acc_present_or_copyin_64_h
|
||||
procedure :: acc_present_or_copyin_array_h
|
||||
end interface
|
||||
|
||||
interface acc_pcopyin
|
||||
procedure :: acc_present_or_copyin_32_h
|
||||
procedure :: acc_present_or_copyin_64_h
|
||||
procedure :: acc_present_or_copyin_array_h
|
||||
end interface
|
||||
|
||||
interface acc_create
|
||||
procedure :: acc_create_32_h
|
||||
procedure :: acc_create_64_h
|
||||
procedure :: acc_create_array_h
|
||||
end interface
|
||||
|
||||
interface acc_present_or_create
|
||||
procedure :: acc_present_or_create_32_h
|
||||
procedure :: acc_present_or_create_64_h
|
||||
procedure :: acc_present_or_create_array_h
|
||||
end interface
|
||||
|
||||
interface acc_pcreate
|
||||
procedure :: acc_present_or_create_32_h
|
||||
procedure :: acc_present_or_create_64_h
|
||||
procedure :: acc_present_or_create_array_h
|
||||
end interface
|
||||
|
||||
interface acc_copyout
|
||||
procedure :: acc_copyout_32_h
|
||||
procedure :: acc_copyout_64_h
|
||||
procedure :: acc_copyout_array_h
|
||||
end interface
|
||||
|
||||
interface acc_delete
|
||||
procedure :: acc_delete_32_h
|
||||
procedure :: acc_delete_64_h
|
||||
procedure :: acc_delete_array_h
|
||||
end interface
|
||||
|
||||
interface acc_update_device
|
||||
procedure :: acc_update_device_32_h
|
||||
procedure :: acc_update_device_64_h
|
||||
procedure :: acc_update_device_array_h
|
||||
end interface
|
||||
|
||||
interface acc_update_self
|
||||
procedure :: acc_update_self_32_h
|
||||
procedure :: acc_update_self_64_h
|
||||
procedure :: acc_update_self_array_h
|
||||
end interface
|
||||
|
||||
! acc_map_data: Only available in C/C++
|
||||
! acc_unmap_data: Only available in C/C++
|
||||
! acc_deviceptr: Only available in C/C++
|
||||
! acc_hostptr: Only available in C/C++
|
||||
|
||||
interface acc_is_present
|
||||
procedure :: acc_is_present_32_h
|
||||
procedure :: acc_is_present_64_h
|
||||
procedure :: acc_is_present_array_h
|
||||
end interface
|
||||
|
||||
! acc_memcpy_to_device: Only available in C/C++
|
||||
! acc_memcpy_from_device: Only available in C/C++
|
||||
|
||||
end module
|
||||
|
||||
function acc_get_num_devices_h (d)
|
||||
use openacc_internal, only: acc_get_num_devices_l
|
||||
use openacc_kinds
|
||||
integer acc_get_num_devices_h
|
||||
integer (acc_device_kind) d
|
||||
acc_get_num_devices_h = acc_get_num_devices_l (d)
|
||||
end function
|
||||
|
||||
subroutine acc_set_device_type_h (d)
|
||||
use openacc_internal, only: acc_set_device_type_l
|
||||
use openacc_kinds
|
||||
integer (acc_device_kind) d
|
||||
call acc_set_device_type_l (d)
|
||||
end subroutine
|
||||
|
||||
function acc_get_device_type_h ()
|
||||
use openacc_internal, only: acc_get_device_type_l
|
||||
use openacc_kinds
|
||||
integer (acc_device_kind) acc_get_device_type_h
|
||||
acc_get_device_type_h = acc_get_device_type_l ()
|
||||
end function
|
||||
|
||||
subroutine acc_set_device_num_h (n, d)
|
||||
use openacc_internal, only: acc_set_device_num_l
|
||||
use openacc_kinds
|
||||
integer n
|
||||
integer (acc_device_kind) d
|
||||
call acc_set_device_num_l (n, d)
|
||||
end subroutine
|
||||
|
||||
function acc_get_device_num_h (d)
|
||||
use openacc_internal, only: acc_get_device_num_l
|
||||
use openacc_kinds
|
||||
integer acc_get_device_num_h
|
||||
integer (acc_device_kind) d
|
||||
acc_get_device_num_h = acc_get_device_num_l (d)
|
||||
end function
|
||||
|
||||
function acc_async_test_h (a)
|
||||
use openacc_internal, only: acc_async_test_l
|
||||
logical acc_async_test_h
|
||||
integer a
|
||||
if (acc_async_test_l (a) .eq. 1) then
|
||||
acc_async_test_h = .TRUE.
|
||||
else
|
||||
acc_async_test_h = .FALSE.
|
||||
end if
|
||||
end function
|
||||
|
||||
function acc_async_test_all_h ()
|
||||
use openacc_internal, only: acc_async_test_all_l
|
||||
logical acc_async_test_all_h
|
||||
if (acc_async_test_all_l () .eq. 1) then
|
||||
acc_async_test_all_h = .TRUE.
|
||||
else
|
||||
acc_async_test_all_h = .FALSE.
|
||||
end if
|
||||
end function
|
||||
|
||||
subroutine acc_wait_h (a)
|
||||
use openacc_internal, only: acc_wait_l
|
||||
integer a
|
||||
call acc_wait_l (a)
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_async_h (a1, a2)
|
||||
use openacc_internal, only: acc_wait_async_l
|
||||
integer a1, a2
|
||||
call acc_wait_async_l (a1, a2)
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_all_h ()
|
||||
use openacc_internal, only: acc_wait_all_l
|
||||
call acc_wait_all_l ()
|
||||
end subroutine
|
||||
|
||||
subroutine acc_wait_all_async_h (a)
|
||||
use openacc_internal, only: acc_wait_all_async_l
|
||||
integer a
|
||||
call acc_wait_all_async_l (a)
|
||||
end subroutine
|
||||
|
||||
subroutine acc_init_h (d)
|
||||
use openacc_internal, only: acc_init_l
|
||||
use openacc_kinds
|
||||
integer (acc_device_kind) d
|
||||
call acc_init_l (d)
|
||||
end subroutine
|
||||
|
||||
subroutine acc_shutdown_h (d)
|
||||
use openacc_internal, only: acc_shutdown_l
|
||||
use openacc_kinds
|
||||
integer (acc_device_kind) d
|
||||
call acc_shutdown_l (d)
|
||||
end subroutine
|
||||
|
||||
function acc_on_device_h (d)
|
||||
use openacc_internal, only: acc_on_device_l
|
||||
use openacc_kinds
|
||||
integer (acc_device_kind) d
|
||||
logical acc_on_device_h
|
||||
if (acc_on_device_l (d) .eq. 1) then
|
||||
acc_on_device_h = .TRUE.
|
||||
else
|
||||
acc_on_device_h = .FALSE.
|
||||
end if
|
||||
end function
|
||||
|
||||
subroutine acc_copyin_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_copyin_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_copyin_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyin_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_copyin_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_copyin_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyin_array_h (a)
|
||||
use openacc_internal, only: acc_copyin_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_copyin_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_present_or_copyin_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_present_or_copyin_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_present_or_copyin_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_present_or_copyin_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_array_h (a)
|
||||
use openacc_internal, only: acc_present_or_copyin_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_present_or_copyin_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_create_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_create_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_create_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_create_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_array_h (a)
|
||||
use openacc_internal, only: acc_create_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_create_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_present_or_create_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_present_or_create_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_present_or_create_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_present_or_create_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_array_h (a)
|
||||
use openacc_internal, only: acc_present_or_create_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_present_or_create_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_copyout_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_copyout_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_copyout_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_copyout_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_array_h (a)
|
||||
use openacc_internal, only: acc_copyout_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_copyout_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_delete_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_delete_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_delete_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_delete_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_array_h (a)
|
||||
use openacc_internal, only: acc_delete_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_delete_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_update_device_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_update_device_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_update_device_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_update_device_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_array_h (a)
|
||||
use openacc_internal, only: acc_update_device_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_update_device_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_update_self_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
call acc_update_self_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_update_self_l
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
call acc_update_self_l (a, int (len, kind = c_size_t))
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_array_h (a)
|
||||
use openacc_internal, only: acc_update_self_l
|
||||
type (*), dimension (..), contiguous :: a
|
||||
call acc_update_self_l (a, sizeof (a))
|
||||
end subroutine
|
||||
|
||||
function acc_is_present_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t, c_size_t
|
||||
use openacc_internal, only: acc_is_present_l
|
||||
logical acc_is_present_32_h
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
if (acc_is_present_l (a, int (len, kind = c_size_t)) .eq. 1) then
|
||||
acc_is_present_32_h = .TRUE.
|
||||
else
|
||||
acc_is_present_32_h = .FALSE.
|
||||
end if
|
||||
end function
|
||||
|
||||
function acc_is_present_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t, c_size_t
|
||||
use openacc_internal, only: acc_is_present_l
|
||||
logical acc_is_present_64_h
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
if (acc_is_present_l (a, int (len, kind = c_size_t)) .eq. 1) then
|
||||
acc_is_present_64_h = .TRUE.
|
||||
else
|
||||
acc_is_present_64_h = .FALSE.
|
||||
end if
|
||||
end function
|
||||
|
||||
function acc_is_present_array_h (a)
|
||||
use openacc_internal, only: acc_is_present_l
|
||||
logical acc_is_present_array_h
|
||||
type (*), dimension (..), contiguous :: a
|
||||
acc_is_present_array_h = acc_is_present_l (a, sizeof (a)) == 1
|
||||
end function
|
||||
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/openacc.mod
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/openacc.mod
Normal file
Binary file not shown.
Binary file not shown.
365
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/openacc_lib.h
Normal file
365
lib/gcc/loongarch32-linux-gnuf64/8.3.0/finclude/openacc_lib.h
Normal file
@ -0,0 +1,365 @@
|
||||
! OpenACC Runtime Library Definitions. -*- mode: fortran -*-
|
||||
|
||||
! Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
||||
|
||||
! Contributed by Tobias Burnus <burnus@net-b.de>
|
||||
! and Mentor Embedded.
|
||||
|
||||
! This file is part of the GNU Offloading and Multi Processing Library
|
||||
! (libgomp).
|
||||
|
||||
! Libgomp is free software; you can redistribute it and/or modify it
|
||||
! under the terms of the GNU General Public License as published by
|
||||
! the Free Software Foundation; either version 3, or (at your option)
|
||||
! any later version.
|
||||
|
||||
! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
! more details.
|
||||
|
||||
! Under Section 7 of GPL version 3, you are granted additional
|
||||
! permissions described in the GCC Runtime Library Exception, version
|
||||
! 3.1, as published by the Free Software Foundation.
|
||||
|
||||
! You should have received a copy of the GNU General Public License and
|
||||
! a copy of the GCC Runtime Library Exception along with this program;
|
||||
! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
! <http://www.gnu.org/licenses/>.
|
||||
|
||||
! NOTE: Due to the use of dimension (..), the code only works when compiled
|
||||
! with -std=f2008ts/gnu/legacy but not with other standard settings.
|
||||
! Alternatively, the user can use the module version, which permits
|
||||
! compilation with -std=f95.
|
||||
|
||||
integer, parameter :: acc_device_kind = 4
|
||||
|
||||
! Keep in sync with include/gomp-constants.h.
|
||||
integer (acc_device_kind), parameter :: acc_device_none = 0
|
||||
integer (acc_device_kind), parameter :: acc_device_default = 1
|
||||
integer (acc_device_kind), parameter :: acc_device_host = 2
|
||||
! integer (acc_device_kind), parameter :: acc_device_host_nonshm = 3
|
||||
! removed.
|
||||
integer (acc_device_kind), parameter :: acc_device_not_host = 4
|
||||
integer (acc_device_kind), parameter :: acc_device_nvidia = 5
|
||||
|
||||
integer, parameter :: acc_handle_kind = 4
|
||||
|
||||
! Keep in sync with include/gomp-constants.h.
|
||||
integer (acc_handle_kind), parameter :: acc_async_noval = -1
|
||||
integer (acc_handle_kind), parameter :: acc_async_sync = -2
|
||||
|
||||
integer, parameter :: openacc_version = 201306
|
||||
|
||||
interface acc_get_num_devices
|
||||
function acc_get_num_devices_h (d)
|
||||
import acc_device_kind
|
||||
integer acc_get_num_devices_h
|
||||
integer (acc_device_kind) d
|
||||
end function
|
||||
end interface
|
||||
|
||||
interface acc_set_device_type
|
||||
subroutine acc_set_device_type_h (d)
|
||||
import acc_device_kind
|
||||
integer (acc_device_kind) d
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_get_device_type
|
||||
function acc_get_device_type_h ()
|
||||
import acc_device_kind
|
||||
integer (acc_device_kind) acc_get_device_type_h
|
||||
end function
|
||||
end interface
|
||||
|
||||
interface acc_set_device_num
|
||||
subroutine acc_set_device_num_h (n, d)
|
||||
import acc_device_kind
|
||||
integer n
|
||||
integer (acc_device_kind) d
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_get_device_num
|
||||
function acc_get_device_num_h (d)
|
||||
import acc_device_kind
|
||||
integer acc_get_device_num_h
|
||||
integer (acc_device_kind) d
|
||||
end function
|
||||
end interface
|
||||
|
||||
interface acc_async_test
|
||||
function acc_async_test_h (a)
|
||||
logical acc_async_test_h
|
||||
integer a
|
||||
end function
|
||||
end interface
|
||||
|
||||
interface acc_async_test_all
|
||||
function acc_async_test_all_h ()
|
||||
logical acc_async_test_all_h
|
||||
end function
|
||||
end interface
|
||||
|
||||
interface acc_wait
|
||||
subroutine acc_wait_h (a)
|
||||
integer a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
! acc_async_wait is an OpenACC 1.0 compatibility name for acc_wait.
|
||||
interface acc_async_wait
|
||||
procedure :: acc_wait_h
|
||||
end interface
|
||||
|
||||
interface acc_wait_async
|
||||
subroutine acc_wait_async_h (a1, a2)
|
||||
integer a1, a2
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_wait_all
|
||||
subroutine acc_wait_all_h ()
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
! acc_async_wait_all is an OpenACC 1.0 compatibility name for
|
||||
! acc_wait_all.
|
||||
interface acc_async_wait_all
|
||||
procedure :: acc_wait_all_h
|
||||
end interface
|
||||
|
||||
interface acc_wait_all_async
|
||||
subroutine acc_wait_all_async_h (a)
|
||||
integer a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_init
|
||||
subroutine acc_init_h (devicetype)
|
||||
import acc_device_kind
|
||||
integer (acc_device_kind) devicetype
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_shutdown
|
||||
subroutine acc_shutdown_h (devicetype)
|
||||
import acc_device_kind
|
||||
integer (acc_device_kind) devicetype
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_on_device
|
||||
function acc_on_device_h (devicetype)
|
||||
import acc_device_kind
|
||||
logical acc_on_device_h
|
||||
integer (acc_device_kind) devicetype
|
||||
end function
|
||||
end interface
|
||||
|
||||
! acc_malloc: Only available in C/C++
|
||||
! acc_free: Only available in C/C++
|
||||
|
||||
interface acc_copyin
|
||||
subroutine acc_copyin_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyin_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyin_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_present_or_copyin
|
||||
subroutine acc_present_or_copyin_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_copyin_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_pcopyin
|
||||
procedure :: acc_present_or_copyin_32_h
|
||||
procedure :: acc_present_or_copyin_64_h
|
||||
procedure :: acc_present_or_copyin_array_h
|
||||
end interface
|
||||
|
||||
interface acc_create
|
||||
subroutine acc_create_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_create_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_present_or_create
|
||||
subroutine acc_present_or_create_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_present_or_create_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_pcreate
|
||||
procedure :: acc_present_or_create_32_h
|
||||
procedure :: acc_present_or_create_64_h
|
||||
procedure :: acc_present_or_create_array_h
|
||||
end interface
|
||||
|
||||
interface acc_copyout
|
||||
subroutine acc_copyout_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_copyout_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_delete
|
||||
subroutine acc_delete_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_delete_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_update_device
|
||||
subroutine acc_update_device_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_device_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
interface acc_update_self
|
||||
subroutine acc_update_self_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end subroutine
|
||||
|
||||
subroutine acc_update_self_array_h (a)
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end subroutine
|
||||
end interface
|
||||
|
||||
! acc_map_data: Only available in C/C++
|
||||
! acc_unmap_data: Only available in C/C++
|
||||
! acc_deviceptr: Only available in C/C++
|
||||
! acc_hostptr: Only available in C/C++
|
||||
|
||||
interface acc_is_present
|
||||
function acc_is_present_32_h (a, len)
|
||||
use iso_c_binding, only: c_int32_t
|
||||
logical acc_is_present_32_h
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int32_t) len
|
||||
end function
|
||||
|
||||
function acc_is_present_64_h (a, len)
|
||||
use iso_c_binding, only: c_int64_t
|
||||
logical acc_is_present_64_h
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: a
|
||||
type (*), dimension (*) :: a
|
||||
integer (c_int64_t) len
|
||||
end function
|
||||
|
||||
function acc_is_present_array_h (a)
|
||||
logical acc_is_present_array_h
|
||||
type (*), dimension (..), contiguous :: a
|
||||
end function
|
||||
end interface
|
||||
|
||||
! acc_memcpy_to_device: Only available in C/C++
|
||||
! acc_memcpy_from_device: Only available in C/C++
|
||||
14
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include-fixed/README
Normal file
14
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include-fixed/README
Normal file
@ -0,0 +1,14 @@
|
||||
This README file is copied into the directory for GCC-only header files
|
||||
when fixincludes is run by the makefile for GCC.
|
||||
|
||||
Many of the files in this directory were automatically edited from the
|
||||
standard system header files by the fixincludes process. They are
|
||||
system-specific, and will not work on any other kind of system. They
|
||||
are also not part of GCC. The reason we have to do this is because
|
||||
GCC requires ANSI C headers and many vendors supply ANSI-incompatible
|
||||
headers.
|
||||
|
||||
Because this is an automated process, sometimes headers get "fixed"
|
||||
that do not, strictly speaking, need a fix. As long as nothing is broken
|
||||
by the process, it is just an unfortunate collateral inconvenience.
|
||||
We would like to rectify it, if it is not "too inconvenient".
|
||||
197
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include-fixed/limits.h
Normal file
197
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include-fixed/limits.h
Normal file
@ -0,0 +1,197 @@
|
||||
/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* This administrivia gets added to the beginning of limits.h
|
||||
if the system has its own version of limits.h. */
|
||||
|
||||
/* We use _GCC_LIMITS_H_ because we want this not to match
|
||||
any macros that the system's limits.h uses for its own purposes. */
|
||||
#ifndef _GCC_LIMITS_H_ /* Terminated in limity.h. */
|
||||
#define _GCC_LIMITS_H_
|
||||
|
||||
#ifndef _LIBC_LIMITS_H_
|
||||
/* Use "..." so that we find syslimits.h only in this same directory. */
|
||||
#include "syslimits.h"
|
||||
#endif
|
||||
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _LIMITS_H___
|
||||
#define _LIMITS_H___
|
||||
|
||||
/* Number of bits in a `char'. */
|
||||
#undef CHAR_BIT
|
||||
#define CHAR_BIT __CHAR_BIT__
|
||||
|
||||
/* Maximum length of a multibyte character. */
|
||||
#ifndef MB_LEN_MAX
|
||||
#define MB_LEN_MAX 1
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed char' can hold. */
|
||||
#undef SCHAR_MIN
|
||||
#define SCHAR_MIN (-SCHAR_MAX - 1)
|
||||
#undef SCHAR_MAX
|
||||
#define SCHAR_MAX __SCHAR_MAX__
|
||||
|
||||
/* Maximum value an `unsigned char' can hold. (Minimum is 0). */
|
||||
#undef UCHAR_MAX
|
||||
#if __SCHAR_MAX__ == __INT_MAX__
|
||||
# define UCHAR_MAX (SCHAR_MAX * 2U + 1U)
|
||||
#else
|
||||
# define UCHAR_MAX (SCHAR_MAX * 2 + 1)
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `char' can hold. */
|
||||
#ifdef __CHAR_UNSIGNED__
|
||||
# undef CHAR_MIN
|
||||
# if __SCHAR_MAX__ == __INT_MAX__
|
||||
# define CHAR_MIN 0U
|
||||
# else
|
||||
# define CHAR_MIN 0
|
||||
# endif
|
||||
# undef CHAR_MAX
|
||||
# define CHAR_MAX UCHAR_MAX
|
||||
#else
|
||||
# undef CHAR_MIN
|
||||
# define CHAR_MIN SCHAR_MIN
|
||||
# undef CHAR_MAX
|
||||
# define CHAR_MAX SCHAR_MAX
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed short int' can hold. */
|
||||
#undef SHRT_MIN
|
||||
#define SHRT_MIN (-SHRT_MAX - 1)
|
||||
#undef SHRT_MAX
|
||||
#define SHRT_MAX __SHRT_MAX__
|
||||
|
||||
/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */
|
||||
#undef USHRT_MAX
|
||||
#if __SHRT_MAX__ == __INT_MAX__
|
||||
# define USHRT_MAX (SHRT_MAX * 2U + 1U)
|
||||
#else
|
||||
# define USHRT_MAX (SHRT_MAX * 2 + 1)
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed int' can hold. */
|
||||
#undef INT_MIN
|
||||
#define INT_MIN (-INT_MAX - 1)
|
||||
#undef INT_MAX
|
||||
#define INT_MAX __INT_MAX__
|
||||
|
||||
/* Maximum value an `unsigned int' can hold. (Minimum is 0). */
|
||||
#undef UINT_MAX
|
||||
#define UINT_MAX (INT_MAX * 2U + 1U)
|
||||
|
||||
/* Minimum and maximum values a `signed long int' can hold.
|
||||
(Same as `int'). */
|
||||
#undef LONG_MIN
|
||||
#define LONG_MIN (-LONG_MAX - 1L)
|
||||
#undef LONG_MAX
|
||||
#define LONG_MAX __LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
|
||||
#undef ULONG_MAX
|
||||
#define ULONG_MAX (LONG_MAX * 2UL + 1UL)
|
||||
|
||||
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
/* Minimum and maximum values a `signed long long int' can hold. */
|
||||
# undef LLONG_MIN
|
||||
# define LLONG_MIN (-LLONG_MAX - 1LL)
|
||||
# undef LLONG_MAX
|
||||
# define LLONG_MAX __LONG_LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
|
||||
# undef ULLONG_MAX
|
||||
# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
|
||||
#endif
|
||||
|
||||
#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
|
||||
/* Minimum and maximum values a `signed long long int' can hold. */
|
||||
# undef LONG_LONG_MIN
|
||||
# define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
|
||||
# undef LONG_LONG_MAX
|
||||
# define LONG_LONG_MAX __LONG_LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
|
||||
# undef ULONG_LONG_MAX
|
||||
# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
|
||||
#endif
|
||||
|
||||
#ifdef __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
/* TS 18661-1 widths of integer types. */
|
||||
# undef CHAR_WIDTH
|
||||
# define CHAR_WIDTH __SCHAR_WIDTH__
|
||||
# undef SCHAR_WIDTH
|
||||
# define SCHAR_WIDTH __SCHAR_WIDTH__
|
||||
# undef UCHAR_WIDTH
|
||||
# define UCHAR_WIDTH __SCHAR_WIDTH__
|
||||
# undef SHRT_WIDTH
|
||||
# define SHRT_WIDTH __SHRT_WIDTH__
|
||||
# undef USHRT_WIDTH
|
||||
# define USHRT_WIDTH __SHRT_WIDTH__
|
||||
# undef INT_WIDTH
|
||||
# define INT_WIDTH __INT_WIDTH__
|
||||
# undef UINT_WIDTH
|
||||
# define UINT_WIDTH __INT_WIDTH__
|
||||
# undef LONG_WIDTH
|
||||
# define LONG_WIDTH __LONG_WIDTH__
|
||||
# undef ULONG_WIDTH
|
||||
# define ULONG_WIDTH __LONG_WIDTH__
|
||||
# undef LLONG_WIDTH
|
||||
# define LLONG_WIDTH __LONG_LONG_WIDTH__
|
||||
# undef ULLONG_WIDTH
|
||||
# define ULLONG_WIDTH __LONG_LONG_WIDTH__
|
||||
#endif
|
||||
|
||||
#endif /* _LIMITS_H___ */
|
||||
/* This administrivia gets added to the end of limits.h
|
||||
if the system has its own version of limits.h. */
|
||||
|
||||
#else /* not _GCC_LIMITS_H_ */
|
||||
|
||||
#ifdef _GCC_NEXT_LIMITS_H
|
||||
#include_next <limits.h> /* recurse down to the real one */
|
||||
#endif
|
||||
|
||||
#endif /* not _GCC_LIMITS_H_ */
|
||||
@ -0,0 +1,8 @@
|
||||
/* syslimits.h stands for the system's own limits.h file.
|
||||
If we can use it ok unmodified, then we install this text.
|
||||
If fixincludes fixes it, then the fixed version is installed
|
||||
instead of this text. */
|
||||
|
||||
#define _GCC_NEXT_LIMITS_H /* tell gcc's limits.h to recurse */
|
||||
#include_next <limits.h>
|
||||
#undef _GCC_NEXT_LIMITS_H
|
||||
506
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/float.h
Normal file
506
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/float.h
Normal file
@ -0,0 +1,506 @@
|
||||
/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/*
|
||||
* ISO C Standard: 5.2.4.2.2 Characteristics of floating types <float.h>
|
||||
*/
|
||||
|
||||
#ifndef _FLOAT_H___
|
||||
#define _FLOAT_H___
|
||||
|
||||
/* Radix of exponent representation, b. */
|
||||
#undef FLT_RADIX
|
||||
#define FLT_RADIX __FLT_RADIX__
|
||||
|
||||
/* Number of base-FLT_RADIX digits in the significand, p. */
|
||||
#undef FLT_MANT_DIG
|
||||
#undef DBL_MANT_DIG
|
||||
#undef LDBL_MANT_DIG
|
||||
#define FLT_MANT_DIG __FLT_MANT_DIG__
|
||||
#define DBL_MANT_DIG __DBL_MANT_DIG__
|
||||
#define LDBL_MANT_DIG __LDBL_MANT_DIG__
|
||||
|
||||
/* Number of decimal digits, q, such that any floating-point number with q
|
||||
decimal digits can be rounded into a floating-point number with p radix b
|
||||
digits and back again without change to the q decimal digits,
|
||||
|
||||
p * log10(b) if b is a power of 10
|
||||
floor((p - 1) * log10(b)) otherwise
|
||||
*/
|
||||
#undef FLT_DIG
|
||||
#undef DBL_DIG
|
||||
#undef LDBL_DIG
|
||||
#define FLT_DIG __FLT_DIG__
|
||||
#define DBL_DIG __DBL_DIG__
|
||||
#define LDBL_DIG __LDBL_DIG__
|
||||
|
||||
/* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */
|
||||
#undef FLT_MIN_EXP
|
||||
#undef DBL_MIN_EXP
|
||||
#undef LDBL_MIN_EXP
|
||||
#define FLT_MIN_EXP __FLT_MIN_EXP__
|
||||
#define DBL_MIN_EXP __DBL_MIN_EXP__
|
||||
#define LDBL_MIN_EXP __LDBL_MIN_EXP__
|
||||
|
||||
/* Minimum negative integer such that 10 raised to that power is in the
|
||||
range of normalized floating-point numbers,
|
||||
|
||||
ceil(log10(b) * (emin - 1))
|
||||
*/
|
||||
#undef FLT_MIN_10_EXP
|
||||
#undef DBL_MIN_10_EXP
|
||||
#undef LDBL_MIN_10_EXP
|
||||
#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
|
||||
#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
|
||||
#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
|
||||
|
||||
/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax. */
|
||||
#undef FLT_MAX_EXP
|
||||
#undef DBL_MAX_EXP
|
||||
#undef LDBL_MAX_EXP
|
||||
#define FLT_MAX_EXP __FLT_MAX_EXP__
|
||||
#define DBL_MAX_EXP __DBL_MAX_EXP__
|
||||
#define LDBL_MAX_EXP __LDBL_MAX_EXP__
|
||||
|
||||
/* Maximum integer such that 10 raised to that power is in the range of
|
||||
representable finite floating-point numbers,
|
||||
|
||||
floor(log10((1 - b**-p) * b**emax))
|
||||
*/
|
||||
#undef FLT_MAX_10_EXP
|
||||
#undef DBL_MAX_10_EXP
|
||||
#undef LDBL_MAX_10_EXP
|
||||
#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
|
||||
#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
|
||||
#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
|
||||
|
||||
/* Maximum representable finite floating-point number,
|
||||
|
||||
(1 - b**-p) * b**emax
|
||||
*/
|
||||
#undef FLT_MAX
|
||||
#undef DBL_MAX
|
||||
#undef LDBL_MAX
|
||||
#define FLT_MAX __FLT_MAX__
|
||||
#define DBL_MAX __DBL_MAX__
|
||||
#define LDBL_MAX __LDBL_MAX__
|
||||
|
||||
/* The difference between 1 and the least value greater than 1 that is
|
||||
representable in the given floating point type, b**1-p. */
|
||||
#undef FLT_EPSILON
|
||||
#undef DBL_EPSILON
|
||||
#undef LDBL_EPSILON
|
||||
#define FLT_EPSILON __FLT_EPSILON__
|
||||
#define DBL_EPSILON __DBL_EPSILON__
|
||||
#define LDBL_EPSILON __LDBL_EPSILON__
|
||||
|
||||
/* Minimum normalized positive floating-point number, b**(emin - 1). */
|
||||
#undef FLT_MIN
|
||||
#undef DBL_MIN
|
||||
#undef LDBL_MIN
|
||||
#define FLT_MIN __FLT_MIN__
|
||||
#define DBL_MIN __DBL_MIN__
|
||||
#define LDBL_MIN __LDBL_MIN__
|
||||
|
||||
/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown. */
|
||||
/* ??? This is supposed to change with calls to fesetround in <fenv.h>. */
|
||||
#undef FLT_ROUNDS
|
||||
#define FLT_ROUNDS 1
|
||||
|
||||
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
|
||||
|| (defined (__cplusplus) && __cplusplus >= 201103L)
|
||||
/* The floating-point expression evaluation method. The precise
|
||||
definitions of these values are generalised to include support for
|
||||
the interchange and extended types defined in ISO/IEC TS 18661-3.
|
||||
Prior to this (for C99/C11) the definitions were:
|
||||
|
||||
-1 indeterminate
|
||||
0 evaluate all operations and constants just to the range and
|
||||
precision of the type
|
||||
1 evaluate operations and constants of type float and double
|
||||
to the range and precision of the double type, evaluate
|
||||
long double operations and constants to the range and
|
||||
precision of the long double type
|
||||
2 evaluate all operations and constants to the range and
|
||||
precision of the long double type
|
||||
|
||||
The TS 18661-3 definitions are:
|
||||
|
||||
-1 indeterminate
|
||||
0 evaluate all operations and constants, whose semantic type has
|
||||
at most the range and precision of float, to the range and
|
||||
precision of float; evaluate all other operations and constants
|
||||
to the range and precision of the semantic type.
|
||||
1 evaluate all operations and constants, whose semantic type has
|
||||
at most the range and precision of double, to the range and
|
||||
precision of double; evaluate all other operations and constants
|
||||
to the range and precision of the semantic type.
|
||||
2 evaluate all operations and constants, whose semantic type has
|
||||
at most the range and precision of long double, to the range and
|
||||
precision of long double; evaluate all other operations and
|
||||
constants to the range and precision of the semantic type.
|
||||
N where _FloatN is a supported interchange floating type
|
||||
evaluate all operations and constants, whose semantic type has
|
||||
at most the range and precision of the _FloatN type, to the
|
||||
range and precision of the _FloatN type; evaluate all other
|
||||
operations and constants to the range and precision of the
|
||||
semantic type.
|
||||
N + 1, where _FloatNx is a supported extended floating type
|
||||
evaluate operations and constants, whose semantic type has at
|
||||
most the range and precision of the _FloatNx type, to the range
|
||||
and precision of the _FloatNx type; evaluate all other
|
||||
operations and constants to the range and precision of the
|
||||
semantic type.
|
||||
|
||||
The compiler predefines two macros:
|
||||
|
||||
__FLT_EVAL_METHOD__
|
||||
Which, depending on the value given for
|
||||
-fpermitted-flt-eval-methods, may be limited to only those values
|
||||
for FLT_EVAL_METHOD defined in C99/C11.
|
||||
|
||||
__FLT_EVAL_METHOD_TS_18661_3__
|
||||
Which always permits the values for FLT_EVAL_METHOD defined in
|
||||
ISO/IEC TS 18661-3.
|
||||
|
||||
Here we want to use __FLT_EVAL_METHOD__, unless
|
||||
__STDC_WANT_IEC_60559_TYPES_EXT__ is defined, in which case the user
|
||||
is specifically asking for the ISO/IEC TS 18661-3 types, so we use
|
||||
__FLT_EVAL_METHOD_TS_18661_3__.
|
||||
|
||||
??? This ought to change with the setting of the fp control word;
|
||||
the value provided by the compiler assumes the widest setting. */
|
||||
#undef FLT_EVAL_METHOD
|
||||
#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD_TS_18661_3__
|
||||
#else
|
||||
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
|
||||
#endif
|
||||
|
||||
/* Number of decimal digits, n, such that any floating-point number in the
|
||||
widest supported floating type with pmax radix b digits can be rounded
|
||||
to a floating-point number with n decimal digits and back again without
|
||||
change to the value,
|
||||
|
||||
pmax * log10(b) if b is a power of 10
|
||||
ceil(1 + pmax * log10(b)) otherwise
|
||||
*/
|
||||
#undef DECIMAL_DIG
|
||||
#define DECIMAL_DIG __DECIMAL_DIG__
|
||||
|
||||
#endif /* C99 */
|
||||
|
||||
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
|
||||
/* Versions of DECIMAL_DIG for each floating-point type. */
|
||||
#undef FLT_DECIMAL_DIG
|
||||
#undef DBL_DECIMAL_DIG
|
||||
#undef LDBL_DECIMAL_DIG
|
||||
#define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
|
||||
#define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
|
||||
#define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
|
||||
|
||||
/* Whether types support subnormal numbers. */
|
||||
#undef FLT_HAS_SUBNORM
|
||||
#undef DBL_HAS_SUBNORM
|
||||
#undef LDBL_HAS_SUBNORM
|
||||
#define FLT_HAS_SUBNORM __FLT_HAS_DENORM__
|
||||
#define DBL_HAS_SUBNORM __DBL_HAS_DENORM__
|
||||
#define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__
|
||||
|
||||
/* Minimum positive values, including subnormals. */
|
||||
#undef FLT_TRUE_MIN
|
||||
#undef DBL_TRUE_MIN
|
||||
#undef LDBL_TRUE_MIN
|
||||
#define FLT_TRUE_MIN __FLT_DENORM_MIN__
|
||||
#define DBL_TRUE_MIN __DBL_DENORM_MIN__
|
||||
#define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
|
||||
|
||||
#endif /* C11 */
|
||||
|
||||
#ifdef __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
/* Number of decimal digits for which conversions between decimal
|
||||
character strings and binary formats, in both directions, are
|
||||
correctly rounded. */
|
||||
#define CR_DECIMAL_DIG __UINTMAX_MAX__
|
||||
#endif
|
||||
|
||||
#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
/* Constants for _FloatN and _FloatNx types from TS 18661-3. See
|
||||
comments above for their semantics. */
|
||||
|
||||
#ifdef __FLT16_MANT_DIG__
|
||||
#undef FLT16_MANT_DIG
|
||||
#define FLT16_MANT_DIG __FLT16_MANT_DIG__
|
||||
#undef FLT16_DIG
|
||||
#define FLT16_DIG __FLT16_DIG__
|
||||
#undef FLT16_MIN_EXP
|
||||
#define FLT16_MIN_EXP __FLT16_MIN_EXP__
|
||||
#undef FLT16_MIN_10_EXP
|
||||
#define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__
|
||||
#undef FLT16_MAX_EXP
|
||||
#define FLT16_MAX_EXP __FLT16_MAX_EXP__
|
||||
#undef FLT16_MAX_10_EXP
|
||||
#define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__
|
||||
#undef FLT16_MAX
|
||||
#define FLT16_MAX __FLT16_MAX__
|
||||
#undef FLT16_EPSILON
|
||||
#define FLT16_EPSILON __FLT16_EPSILON__
|
||||
#undef FLT16_MIN
|
||||
#define FLT16_MIN __FLT16_MIN__
|
||||
#undef FLT16_DECIMAL_DIG
|
||||
#define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__
|
||||
#undef FLT16_TRUE_MIN
|
||||
#define FLT16_TRUE_MIN __FLT16_DENORM_MIN__
|
||||
#endif /* __FLT16_MANT_DIG__. */
|
||||
|
||||
#ifdef __FLT32_MANT_DIG__
|
||||
#undef FLT32_MANT_DIG
|
||||
#define FLT32_MANT_DIG __FLT32_MANT_DIG__
|
||||
#undef FLT32_DIG
|
||||
#define FLT32_DIG __FLT32_DIG__
|
||||
#undef FLT32_MIN_EXP
|
||||
#define FLT32_MIN_EXP __FLT32_MIN_EXP__
|
||||
#undef FLT32_MIN_10_EXP
|
||||
#define FLT32_MIN_10_EXP __FLT32_MIN_10_EXP__
|
||||
#undef FLT32_MAX_EXP
|
||||
#define FLT32_MAX_EXP __FLT32_MAX_EXP__
|
||||
#undef FLT32_MAX_10_EXP
|
||||
#define FLT32_MAX_10_EXP __FLT32_MAX_10_EXP__
|
||||
#undef FLT32_MAX
|
||||
#define FLT32_MAX __FLT32_MAX__
|
||||
#undef FLT32_EPSILON
|
||||
#define FLT32_EPSILON __FLT32_EPSILON__
|
||||
#undef FLT32_MIN
|
||||
#define FLT32_MIN __FLT32_MIN__
|
||||
#undef FLT32_DECIMAL_DIG
|
||||
#define FLT32_DECIMAL_DIG __FLT32_DECIMAL_DIG__
|
||||
#undef FLT32_TRUE_MIN
|
||||
#define FLT32_TRUE_MIN __FLT32_DENORM_MIN__
|
||||
#endif /* __FLT32_MANT_DIG__. */
|
||||
|
||||
#ifdef __FLT64_MANT_DIG__
|
||||
#undef FLT64_MANT_DIG
|
||||
#define FLT64_MANT_DIG __FLT64_MANT_DIG__
|
||||
#undef FLT64_DIG
|
||||
#define FLT64_DIG __FLT64_DIG__
|
||||
#undef FLT64_MIN_EXP
|
||||
#define FLT64_MIN_EXP __FLT64_MIN_EXP__
|
||||
#undef FLT64_MIN_10_EXP
|
||||
#define FLT64_MIN_10_EXP __FLT64_MIN_10_EXP__
|
||||
#undef FLT64_MAX_EXP
|
||||
#define FLT64_MAX_EXP __FLT64_MAX_EXP__
|
||||
#undef FLT64_MAX_10_EXP
|
||||
#define FLT64_MAX_10_EXP __FLT64_MAX_10_EXP__
|
||||
#undef FLT64_MAX
|
||||
#define FLT64_MAX __FLT64_MAX__
|
||||
#undef FLT64_EPSILON
|
||||
#define FLT64_EPSILON __FLT64_EPSILON__
|
||||
#undef FLT64_MIN
|
||||
#define FLT64_MIN __FLT64_MIN__
|
||||
#undef FLT64_DECIMAL_DIG
|
||||
#define FLT64_DECIMAL_DIG __FLT64_DECIMAL_DIG__
|
||||
#undef FLT64_TRUE_MIN
|
||||
#define FLT64_TRUE_MIN __FLT64_DENORM_MIN__
|
||||
#endif /* __FLT64_MANT_DIG__. */
|
||||
|
||||
#ifdef __FLT128_MANT_DIG__
|
||||
#undef FLT128_MANT_DIG
|
||||
#define FLT128_MANT_DIG __FLT128_MANT_DIG__
|
||||
#undef FLT128_DIG
|
||||
#define FLT128_DIG __FLT128_DIG__
|
||||
#undef FLT128_MIN_EXP
|
||||
#define FLT128_MIN_EXP __FLT128_MIN_EXP__
|
||||
#undef FLT128_MIN_10_EXP
|
||||
#define FLT128_MIN_10_EXP __FLT128_MIN_10_EXP__
|
||||
#undef FLT128_MAX_EXP
|
||||
#define FLT128_MAX_EXP __FLT128_MAX_EXP__
|
||||
#undef FLT128_MAX_10_EXP
|
||||
#define FLT128_MAX_10_EXP __FLT128_MAX_10_EXP__
|
||||
#undef FLT128_MAX
|
||||
#define FLT128_MAX __FLT128_MAX__
|
||||
#undef FLT128_EPSILON
|
||||
#define FLT128_EPSILON __FLT128_EPSILON__
|
||||
#undef FLT128_MIN
|
||||
#define FLT128_MIN __FLT128_MIN__
|
||||
#undef FLT128_DECIMAL_DIG
|
||||
#define FLT128_DECIMAL_DIG __FLT128_DECIMAL_DIG__
|
||||
#undef FLT128_TRUE_MIN
|
||||
#define FLT128_TRUE_MIN __FLT128_DENORM_MIN__
|
||||
#endif /* __FLT128_MANT_DIG__. */
|
||||
|
||||
#ifdef __FLT32X_MANT_DIG__
|
||||
#undef FLT32X_MANT_DIG
|
||||
#define FLT32X_MANT_DIG __FLT32X_MANT_DIG__
|
||||
#undef FLT32X_DIG
|
||||
#define FLT32X_DIG __FLT32X_DIG__
|
||||
#undef FLT32X_MIN_EXP
|
||||
#define FLT32X_MIN_EXP __FLT32X_MIN_EXP__
|
||||
#undef FLT32X_MIN_10_EXP
|
||||
#define FLT32X_MIN_10_EXP __FLT32X_MIN_10_EXP__
|
||||
#undef FLT32X_MAX_EXP
|
||||
#define FLT32X_MAX_EXP __FLT32X_MAX_EXP__
|
||||
#undef FLT32X_MAX_10_EXP
|
||||
#define FLT32X_MAX_10_EXP __FLT32X_MAX_10_EXP__
|
||||
#undef FLT32X_MAX
|
||||
#define FLT32X_MAX __FLT32X_MAX__
|
||||
#undef FLT32X_EPSILON
|
||||
#define FLT32X_EPSILON __FLT32X_EPSILON__
|
||||
#undef FLT32X_MIN
|
||||
#define FLT32X_MIN __FLT32X_MIN__
|
||||
#undef FLT32X_DECIMAL_DIG
|
||||
#define FLT32X_DECIMAL_DIG __FLT32X_DECIMAL_DIG__
|
||||
#undef FLT32X_TRUE_MIN
|
||||
#define FLT32X_TRUE_MIN __FLT32X_DENORM_MIN__
|
||||
#endif /* __FLT32X_MANT_DIG__. */
|
||||
|
||||
#ifdef __FLT64X_MANT_DIG__
|
||||
#undef FLT64X_MANT_DIG
|
||||
#define FLT64X_MANT_DIG __FLT64X_MANT_DIG__
|
||||
#undef FLT64X_DIG
|
||||
#define FLT64X_DIG __FLT64X_DIG__
|
||||
#undef FLT64X_MIN_EXP
|
||||
#define FLT64X_MIN_EXP __FLT64X_MIN_EXP__
|
||||
#undef FLT64X_MIN_10_EXP
|
||||
#define FLT64X_MIN_10_EXP __FLT64X_MIN_10_EXP__
|
||||
#undef FLT64X_MAX_EXP
|
||||
#define FLT64X_MAX_EXP __FLT64X_MAX_EXP__
|
||||
#undef FLT64X_MAX_10_EXP
|
||||
#define FLT64X_MAX_10_EXP __FLT64X_MAX_10_EXP__
|
||||
#undef FLT64X_MAX
|
||||
#define FLT64X_MAX __FLT64X_MAX__
|
||||
#undef FLT64X_EPSILON
|
||||
#define FLT64X_EPSILON __FLT64X_EPSILON__
|
||||
#undef FLT64X_MIN
|
||||
#define FLT64X_MIN __FLT64X_MIN__
|
||||
#undef FLT64X_DECIMAL_DIG
|
||||
#define FLT64X_DECIMAL_DIG __FLT64X_DECIMAL_DIG__
|
||||
#undef FLT64X_TRUE_MIN
|
||||
#define FLT64X_TRUE_MIN __FLT64X_DENORM_MIN__
|
||||
#endif /* __FLT64X_MANT_DIG__. */
|
||||
|
||||
#ifdef __FLT128X_MANT_DIG__
|
||||
#undef FLT128X_MANT_DIG
|
||||
#define FLT128X_MANT_DIG __FLT128X_MANT_DIG__
|
||||
#undef FLT128X_DIG
|
||||
#define FLT128X_DIG __FLT128X_DIG__
|
||||
#undef FLT128X_MIN_EXP
|
||||
#define FLT128X_MIN_EXP __FLT128X_MIN_EXP__
|
||||
#undef FLT128X_MIN_10_EXP
|
||||
#define FLT128X_MIN_10_EXP __FLT128X_MIN_10_EXP__
|
||||
#undef FLT128X_MAX_EXP
|
||||
#define FLT128X_MAX_EXP __FLT128X_MAX_EXP__
|
||||
#undef FLT128X_MAX_10_EXP
|
||||
#define FLT128X_MAX_10_EXP __FLT128X_MAX_10_EXP__
|
||||
#undef FLT128X_MAX
|
||||
#define FLT128X_MAX __FLT128X_MAX__
|
||||
#undef FLT128X_EPSILON
|
||||
#define FLT128X_EPSILON __FLT128X_EPSILON__
|
||||
#undef FLT128X_MIN
|
||||
#define FLT128X_MIN __FLT128X_MIN__
|
||||
#undef FLT128X_DECIMAL_DIG
|
||||
#define FLT128X_DECIMAL_DIG __FLT128X_DECIMAL_DIG__
|
||||
#undef FLT128X_TRUE_MIN
|
||||
#define FLT128X_TRUE_MIN __FLT128X_DENORM_MIN__
|
||||
#endif /* __FLT128X_MANT_DIG__. */
|
||||
|
||||
#endif /* __STDC_WANT_IEC_60559_TYPES_EXT__. */
|
||||
|
||||
#ifdef __STDC_WANT_DEC_FP__
|
||||
/* Draft Technical Report 24732, extension for decimal floating-point
|
||||
arithmetic: Characteristic of decimal floating types <float.h>. */
|
||||
|
||||
/* Number of base-FLT_RADIX digits in the significand, p. */
|
||||
#undef DEC32_MANT_DIG
|
||||
#undef DEC64_MANT_DIG
|
||||
#undef DEC128_MANT_DIG
|
||||
#define DEC32_MANT_DIG __DEC32_MANT_DIG__
|
||||
#define DEC64_MANT_DIG __DEC64_MANT_DIG__
|
||||
#define DEC128_MANT_DIG __DEC128_MANT_DIG__
|
||||
|
||||
/* Minimum exponent. */
|
||||
#undef DEC32_MIN_EXP
|
||||
#undef DEC64_MIN_EXP
|
||||
#undef DEC128_MIN_EXP
|
||||
#define DEC32_MIN_EXP __DEC32_MIN_EXP__
|
||||
#define DEC64_MIN_EXP __DEC64_MIN_EXP__
|
||||
#define DEC128_MIN_EXP __DEC128_MIN_EXP__
|
||||
|
||||
/* Maximum exponent. */
|
||||
#undef DEC32_MAX_EXP
|
||||
#undef DEC64_MAX_EXP
|
||||
#undef DEC128_MAX_EXP
|
||||
#define DEC32_MAX_EXP __DEC32_MAX_EXP__
|
||||
#define DEC64_MAX_EXP __DEC64_MAX_EXP__
|
||||
#define DEC128_MAX_EXP __DEC128_MAX_EXP__
|
||||
|
||||
/* Maximum representable finite decimal floating-point number
|
||||
(there are 6, 15, and 33 9s after the decimal points respectively). */
|
||||
#undef DEC32_MAX
|
||||
#undef DEC64_MAX
|
||||
#undef DEC128_MAX
|
||||
#define DEC32_MAX __DEC32_MAX__
|
||||
#define DEC64_MAX __DEC64_MAX__
|
||||
#define DEC128_MAX __DEC128_MAX__
|
||||
|
||||
/* The difference between 1 and the least value greater than 1 that is
|
||||
representable in the given floating point type. */
|
||||
#undef DEC32_EPSILON
|
||||
#undef DEC64_EPSILON
|
||||
#undef DEC128_EPSILON
|
||||
#define DEC32_EPSILON __DEC32_EPSILON__
|
||||
#define DEC64_EPSILON __DEC64_EPSILON__
|
||||
#define DEC128_EPSILON __DEC128_EPSILON__
|
||||
|
||||
/* Minimum normalized positive floating-point number. */
|
||||
#undef DEC32_MIN
|
||||
#undef DEC64_MIN
|
||||
#undef DEC128_MIN
|
||||
#define DEC32_MIN __DEC32_MIN__
|
||||
#define DEC64_MIN __DEC64_MIN__
|
||||
#define DEC128_MIN __DEC128_MIN__
|
||||
|
||||
/* Minimum subnormal positive floating-point number. */
|
||||
#undef DEC32_SUBNORMAL_MIN
|
||||
#undef DEC64_SUBNORMAL_MIN
|
||||
#undef DEC128_SUBNORMAL_MIN
|
||||
#define DEC32_SUBNORMAL_MIN __DEC32_SUBNORMAL_MIN__
|
||||
#define DEC64_SUBNORMAL_MIN __DEC64_SUBNORMAL_MIN__
|
||||
#define DEC128_SUBNORMAL_MIN __DEC128_SUBNORMAL_MIN__
|
||||
|
||||
/* The floating-point expression evaluation method.
|
||||
-1 indeterminate
|
||||
0 evaluate all operations and constants just to the range and
|
||||
precision of the type
|
||||
1 evaluate operations and constants of type _Decimal32
|
||||
and _Decimal64 to the range and precision of the _Decimal64
|
||||
type, evaluate _Decimal128 operations and constants to the
|
||||
range and precision of the _Decimal128 type;
|
||||
2 evaluate all operations and constants to the range and
|
||||
precision of the _Decimal128 type. */
|
||||
|
||||
#undef DEC_EVAL_METHOD
|
||||
#define DEC_EVAL_METHOD __DEC_EVAL_METHOD__
|
||||
|
||||
#endif /* __STDC_WANT_DEC_FP__ */
|
||||
|
||||
#endif /* _FLOAT_H___ */
|
||||
41
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/gcov.h
Normal file
41
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/gcov.h
Normal file
@ -0,0 +1,41 @@
|
||||
/* GCOV interface routines.
|
||||
Copyright (C) 2017-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef GCC_GCOV_H
|
||||
#define GCC_GCOV_H
|
||||
|
||||
/* Set all counters to zero. */
|
||||
|
||||
extern void __gcov_reset (void);
|
||||
|
||||
/* Write profile information to a file. */
|
||||
|
||||
extern void __gcov_dump (void);
|
||||
|
||||
/* Write profile information to a file and reset counters to zero.
|
||||
The function does operations under a mutex. */
|
||||
|
||||
extern void __gcov_flush (void);
|
||||
|
||||
#endif /* GCC_GCOV_H */
|
||||
45
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/iso646.h
Normal file
45
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/iso646.h
Normal file
@ -0,0 +1,45 @@
|
||||
/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/*
|
||||
* ISO C Standard: 7.9 Alternative spellings <iso646.h>
|
||||
*/
|
||||
|
||||
#ifndef _ISO646_H
|
||||
#define _ISO646_H
|
||||
|
||||
#ifndef __cplusplus
|
||||
#define and &&
|
||||
#define and_eq &=
|
||||
#define bitand &
|
||||
#define bitor |
|
||||
#define compl ~
|
||||
#define not !
|
||||
#define not_eq !=
|
||||
#define or ||
|
||||
#define or_eq |=
|
||||
#define xor ^
|
||||
#define xor_eq ^=
|
||||
#endif
|
||||
|
||||
#endif
|
||||
358
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/larchintrin.h
Normal file
358
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/larchintrin.h
Normal file
@ -0,0 +1,358 @@
|
||||
/* Intrinsics for LoongArch BASE operations.
|
||||
Copyright (C) 2020-2022 Free Software Foundation, Inc.
|
||||
Contributed by Loongson Ltd.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 3, or (at your
|
||||
option) any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _GCC_LOONGARCH_BASE_INTRIN_H
|
||||
#define _GCC_LOONGARCH_BASE_INTRIN_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct drdtime
|
||||
{
|
||||
unsigned long dvalue;
|
||||
unsigned long dtimeid;
|
||||
} __drdtime_t;
|
||||
|
||||
typedef struct rdtime
|
||||
{
|
||||
unsigned int value;
|
||||
unsigned int timeid;
|
||||
} __rdtime_t;
|
||||
|
||||
#ifdef __loongarch64
|
||||
extern __inline __drdtime_t
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__rdtime_d (void)
|
||||
{
|
||||
__drdtime_t __drdtime;
|
||||
__asm__ volatile (
|
||||
"rdtime.d\t%[val],%[tid]\n\t"
|
||||
: [val]"=&r"(__drdtime.dvalue),[tid]"=&r"(__drdtime.dtimeid)
|
||||
:);
|
||||
return __drdtime;
|
||||
}
|
||||
#endif
|
||||
|
||||
extern __inline __rdtime_t
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__rdtimeh_w (void)
|
||||
{
|
||||
__rdtime_t __rdtime;
|
||||
__asm__ volatile (
|
||||
"rdtimeh.w\t%[val],%[tid]\n\t"
|
||||
: [val]"=&r"(__rdtime.value),[tid]"=&r"(__rdtime.timeid)
|
||||
:);
|
||||
return __rdtime;
|
||||
}
|
||||
|
||||
extern __inline __rdtime_t
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__rdtimel_w (void)
|
||||
{
|
||||
__rdtime_t __rdtime;
|
||||
__asm__ volatile (
|
||||
"rdtimel.w\t%[val],%[tid]\n\t"
|
||||
: [val]"=&r"(__rdtime.value),[tid]"=&r"(__rdtime.timeid)
|
||||
:);
|
||||
return __rdtime;
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rj, fcsr. */
|
||||
/* Data types in instruction templates: USI, UQI. */
|
||||
#define __movfcsr2gr(/*ui5*/ _1) __builtin_loongarch_movfcsr2gr ((_1));
|
||||
|
||||
/* Assembly instruction format: fcsr, rj. */
|
||||
/* Data types in instruction templates: VOID, UQI, USI. */
|
||||
#define __movgr2fcsr(/*ui5*/ _1, _2) \
|
||||
__builtin_loongarch_movgr2fcsr ((_1), (unsigned int) _2);
|
||||
|
||||
#if defined __loongarch64
|
||||
/* Assembly instruction format: ui5, rj, si12. */
|
||||
/* Data types in instruction templates: VOID, USI, UDI, SI. */
|
||||
#define __cacop_d(/*ui5*/ _1, /*unsigned long int*/ _2, /*si12*/ _3) \
|
||||
((void) __builtin_loongarch_cacop_d ((_1), (unsigned long int) (_2), (_3)))
|
||||
#elif (defined __loongarch32) || (defined __loongarch32r)
|
||||
#else
|
||||
#error "Unsupported ABI."
|
||||
#endif
|
||||
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: USI, USI. */
|
||||
extern __inline unsigned int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__cpucfg (unsigned int _1)
|
||||
{
|
||||
return (unsigned int) __builtin_loongarch_cpucfg ((unsigned int) _1);
|
||||
}
|
||||
|
||||
#ifdef __loongarch64
|
||||
/* Assembly instruction format: rj, rk. */
|
||||
/* Data types in instruction templates: DI, DI. */
|
||||
extern __inline void
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__asrtle_d (long int _1, long int _2)
|
||||
{
|
||||
__builtin_loongarch_asrtle_d ((long int) _1, (long int) _2);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rj, rk. */
|
||||
/* Data types in instruction templates: DI, DI. */
|
||||
extern __inline void
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__asrtgt_d (long int _1, long int _2)
|
||||
{
|
||||
__builtin_loongarch_asrtgt_d ((long int) _1, (long int) _2);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined __loongarch64
|
||||
/* Assembly instruction format: rd, rj, ui5. */
|
||||
/* Data types in instruction templates: DI, DI, UQI. */
|
||||
#define __lddir_d(/*long int*/ _1, /*ui5*/ _2) \
|
||||
((long int) __builtin_loongarch_lddir_d ((long int) (_1), (_2)))
|
||||
#elif (defined __loongarch32) || (defined __loongarch32r)
|
||||
#else
|
||||
#error "Unsupported ABI."
|
||||
#endif
|
||||
|
||||
#if defined __loongarch64
|
||||
/* Assembly instruction format: rj, ui5. */
|
||||
/* Data types in instruction templates: VOID, DI, UQI. */
|
||||
#define __ldpte_d(/*long int*/ _1, /*ui5*/ _2) \
|
||||
((void) __builtin_loongarch_ldpte_d ((long int) (_1), (_2)))
|
||||
#elif (defined __loongarch32) || (defined __loongarch32r)
|
||||
#else
|
||||
#error "Unsupported ABI."
|
||||
#endif
|
||||
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, QI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crc_w_b_w (char _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crc_w_b_w ((char) _1, (int) _2);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, HI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crc_w_h_w (short _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crc_w_h_w ((short) _1, (int) _2);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, SI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crc_w_w_w (int _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crc_w_w_w ((int) _1, (int) _2);
|
||||
}
|
||||
|
||||
#ifdef __loongarch64
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, DI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crc_w_d_w (long int _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crc_w_d_w ((long int) _1, (int) _2);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, QI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crcc_w_b_w (char _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crcc_w_b_w ((char) _1, (int) _2);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, HI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crcc_w_h_w (short _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crcc_w_h_w ((short) _1, (int) _2);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, SI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crcc_w_w_w (int _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crcc_w_w_w ((int) _1, (int) _2);
|
||||
}
|
||||
|
||||
#ifdef __loongarch64
|
||||
/* Assembly instruction format: rd, rj, rk. */
|
||||
/* Data types in instruction templates: SI, DI, SI. */
|
||||
extern __inline int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__crcc_w_d_w (long int _1, int _2)
|
||||
{
|
||||
return (int) __builtin_loongarch_crcc_w_d_w ((long int) _1, (int) _2);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Assembly instruction format: rd, ui14. */
|
||||
/* Data types in instruction templates: USI, USI. */
|
||||
#define __csrrd_w(/*ui14*/ _1) \
|
||||
((unsigned int) __builtin_loongarch_csrrd_w ((_1)))
|
||||
|
||||
/* Assembly instruction format: rd, ui14. */
|
||||
/* Data types in instruction templates: USI, USI, USI. */
|
||||
#define __csrwr_w(/*unsigned int*/ _1, /*ui14*/ _2) \
|
||||
((unsigned int) __builtin_loongarch_csrwr_w ((unsigned int) (_1), (_2)))
|
||||
|
||||
/* Assembly instruction format: rd, rj, ui14. */
|
||||
/* Data types in instruction templates: USI, USI, USI, USI. */
|
||||
#define __csrxchg_w(/*unsigned int*/ _1, /*unsigned int*/ _2, /*ui14*/ _3) \
|
||||
((unsigned int) __builtin_loongarch_csrxchg_w ((unsigned int) (_1), \
|
||||
(unsigned int) (_2), (_3)))
|
||||
|
||||
#ifdef __loongarch64
|
||||
/* Assembly instruction format: rd, ui14. */
|
||||
/* Data types in instruction templates: UDI, USI. */
|
||||
#define __csrrd_d(/*ui14*/ _1) \
|
||||
((unsigned long int) __builtin_loongarch_csrrd_d ((_1)))
|
||||
|
||||
/* Assembly instruction format: rd, ui14. */
|
||||
/* Data types in instruction templates: UDI, UDI, USI. */
|
||||
#define __csrwr_d(/*unsigned long int*/ _1, /*ui14*/ _2) \
|
||||
((unsigned long int) __builtin_loongarch_csrwr_d ((unsigned long int) (_1), \
|
||||
(_2)))
|
||||
|
||||
/* Assembly instruction format: rd, rj, ui14. */
|
||||
/* Data types in instruction templates: UDI, UDI, UDI, USI. */
|
||||
#define __csrxchg_d(/*unsigned long int*/ _1, /*unsigned long int*/ _2, \
|
||||
/*ui14*/ _3) \
|
||||
((unsigned long int) __builtin_loongarch_csrxchg_d ( \
|
||||
(unsigned long int) (_1), (unsigned long int) (_2), (_3)))
|
||||
#endif
|
||||
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: UQI, USI. */
|
||||
extern __inline unsigned char
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrrd_b (unsigned int _1)
|
||||
{
|
||||
return (unsigned char) __builtin_loongarch_iocsrrd_b ((unsigned int) _1);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: UHI, USI. */
|
||||
extern __inline unsigned char
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrrd_h (unsigned int _1)
|
||||
{
|
||||
return (unsigned short) __builtin_loongarch_iocsrrd_h ((unsigned int) _1);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: USI, USI. */
|
||||
extern __inline unsigned int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrrd_w (unsigned int _1)
|
||||
{
|
||||
return (unsigned int) __builtin_loongarch_iocsrrd_w ((unsigned int) _1);
|
||||
}
|
||||
|
||||
#ifdef __loongarch64
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: UDI, USI. */
|
||||
extern __inline unsigned long int
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrrd_d (unsigned int _1)
|
||||
{
|
||||
return (unsigned long int) __builtin_loongarch_iocsrrd_d ((unsigned int) _1);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: VOID, UQI, USI. */
|
||||
extern __inline void
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrwr_b (unsigned char _1, unsigned int _2)
|
||||
{
|
||||
__builtin_loongarch_iocsrwr_b ((unsigned char) _1, (unsigned int) _2);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: VOID, UHI, USI. */
|
||||
extern __inline void
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrwr_h (unsigned short _1, unsigned int _2)
|
||||
{
|
||||
__builtin_loongarch_iocsrwr_h ((unsigned short) _1, (unsigned int) _2);
|
||||
}
|
||||
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: VOID, USI, USI. */
|
||||
extern __inline void
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrwr_w (unsigned int _1, unsigned int _2)
|
||||
{
|
||||
__builtin_loongarch_iocsrwr_w ((unsigned int) _1, (unsigned int) _2);
|
||||
}
|
||||
|
||||
#ifdef __loongarch64
|
||||
/* Assembly instruction format: rd, rj. */
|
||||
/* Data types in instruction templates: VOID, UDI, USI. */
|
||||
extern __inline void
|
||||
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
|
||||
__iocsrwr_d (unsigned long int _1, unsigned int _2)
|
||||
{
|
||||
__builtin_loongarch_iocsrwr_d ((unsigned long int) _1, (unsigned int) _2);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Assembly instruction format: ui15. */
|
||||
/* Data types in instruction templates: USI. */
|
||||
#define __dbar(/*ui15*/ _1) __builtin_loongarch_dbar ((_1))
|
||||
|
||||
/* Assembly instruction format: ui15. */
|
||||
/* Data types in instruction templates: USI. */
|
||||
#define __ibar(/*ui15*/ _1) __builtin_loongarch_ibar ((_1))
|
||||
|
||||
/* Assembly instruction format: ui15. */
|
||||
/* Data types in instruction templates: USI. */
|
||||
#define __syscall(/*ui15*/ _1) __builtin_loongarch_syscall ((_1))
|
||||
|
||||
/* Assembly instruction format: ui15. */
|
||||
/* Data types in instruction templates: USI. */
|
||||
#define __break(/*ui15*/ _1) __builtin_loongarch_break ((_1))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _GCC_LOONGARCH_BASE_INTRIN_H */
|
||||
5139
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/lasxintrin.h
Normal file
5139
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/lasxintrin.h
Normal file
File diff suppressed because it is too large
Load Diff
4980
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/lsxintrin.h
Normal file
4980
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/lsxintrin.h
Normal file
File diff suppressed because it is too large
Load Diff
170
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/omp.h
Normal file
170
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/omp.h
Normal file
@ -0,0 +1,170 @@
|
||||
/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
|
||||
Contributed by Richard Henderson <rth@redhat.com>.
|
||||
|
||||
This file is part of the GNU Offloading and Multi Processing Library
|
||||
(libgomp).
|
||||
|
||||
Libgomp is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _OMP_H
|
||||
#define _OMP_H 1
|
||||
|
||||
#ifndef _LIBGOMP_OMP_LOCK_DEFINED
|
||||
#define _LIBGOMP_OMP_LOCK_DEFINED 1
|
||||
/* These two structures get edited by the libgomp build process to
|
||||
reflect the shape of the two types. Their internals are private
|
||||
to the library. */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char _x[4]
|
||||
__attribute__((__aligned__(4)));
|
||||
} omp_lock_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
#if defined(__linux__)
|
||||
unsigned char _x[8 + sizeof (void *)]
|
||||
__attribute__((__aligned__(sizeof (void *))));
|
||||
#else
|
||||
unsigned char _x[12]
|
||||
__attribute__((__aligned__(4)));
|
||||
#endif
|
||||
} omp_nest_lock_t;
|
||||
#endif
|
||||
|
||||
typedef enum omp_sched_t
|
||||
{
|
||||
omp_sched_static = 1,
|
||||
omp_sched_dynamic = 2,
|
||||
omp_sched_guided = 3,
|
||||
omp_sched_auto = 4
|
||||
} omp_sched_t;
|
||||
|
||||
typedef enum omp_proc_bind_t
|
||||
{
|
||||
omp_proc_bind_false = 0,
|
||||
omp_proc_bind_true = 1,
|
||||
omp_proc_bind_master = 2,
|
||||
omp_proc_bind_close = 3,
|
||||
omp_proc_bind_spread = 4
|
||||
} omp_proc_bind_t;
|
||||
|
||||
typedef enum omp_lock_hint_t
|
||||
{
|
||||
omp_lock_hint_none = 0,
|
||||
omp_lock_hint_uncontended = 1,
|
||||
omp_lock_hint_contended = 2,
|
||||
omp_lock_hint_nonspeculative = 4,
|
||||
omp_lock_hint_speculative = 8,
|
||||
} omp_lock_hint_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
# define __GOMP_NOTHROW throw ()
|
||||
#else
|
||||
# define __GOMP_NOTHROW __attribute__((__nothrow__))
|
||||
#endif
|
||||
|
||||
extern void omp_set_num_threads (int) __GOMP_NOTHROW;
|
||||
extern int omp_get_num_threads (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_max_threads (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_thread_num (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_num_procs (void) __GOMP_NOTHROW;
|
||||
|
||||
extern int omp_in_parallel (void) __GOMP_NOTHROW;
|
||||
|
||||
extern void omp_set_dynamic (int) __GOMP_NOTHROW;
|
||||
extern int omp_get_dynamic (void) __GOMP_NOTHROW;
|
||||
|
||||
extern void omp_set_nested (int) __GOMP_NOTHROW;
|
||||
extern int omp_get_nested (void) __GOMP_NOTHROW;
|
||||
|
||||
extern void omp_init_lock (omp_lock_t *) __GOMP_NOTHROW;
|
||||
extern void omp_init_lock_with_hint (omp_lock_t *, omp_lock_hint_t)
|
||||
__GOMP_NOTHROW;
|
||||
extern void omp_destroy_lock (omp_lock_t *) __GOMP_NOTHROW;
|
||||
extern void omp_set_lock (omp_lock_t *) __GOMP_NOTHROW;
|
||||
extern void omp_unset_lock (omp_lock_t *) __GOMP_NOTHROW;
|
||||
extern int omp_test_lock (omp_lock_t *) __GOMP_NOTHROW;
|
||||
|
||||
extern void omp_init_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
|
||||
extern void omp_init_nest_lock_with_hint (omp_nest_lock_t *, omp_lock_hint_t)
|
||||
__GOMP_NOTHROW;
|
||||
extern void omp_destroy_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
|
||||
extern void omp_set_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
|
||||
extern void omp_unset_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
|
||||
extern int omp_test_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
|
||||
|
||||
extern double omp_get_wtime (void) __GOMP_NOTHROW;
|
||||
extern double omp_get_wtick (void) __GOMP_NOTHROW;
|
||||
|
||||
extern void omp_set_schedule (omp_sched_t, int) __GOMP_NOTHROW;
|
||||
extern void omp_get_schedule (omp_sched_t *, int *) __GOMP_NOTHROW;
|
||||
extern int omp_get_thread_limit (void) __GOMP_NOTHROW;
|
||||
extern void omp_set_max_active_levels (int) __GOMP_NOTHROW;
|
||||
extern int omp_get_max_active_levels (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_level (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_ancestor_thread_num (int) __GOMP_NOTHROW;
|
||||
extern int omp_get_team_size (int) __GOMP_NOTHROW;
|
||||
extern int omp_get_active_level (void) __GOMP_NOTHROW;
|
||||
|
||||
extern int omp_in_final (void) __GOMP_NOTHROW;
|
||||
|
||||
extern int omp_get_cancellation (void) __GOMP_NOTHROW;
|
||||
extern omp_proc_bind_t omp_get_proc_bind (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_num_places (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_place_num_procs (int) __GOMP_NOTHROW;
|
||||
extern void omp_get_place_proc_ids (int, int *) __GOMP_NOTHROW;
|
||||
extern int omp_get_place_num (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_partition_num_places (void) __GOMP_NOTHROW;
|
||||
extern void omp_get_partition_place_nums (int *) __GOMP_NOTHROW;
|
||||
|
||||
extern void omp_set_default_device (int) __GOMP_NOTHROW;
|
||||
extern int omp_get_default_device (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_num_devices (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_num_teams (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_team_num (void) __GOMP_NOTHROW;
|
||||
|
||||
extern int omp_is_initial_device (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_initial_device (void) __GOMP_NOTHROW;
|
||||
extern int omp_get_max_task_priority (void) __GOMP_NOTHROW;
|
||||
|
||||
extern void *omp_target_alloc (__SIZE_TYPE__, int) __GOMP_NOTHROW;
|
||||
extern void omp_target_free (void *, int) __GOMP_NOTHROW;
|
||||
extern int omp_target_is_present (void *, int) __GOMP_NOTHROW;
|
||||
extern int omp_target_memcpy (void *, void *, __SIZE_TYPE__, __SIZE_TYPE__,
|
||||
__SIZE_TYPE__, int, int) __GOMP_NOTHROW;
|
||||
extern int omp_target_memcpy_rect (void *, void *, __SIZE_TYPE__, int,
|
||||
const __SIZE_TYPE__ *,
|
||||
const __SIZE_TYPE__ *,
|
||||
const __SIZE_TYPE__ *,
|
||||
const __SIZE_TYPE__ *,
|
||||
const __SIZE_TYPE__ *, int, int)
|
||||
__GOMP_NOTHROW;
|
||||
extern int omp_target_associate_ptr (void *, void *, __SIZE_TYPE__,
|
||||
__SIZE_TYPE__, int) __GOMP_NOTHROW;
|
||||
extern int omp_target_disassociate_ptr (void *, int) __GOMP_NOTHROW;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _OMP_H */
|
||||
130
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/openacc.h
Normal file
130
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/openacc.h
Normal file
@ -0,0 +1,130 @@
|
||||
/* OpenACC Runtime Library User-facing Declarations
|
||||
|
||||
Copyright (C) 2013-2018 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by Mentor Embedded.
|
||||
|
||||
This file is part of the GNU Offloading and Multi Processing Library
|
||||
(libgomp).
|
||||
|
||||
Libgomp is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _OPENACC_H
|
||||
#define _OPENACC_H 1
|
||||
|
||||
/* The OpenACC standard is silent on whether or not including <openacc.h>
|
||||
might or must not include other header files. We chose to include
|
||||
some. */
|
||||
#include <stddef.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if __cplusplus >= 201103
|
||||
# define __GOACC_NOTHROW noexcept
|
||||
#elif __cplusplus
|
||||
# define __GOACC_NOTHROW throw ()
|
||||
#else /* Not C++ */
|
||||
# define __GOACC_NOTHROW __attribute__ ((__nothrow__))
|
||||
#endif
|
||||
|
||||
/* Types */
|
||||
typedef enum acc_device_t {
|
||||
/* Keep in sync with include/gomp-constants.h. */
|
||||
acc_device_none = 0,
|
||||
acc_device_default = 1,
|
||||
acc_device_host = 2,
|
||||
/* acc_device_host_nonshm = 3 removed. */
|
||||
acc_device_not_host = 4,
|
||||
acc_device_nvidia = 5,
|
||||
_ACC_device_hwm,
|
||||
/* Ensure enumeration is layout compatible with int. */
|
||||
_ACC_highest = __INT_MAX__,
|
||||
_ACC_neg = -1
|
||||
} acc_device_t;
|
||||
|
||||
typedef enum acc_async_t {
|
||||
/* Keep in sync with include/gomp-constants.h. */
|
||||
acc_async_noval = -1,
|
||||
acc_async_sync = -2
|
||||
} acc_async_t;
|
||||
|
||||
int acc_get_num_devices (acc_device_t) __GOACC_NOTHROW;
|
||||
void acc_set_device_type (acc_device_t) __GOACC_NOTHROW;
|
||||
acc_device_t acc_get_device_type (void) __GOACC_NOTHROW;
|
||||
void acc_set_device_num (int, acc_device_t) __GOACC_NOTHROW;
|
||||
int acc_get_device_num (acc_device_t) __GOACC_NOTHROW;
|
||||
int acc_async_test (int) __GOACC_NOTHROW;
|
||||
int acc_async_test_all (void) __GOACC_NOTHROW;
|
||||
void acc_wait (int) __GOACC_NOTHROW;
|
||||
void acc_async_wait (int) __GOACC_NOTHROW;
|
||||
void acc_wait_async (int, int) __GOACC_NOTHROW;
|
||||
void acc_wait_all (void) __GOACC_NOTHROW;
|
||||
void acc_async_wait_all (void) __GOACC_NOTHROW;
|
||||
void acc_wait_all_async (int) __GOACC_NOTHROW;
|
||||
void acc_init (acc_device_t) __GOACC_NOTHROW;
|
||||
void acc_shutdown (acc_device_t) __GOACC_NOTHROW;
|
||||
#ifdef __cplusplus
|
||||
int acc_on_device (int __arg) __GOACC_NOTHROW;
|
||||
#else
|
||||
int acc_on_device (acc_device_t __arg) __GOACC_NOTHROW;
|
||||
#endif
|
||||
void *acc_malloc (size_t) __GOACC_NOTHROW;
|
||||
void acc_free (void *) __GOACC_NOTHROW;
|
||||
/* Some of these would be more correct with const qualifiers, but
|
||||
the standard specifies otherwise. */
|
||||
void *acc_copyin (void *, size_t) __GOACC_NOTHROW;
|
||||
void *acc_present_or_copyin (void *, size_t) __GOACC_NOTHROW;
|
||||
void *acc_pcopyin (void *, size_t) __GOACC_NOTHROW;
|
||||
void *acc_create (void *, size_t) __GOACC_NOTHROW;
|
||||
void *acc_present_or_create (void *, size_t) __GOACC_NOTHROW;
|
||||
void *acc_pcreate (void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_copyout (void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_delete (void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_update_device (void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_update_self (void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_map_data (void *, void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_unmap_data (void *) __GOACC_NOTHROW;
|
||||
void *acc_deviceptr (void *) __GOACC_NOTHROW;
|
||||
void *acc_hostptr (void *) __GOACC_NOTHROW;
|
||||
int acc_is_present (void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_memcpy_to_device (void *, void *, size_t) __GOACC_NOTHROW;
|
||||
void acc_memcpy_from_device (void *, void *, size_t) __GOACC_NOTHROW;
|
||||
|
||||
/* CUDA-specific routines. */
|
||||
void *acc_get_current_cuda_device (void) __GOACC_NOTHROW;
|
||||
void *acc_get_current_cuda_context (void) __GOACC_NOTHROW;
|
||||
void *acc_get_cuda_stream (int) __GOACC_NOTHROW;
|
||||
int acc_set_cuda_stream (int, void *) __GOACC_NOTHROW;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
/* Forwarding function with correctly typed arg. */
|
||||
|
||||
#pragma acc routine seq
|
||||
inline int acc_on_device (acc_device_t __arg) __GOACC_NOTHROW
|
||||
{
|
||||
return acc_on_device ((int) __arg);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _OPENACC_H */
|
||||
65
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/ssp.h
Normal file
65
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/ssp.h
Normal file
@ -0,0 +1,65 @@
|
||||
/* Object size checking support macros.
|
||||
Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
||||
#ifndef _SSP_H
|
||||
#define _SSP_H 1
|
||||
|
||||
#if _FORTIFY_SOURCE > 0 && __OPTIMIZE__ > 0 \
|
||||
&& defined __GNUC__ \
|
||||
&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) \
|
||||
&& !defined __cplusplus
|
||||
# if _FORTIFY_SOURCE == 1
|
||||
# define __SSP_FORTIFY_LEVEL 1
|
||||
# elif _FORTIFY_SOURCE > 1
|
||||
# define __SSP_FORTIFY_LEVEL 2
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __SSP_FORTIFY_LEVEL > 0
|
||||
# include <stddef.h>
|
||||
# define __ssp_bos(ptr) __builtin_object_size (ptr, __SSP_FORTIFY_LEVEL > 1)
|
||||
# define __ssp_bos0(ptr) __builtin_object_size (ptr, 0)
|
||||
|
||||
# define __SSP_REDIRECT(name, proto, alias) \
|
||||
name proto __asm__ (__SSP_ASMNAME (#alias))
|
||||
# define __SSP_ASMNAME(cname) __SSP_ASMNAME2 (__USER_LABEL_PREFIX__, cname)
|
||||
# define __SSP_ASMNAME2(prefix, cname) __SSP_ASMNAME3 (prefix) cname
|
||||
# define __SSP_ASMNAME3(prefix) #prefix
|
||||
|
||||
# undef __SSP_HAVE_VSNPRINTF
|
||||
|
||||
extern void __chk_fail (void) __attribute__((__noreturn__));
|
||||
#endif
|
||||
|
||||
#endif /* _SSP_H */
|
||||
100
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/stdio.h
Normal file
100
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/stdio.h
Normal file
@ -0,0 +1,100 @@
|
||||
/* Checking macros for stdio functions.
|
||||
Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
||||
#ifndef _SSP_STDIO_H
|
||||
#define _SSP_STDIO_H 1
|
||||
|
||||
#include <ssp.h>
|
||||
#include_next <stdio.h>
|
||||
|
||||
#if __SSP_FORTIFY_LEVEL > 0
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#undef sprintf
|
||||
#undef vsprintf
|
||||
#undef snprintf
|
||||
#undef vsnprintf
|
||||
#undef gets
|
||||
#undef fgets
|
||||
|
||||
extern int __sprintf_chk (char *__restrict__ __s, int __flag, size_t __slen,
|
||||
__const char *__restrict__ __format, ...);
|
||||
extern int __vsprintf_chk (char *__restrict__ __s, int __flag, size_t __slen,
|
||||
__const char *__restrict__ __format,
|
||||
va_list __ap);
|
||||
|
||||
#define sprintf(str, ...) \
|
||||
__builtin___sprintf_chk (str, 0, __ssp_bos (str), \
|
||||
__VA_ARGS__)
|
||||
#define vsprintf(str, fmt, ap) \
|
||||
__builtin___vsprintf_chk (str, 0, __ssp_bos (str), fmt, ap)
|
||||
|
||||
extern int __snprintf_chk (char *__restrict__ __s, size_t __n, int __flag,
|
||||
size_t __slen, __const char *__restrict__ __format,
|
||||
...);
|
||||
extern int __vsnprintf_chk (char *__restrict__ __s, size_t __n, int __flag,
|
||||
size_t __slen, __const char *__restrict__ __format,
|
||||
va_list __ap);
|
||||
|
||||
#define snprintf(str, len, ...) \
|
||||
__builtin___snprintf_chk (str, len, 0, __ssp_bos (str), __VA_ARGS__)
|
||||
#define vsnprintf(str, len, fmt, ap) \
|
||||
__builtin___vsnprintf_chk (str, len, 0, __ssp_bos (str), fmt, ap)
|
||||
|
||||
extern char *__gets_chk (char *__str, size_t);
|
||||
extern char *__SSP_REDIRECT (__gets_alias, (char *__str), gets);
|
||||
|
||||
extern inline __attribute__((__always_inline__)) char *
|
||||
gets (char *__str)
|
||||
{
|
||||
if (__ssp_bos (__str) != (size_t) -1)
|
||||
return __gets_chk (__str, __ssp_bos (__str));
|
||||
return __gets_alias (__str);
|
||||
}
|
||||
|
||||
extern char *__SSP_REDIRECT (__fgets_alias,
|
||||
(char *__restrict__ __s, int __n,
|
||||
FILE *__restrict__ __stream), fgets);
|
||||
|
||||
extern inline __attribute__((__always_inline__)) char *
|
||||
fgets (char *__restrict__ __s, int __n, FILE *__restrict__ __stream)
|
||||
{
|
||||
if (__ssp_bos (__s) != (size_t) -1 && (size_t) __n > __ssp_bos (__s))
|
||||
__chk_fail ();
|
||||
return __fgets_alias (__s, __n, __stream);
|
||||
}
|
||||
|
||||
#endif /* __SSP_FORTIFY_LEVEL > 0 */
|
||||
#endif /* _SSP_STDIO_H */
|
||||
167
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/string.h
Normal file
167
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/string.h
Normal file
@ -0,0 +1,167 @@
|
||||
/* Checking macros for string functions.
|
||||
Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
||||
#ifndef _SSP_STRING_H
|
||||
#define _SSP_STRING_H 1
|
||||
|
||||
#include <ssp.h>
|
||||
#include_next <string.h>
|
||||
|
||||
#if __SSP_FORTIFY_LEVEL > 0
|
||||
|
||||
#undef memcpy
|
||||
#undef memmove
|
||||
#undef memset
|
||||
#undef strcat
|
||||
#undef strcpy
|
||||
#undef strncat
|
||||
#undef strncpy
|
||||
#undef mempcpy
|
||||
#undef stpcpy
|
||||
#undef bcopy
|
||||
#undef bzero
|
||||
|
||||
#define memcpy(dest, src, len) \
|
||||
((__ssp_bos0 (dest) != (size_t) -1) \
|
||||
? __builtin___memcpy_chk (dest, src, len, __ssp_bos0 (dest)) \
|
||||
: __memcpy_ichk (dest, src, len))
|
||||
static inline __attribute__((__always_inline__)) void *
|
||||
__memcpy_ichk (void *__restrict__ __dest, const void *__restrict__ __src,
|
||||
size_t __len)
|
||||
{
|
||||
return __builtin___memcpy_chk (__dest, __src, __len, __ssp_bos0 (__dest));
|
||||
}
|
||||
|
||||
|
||||
#define memmove(dest, src, len) \
|
||||
((__ssp_bos0 (dest) != (size_t) -1) \
|
||||
? __builtin___memmove_chk (dest, src, len, __ssp_bos0 (dest)) \
|
||||
: __memmove_ichk (dest, src, len))
|
||||
static inline __attribute__((__always_inline__)) void *
|
||||
__memmove_ichk (void *__dest, const void *__src, size_t __len)
|
||||
{
|
||||
return __builtin___memmove_chk (__dest, __src, __len, __ssp_bos0 (__dest));
|
||||
}
|
||||
|
||||
|
||||
#define mempcpy(dest, src, len) \
|
||||
((__ssp_bos0 (dest) != (size_t) -1) \
|
||||
? __builtin___mempcpy_chk (dest, src, len, __ssp_bos0 (dest)) \
|
||||
: __mempcpy_ichk (dest, src, len))
|
||||
static inline __attribute__((__always_inline__)) void *
|
||||
__mempcpy_ichk (void *__restrict__ __dest, const void *__restrict__ __src,
|
||||
size_t __len)
|
||||
{
|
||||
return __builtin___mempcpy_chk (__dest, __src, __len, __ssp_bos0 (__dest));
|
||||
}
|
||||
|
||||
|
||||
#define memset(dest, ch, len) \
|
||||
((__ssp_bos0 (dest) != (size_t) -1) \
|
||||
? __builtin___memset_chk (dest, ch, len, __ssp_bos0 (dest)) \
|
||||
: __memset_ichk (dest, ch, len))
|
||||
static inline __attribute__((__always_inline__)) void *
|
||||
__memset_ichk (void *__dest, int __ch, size_t __len)
|
||||
{
|
||||
return __builtin___memset_chk (__dest, __ch, __len, __ssp_bos0 (__dest));
|
||||
}
|
||||
|
||||
#define bcopy(src, dest, len) ((void) \
|
||||
((__ssp_bos0 (dest) != (size_t) -1) \
|
||||
? __builtin___memmove_chk (dest, src, len, __ssp_bos0 (dest)) \
|
||||
: __memmove_ichk (dest, src, len)))
|
||||
#define bzero(dest, len) ((void) \
|
||||
((__ssp_bos0 (dest) != (size_t) -1) \
|
||||
? __builtin___memset_chk (dest, '\0', len, __ssp_bos0 (dest)) \
|
||||
: __memset_ichk (dest, '\0', len)))
|
||||
|
||||
|
||||
#define strcpy(dest, src) \
|
||||
((__ssp_bos (dest) != (size_t) -1) \
|
||||
? __builtin___strcpy_chk (dest, src, __ssp_bos (dest)) \
|
||||
: __strcpy_ichk (dest, src))
|
||||
static inline __attribute__((__always_inline__)) char *
|
||||
__strcpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
|
||||
{
|
||||
return __builtin___strcpy_chk (__dest, __src, __ssp_bos (__dest));
|
||||
}
|
||||
|
||||
|
||||
#define stpcpy(dest, src) \
|
||||
((__ssp_bos (dest) != (size_t) -1) \
|
||||
? __builtin___stpcpy_chk (dest, src, __ssp_bos (dest)) \
|
||||
: __stpcpy_ichk (dest, src))
|
||||
static inline __attribute__((__always_inline__)) char *
|
||||
__stpcpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
|
||||
{
|
||||
return __builtin___stpcpy_chk (__dest, __src, __ssp_bos (__dest));
|
||||
}
|
||||
|
||||
|
||||
#define strncpy(dest, src, len) \
|
||||
((__ssp_bos (dest) != (size_t) -1) \
|
||||
? __builtin___strncpy_chk (dest, src, len, __ssp_bos (dest)) \
|
||||
: __strncpy_ichk (dest, src, len))
|
||||
static inline __attribute__((__always_inline__)) char *
|
||||
__strncpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src,
|
||||
size_t __len)
|
||||
{
|
||||
return __builtin___strncpy_chk (__dest, __src, __len, __ssp_bos (__dest));
|
||||
}
|
||||
|
||||
|
||||
#define strcat(dest, src) \
|
||||
((__ssp_bos (dest) != (size_t) -1) \
|
||||
? __builtin___strcat_chk (dest, src, __ssp_bos (dest)) \
|
||||
: __strcat_ichk (dest, src))
|
||||
static inline __attribute__((__always_inline__)) char *
|
||||
__strcat_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
|
||||
{
|
||||
return __builtin___strcat_chk (__dest, __src, __ssp_bos (__dest));
|
||||
}
|
||||
|
||||
|
||||
#define strncat(dest, src, len) \
|
||||
((__ssp_bos (dest) != (size_t) -1) \
|
||||
? __builtin___strncat_chk (dest, src, len, __ssp_bos (dest)) \
|
||||
: __strncat_ichk (dest, src, len))
|
||||
static inline __attribute__((__always_inline__)) char *
|
||||
__strncat_ichk (char *__restrict__ __dest, const char *__restrict__ __src,
|
||||
size_t __len)
|
||||
{
|
||||
return __builtin___strncat_chk (__dest, __src, __len, __ssp_bos (__dest));
|
||||
}
|
||||
|
||||
#endif /* __SSP_FORTIFY_LEVEL > 0 */
|
||||
#endif /* _SSP_STRING_H */
|
||||
84
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/unistd.h
Normal file
84
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/ssp/unistd.h
Normal file
@ -0,0 +1,84 @@
|
||||
/* Checking macros for unistd functions.
|
||||
Copyright (C) 2005-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
In addition to the permissions in the GNU General Public License, the
|
||||
Free Software Foundation gives you unlimited permission to link the
|
||||
compiled version of this file into combinations with other programs,
|
||||
and to distribute those combinations without any restriction coming
|
||||
from the use of this file. (The General Public License restrictions
|
||||
do apply in other respects; for example, they cover modification of
|
||||
the file, and distribution when not linked into a combine
|
||||
executable.)
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
||||
#ifndef _SSP_UNISTD_H
|
||||
#define _SSP_UNISTD_H 1
|
||||
|
||||
#include <ssp.h>
|
||||
#include_next <unistd.h>
|
||||
|
||||
#if __SSP_FORTIFY_LEVEL > 0
|
||||
|
||||
#undef read
|
||||
#undef readlink
|
||||
#undef getcwd
|
||||
|
||||
extern ssize_t __SSP_REDIRECT (__read_alias, (int __fd, void *__buf,
|
||||
size_t __nbytes), read);
|
||||
|
||||
extern inline __attribute__((__always_inline__)) ssize_t
|
||||
read (int __fd, void *__buf, size_t __nbytes)
|
||||
{
|
||||
if (__ssp_bos0 (__buf) != (size_t) -1 && __nbytes > __ssp_bos0 (__buf))
|
||||
__chk_fail ();
|
||||
return __read_alias (__fd, __buf, __nbytes);
|
||||
}
|
||||
|
||||
extern int __SSP_REDIRECT (__readlink_alias,
|
||||
(const char *__restrict__ __path,
|
||||
char *__restrict__ __buf, size_t __len),
|
||||
readlink);
|
||||
|
||||
extern inline __attribute__((__always_inline__)) int
|
||||
readlink (const char *__restrict__ __path, char *__restrict__ __buf,
|
||||
size_t __len)
|
||||
{
|
||||
if (__ssp_bos (__buf) != (size_t) -1 && __len > __ssp_bos (__buf))
|
||||
__chk_fail ();
|
||||
return __readlink_alias (__path, __buf, __len);
|
||||
}
|
||||
|
||||
extern char *__SSP_REDIRECT (__getcwd_alias,
|
||||
(char *__buf, size_t __size), getcwd);
|
||||
|
||||
extern inline __attribute__((__always_inline__)) char *
|
||||
getcwd (char *__buf, size_t __size)
|
||||
{
|
||||
if (__ssp_bos (__buf) != (size_t) -1 && __size > __ssp_bos (__buf))
|
||||
__chk_fail ();
|
||||
return __getcwd_alias (__buf, __size);
|
||||
}
|
||||
|
||||
#endif /* __SSP_FORTIFY_LEVEL > 0 */
|
||||
#endif /* _SSP_UNISTD_H */
|
||||
39
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdalign.h
Normal file
39
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdalign.h
Normal file
@ -0,0 +1,39 @@
|
||||
/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* ISO C1X: 7.15 Alignment <stdalign.h>. */
|
||||
|
||||
#ifndef _STDALIGN_H
|
||||
#define _STDALIGN_H
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
#define alignas _Alignas
|
||||
#define alignof _Alignof
|
||||
|
||||
#define __alignas_is_defined 1
|
||||
#define __alignof_is_defined 1
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* stdalign.h */
|
||||
127
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdarg.h
Normal file
127
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdarg.h
Normal file
@ -0,0 +1,127 @@
|
||||
/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/*
|
||||
* ISO C Standard: 7.15 Variable arguments <stdarg.h>
|
||||
*/
|
||||
|
||||
#ifndef _STDARG_H
|
||||
#ifndef _ANSI_STDARG_H_
|
||||
#ifndef __need___va_list
|
||||
#define _STDARG_H
|
||||
#define _ANSI_STDARG_H_
|
||||
#endif /* not __need___va_list */
|
||||
#undef __need___va_list
|
||||
|
||||
/* Define __gnuc_va_list. */
|
||||
|
||||
#ifndef __GNUC_VA_LIST
|
||||
#define __GNUC_VA_LIST
|
||||
typedef __builtin_va_list __gnuc_va_list;
|
||||
#endif
|
||||
|
||||
/* Define the standard macros for the user,
|
||||
if this invocation was from the user program. */
|
||||
#ifdef _STDARG_H
|
||||
|
||||
#define va_start(v,l) __builtin_va_start(v,l)
|
||||
#define va_end(v) __builtin_va_end(v)
|
||||
#define va_arg(v,l) __builtin_va_arg(v,l)
|
||||
#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L \
|
||||
|| __cplusplus + 0 >= 201103L
|
||||
#define va_copy(d,s) __builtin_va_copy(d,s)
|
||||
#endif
|
||||
#define __va_copy(d,s) __builtin_va_copy(d,s)
|
||||
|
||||
/* Define va_list, if desired, from __gnuc_va_list. */
|
||||
/* We deliberately do not define va_list when called from
|
||||
stdio.h, because ANSI C says that stdio.h is not supposed to define
|
||||
va_list. stdio.h needs to have access to that data type,
|
||||
but must not use that name. It should use the name __gnuc_va_list,
|
||||
which is safe because it is reserved for the implementation. */
|
||||
|
||||
#ifdef _BSD_VA_LIST
|
||||
#undef _BSD_VA_LIST
|
||||
#endif
|
||||
|
||||
#if defined(__svr4__) || (defined(_SCO_DS) && !defined(__VA_LIST))
|
||||
/* SVR4.2 uses _VA_LIST for an internal alias for va_list,
|
||||
so we must avoid testing it and setting it here.
|
||||
SVR4 uses _VA_LIST as a flag in stdarg.h, but we should
|
||||
have no conflict with that. */
|
||||
#ifndef _VA_LIST_
|
||||
#define _VA_LIST_
|
||||
#ifdef __i860__
|
||||
#ifndef _VA_LIST
|
||||
#define _VA_LIST va_list
|
||||
#endif
|
||||
#endif /* __i860__ */
|
||||
typedef __gnuc_va_list va_list;
|
||||
#ifdef _SCO_DS
|
||||
#define __VA_LIST
|
||||
#endif
|
||||
#endif /* _VA_LIST_ */
|
||||
#else /* not __svr4__ || _SCO_DS */
|
||||
|
||||
/* The macro _VA_LIST_ is the same thing used by this file in Ultrix.
|
||||
But on BSD NET2 we must not test or define or undef it.
|
||||
(Note that the comments in NET 2's ansi.h
|
||||
are incorrect for _VA_LIST_--see stdio.h!) */
|
||||
#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__) || defined(WINNT)
|
||||
/* The macro _VA_LIST_DEFINED is used in Windows NT 3.5 */
|
||||
#ifndef _VA_LIST_DEFINED
|
||||
/* The macro _VA_LIST is used in SCO Unix 3.2. */
|
||||
#ifndef _VA_LIST
|
||||
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */
|
||||
#ifndef _VA_LIST_T_H
|
||||
/* The macro __va_list__ is used by BeOS. */
|
||||
#ifndef __va_list__
|
||||
typedef __gnuc_va_list va_list;
|
||||
#endif /* not __va_list__ */
|
||||
#endif /* not _VA_LIST_T_H */
|
||||
#endif /* not _VA_LIST */
|
||||
#endif /* not _VA_LIST_DEFINED */
|
||||
#if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__))
|
||||
#define _VA_LIST_
|
||||
#endif
|
||||
#ifndef _VA_LIST
|
||||
#define _VA_LIST
|
||||
#endif
|
||||
#ifndef _VA_LIST_DEFINED
|
||||
#define _VA_LIST_DEFINED
|
||||
#endif
|
||||
#ifndef _VA_LIST_T_H
|
||||
#define _VA_LIST_T_H
|
||||
#endif
|
||||
#ifndef __va_list__
|
||||
#define __va_list__
|
||||
#endif
|
||||
|
||||
#endif /* not _VA_LIST_, except on certain systems */
|
||||
|
||||
#endif /* not __svr4__ */
|
||||
|
||||
#endif /* _STDARG_H */
|
||||
|
||||
#endif /* not _ANSI_STDARG_H_ */
|
||||
#endif /* not _STDARG_H */
|
||||
243
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdatomic.h
Normal file
243
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdatomic.h
Normal file
@ -0,0 +1,243 @@
|
||||
/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* ISO C11 Standard: 7.17 Atomics <stdatomic.h>. */
|
||||
|
||||
#ifndef _STDATOMIC_H
|
||||
#define _STDATOMIC_H
|
||||
|
||||
typedef enum
|
||||
{
|
||||
memory_order_relaxed = __ATOMIC_RELAXED,
|
||||
memory_order_consume = __ATOMIC_CONSUME,
|
||||
memory_order_acquire = __ATOMIC_ACQUIRE,
|
||||
memory_order_release = __ATOMIC_RELEASE,
|
||||
memory_order_acq_rel = __ATOMIC_ACQ_REL,
|
||||
memory_order_seq_cst = __ATOMIC_SEQ_CST
|
||||
} memory_order;
|
||||
|
||||
|
||||
typedef _Atomic _Bool atomic_bool;
|
||||
typedef _Atomic char atomic_char;
|
||||
typedef _Atomic signed char atomic_schar;
|
||||
typedef _Atomic unsigned char atomic_uchar;
|
||||
typedef _Atomic short atomic_short;
|
||||
typedef _Atomic unsigned short atomic_ushort;
|
||||
typedef _Atomic int atomic_int;
|
||||
typedef _Atomic unsigned int atomic_uint;
|
||||
typedef _Atomic long atomic_long;
|
||||
typedef _Atomic unsigned long atomic_ulong;
|
||||
typedef _Atomic long long atomic_llong;
|
||||
typedef _Atomic unsigned long long atomic_ullong;
|
||||
typedef _Atomic __CHAR16_TYPE__ atomic_char16_t;
|
||||
typedef _Atomic __CHAR32_TYPE__ atomic_char32_t;
|
||||
typedef _Atomic __WCHAR_TYPE__ atomic_wchar_t;
|
||||
typedef _Atomic __INT_LEAST8_TYPE__ atomic_int_least8_t;
|
||||
typedef _Atomic __UINT_LEAST8_TYPE__ atomic_uint_least8_t;
|
||||
typedef _Atomic __INT_LEAST16_TYPE__ atomic_int_least16_t;
|
||||
typedef _Atomic __UINT_LEAST16_TYPE__ atomic_uint_least16_t;
|
||||
typedef _Atomic __INT_LEAST32_TYPE__ atomic_int_least32_t;
|
||||
typedef _Atomic __UINT_LEAST32_TYPE__ atomic_uint_least32_t;
|
||||
typedef _Atomic __INT_LEAST64_TYPE__ atomic_int_least64_t;
|
||||
typedef _Atomic __UINT_LEAST64_TYPE__ atomic_uint_least64_t;
|
||||
typedef _Atomic __INT_FAST8_TYPE__ atomic_int_fast8_t;
|
||||
typedef _Atomic __UINT_FAST8_TYPE__ atomic_uint_fast8_t;
|
||||
typedef _Atomic __INT_FAST16_TYPE__ atomic_int_fast16_t;
|
||||
typedef _Atomic __UINT_FAST16_TYPE__ atomic_uint_fast16_t;
|
||||
typedef _Atomic __INT_FAST32_TYPE__ atomic_int_fast32_t;
|
||||
typedef _Atomic __UINT_FAST32_TYPE__ atomic_uint_fast32_t;
|
||||
typedef _Atomic __INT_FAST64_TYPE__ atomic_int_fast64_t;
|
||||
typedef _Atomic __UINT_FAST64_TYPE__ atomic_uint_fast64_t;
|
||||
typedef _Atomic __INTPTR_TYPE__ atomic_intptr_t;
|
||||
typedef _Atomic __UINTPTR_TYPE__ atomic_uintptr_t;
|
||||
typedef _Atomic __SIZE_TYPE__ atomic_size_t;
|
||||
typedef _Atomic __PTRDIFF_TYPE__ atomic_ptrdiff_t;
|
||||
typedef _Atomic __INTMAX_TYPE__ atomic_intmax_t;
|
||||
typedef _Atomic __UINTMAX_TYPE__ atomic_uintmax_t;
|
||||
|
||||
|
||||
#define ATOMIC_VAR_INIT(VALUE) (VALUE)
|
||||
|
||||
/* Initialize an atomic object pointed to by PTR with VAL. */
|
||||
#define atomic_init(PTR, VAL) \
|
||||
atomic_store_explicit (PTR, VAL, __ATOMIC_RELAXED)
|
||||
|
||||
#define kill_dependency(Y) \
|
||||
__extension__ \
|
||||
({ \
|
||||
__auto_type __kill_dependency_tmp = (Y); \
|
||||
__kill_dependency_tmp; \
|
||||
})
|
||||
|
||||
extern void atomic_thread_fence (memory_order);
|
||||
#define atomic_thread_fence(MO) __atomic_thread_fence (MO)
|
||||
extern void atomic_signal_fence (memory_order);
|
||||
#define atomic_signal_fence(MO) __atomic_signal_fence (MO)
|
||||
#define atomic_is_lock_free(OBJ) __atomic_is_lock_free (sizeof (*(OBJ)), (OBJ))
|
||||
|
||||
#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE
|
||||
#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE
|
||||
#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE
|
||||
#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE
|
||||
#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE
|
||||
#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE
|
||||
#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE
|
||||
#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE
|
||||
#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE
|
||||
#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
|
||||
|
||||
|
||||
/* Note that these macros require __typeof__ and __auto_type to remove
|
||||
_Atomic qualifiers (and const qualifiers, if those are valid on
|
||||
macro operands).
|
||||
|
||||
Also note that the header file uses the generic form of __atomic
|
||||
builtins, which requires the address to be taken of the value
|
||||
parameter, and then we pass that value on. This allows the macros
|
||||
to work for any type, and the compiler is smart enough to convert
|
||||
these to lock-free _N variants if possible, and throw away the
|
||||
temps. */
|
||||
|
||||
#define atomic_store_explicit(PTR, VAL, MO) \
|
||||
__extension__ \
|
||||
({ \
|
||||
__auto_type __atomic_store_ptr = (PTR); \
|
||||
__typeof__ (*__atomic_store_ptr) __atomic_store_tmp = (VAL); \
|
||||
__atomic_store (__atomic_store_ptr, &__atomic_store_tmp, (MO)); \
|
||||
})
|
||||
|
||||
#define atomic_store(PTR, VAL) \
|
||||
atomic_store_explicit (PTR, VAL, __ATOMIC_SEQ_CST)
|
||||
|
||||
|
||||
#define atomic_load_explicit(PTR, MO) \
|
||||
__extension__ \
|
||||
({ \
|
||||
__auto_type __atomic_load_ptr = (PTR); \
|
||||
__typeof__ (*__atomic_load_ptr) __atomic_load_tmp; \
|
||||
__atomic_load (__atomic_load_ptr, &__atomic_load_tmp, (MO)); \
|
||||
__atomic_load_tmp; \
|
||||
})
|
||||
|
||||
#define atomic_load(PTR) atomic_load_explicit (PTR, __ATOMIC_SEQ_CST)
|
||||
|
||||
|
||||
#define atomic_exchange_explicit(PTR, VAL, MO) \
|
||||
__extension__ \
|
||||
({ \
|
||||
__auto_type __atomic_exchange_ptr = (PTR); \
|
||||
__typeof__ (*__atomic_exchange_ptr) __atomic_exchange_val = (VAL); \
|
||||
__typeof__ (*__atomic_exchange_ptr) __atomic_exchange_tmp; \
|
||||
__atomic_exchange (__atomic_exchange_ptr, &__atomic_exchange_val, \
|
||||
&__atomic_exchange_tmp, (MO)); \
|
||||
__atomic_exchange_tmp; \
|
||||
})
|
||||
|
||||
#define atomic_exchange(PTR, VAL) \
|
||||
atomic_exchange_explicit (PTR, VAL, __ATOMIC_SEQ_CST)
|
||||
|
||||
|
||||
#define atomic_compare_exchange_strong_explicit(PTR, VAL, DES, SUC, FAIL) \
|
||||
__extension__ \
|
||||
({ \
|
||||
__auto_type __atomic_compare_exchange_ptr = (PTR); \
|
||||
__typeof__ (*__atomic_compare_exchange_ptr) __atomic_compare_exchange_tmp \
|
||||
= (DES); \
|
||||
__atomic_compare_exchange (__atomic_compare_exchange_ptr, (VAL), \
|
||||
&__atomic_compare_exchange_tmp, 0, \
|
||||
(SUC), (FAIL)); \
|
||||
})
|
||||
|
||||
#define atomic_compare_exchange_strong(PTR, VAL, DES) \
|
||||
atomic_compare_exchange_strong_explicit (PTR, VAL, DES, __ATOMIC_SEQ_CST, \
|
||||
__ATOMIC_SEQ_CST)
|
||||
|
||||
#define atomic_compare_exchange_weak_explicit(PTR, VAL, DES, SUC, FAIL) \
|
||||
__extension__ \
|
||||
({ \
|
||||
__auto_type __atomic_compare_exchange_ptr = (PTR); \
|
||||
__typeof__ (*__atomic_compare_exchange_ptr) __atomic_compare_exchange_tmp \
|
||||
= (DES); \
|
||||
__atomic_compare_exchange (__atomic_compare_exchange_ptr, (VAL), \
|
||||
&__atomic_compare_exchange_tmp, 1, \
|
||||
(SUC), (FAIL)); \
|
||||
})
|
||||
|
||||
#define atomic_compare_exchange_weak(PTR, VAL, DES) \
|
||||
atomic_compare_exchange_weak_explicit (PTR, VAL, DES, __ATOMIC_SEQ_CST, \
|
||||
__ATOMIC_SEQ_CST)
|
||||
|
||||
|
||||
|
||||
#define atomic_fetch_add(PTR, VAL) __atomic_fetch_add ((PTR), (VAL), \
|
||||
__ATOMIC_SEQ_CST)
|
||||
#define atomic_fetch_add_explicit(PTR, VAL, MO) \
|
||||
__atomic_fetch_add ((PTR), (VAL), (MO))
|
||||
|
||||
#define atomic_fetch_sub(PTR, VAL) __atomic_fetch_sub ((PTR), (VAL), \
|
||||
__ATOMIC_SEQ_CST)
|
||||
#define atomic_fetch_sub_explicit(PTR, VAL, MO) \
|
||||
__atomic_fetch_sub ((PTR), (VAL), (MO))
|
||||
|
||||
#define atomic_fetch_or(PTR, VAL) __atomic_fetch_or ((PTR), (VAL), \
|
||||
__ATOMIC_SEQ_CST)
|
||||
#define atomic_fetch_or_explicit(PTR, VAL, MO) \
|
||||
__atomic_fetch_or ((PTR), (VAL), (MO))
|
||||
|
||||
#define atomic_fetch_xor(PTR, VAL) __atomic_fetch_xor ((PTR), (VAL), \
|
||||
__ATOMIC_SEQ_CST)
|
||||
#define atomic_fetch_xor_explicit(PTR, VAL, MO) \
|
||||
__atomic_fetch_xor ((PTR), (VAL), (MO))
|
||||
|
||||
#define atomic_fetch_and(PTR, VAL) __atomic_fetch_and ((PTR), (VAL), \
|
||||
__ATOMIC_SEQ_CST)
|
||||
#define atomic_fetch_and_explicit(PTR, VAL, MO) \
|
||||
__atomic_fetch_and ((PTR), (VAL), (MO))
|
||||
|
||||
|
||||
typedef _Atomic struct
|
||||
{
|
||||
#if __GCC_ATOMIC_TEST_AND_SET_TRUEVAL == 1
|
||||
_Bool __val;
|
||||
#else
|
||||
unsigned char __val;
|
||||
#endif
|
||||
} atomic_flag;
|
||||
|
||||
#define ATOMIC_FLAG_INIT { 0 }
|
||||
|
||||
|
||||
extern _Bool atomic_flag_test_and_set (volatile atomic_flag *);
|
||||
#define atomic_flag_test_and_set(PTR) \
|
||||
__atomic_test_and_set ((PTR), __ATOMIC_SEQ_CST)
|
||||
extern _Bool atomic_flag_test_and_set_explicit (volatile atomic_flag *,
|
||||
memory_order);
|
||||
#define atomic_flag_test_and_set_explicit(PTR, MO) \
|
||||
__atomic_test_and_set ((PTR), (MO))
|
||||
|
||||
extern void atomic_flag_clear (volatile atomic_flag *);
|
||||
#define atomic_flag_clear(PTR) __atomic_clear ((PTR), __ATOMIC_SEQ_CST)
|
||||
extern void atomic_flag_clear_explicit (volatile atomic_flag *, memory_order);
|
||||
#define atomic_flag_clear_explicit(PTR, MO) __atomic_clear ((PTR), (MO))
|
||||
|
||||
#endif /* _STDATOMIC_H */
|
||||
54
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdbool.h
Normal file
54
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdbool.h
Normal file
@ -0,0 +1,54 @@
|
||||
/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/*
|
||||
* ISO C Standard: 7.16 Boolean type and values <stdbool.h>
|
||||
*/
|
||||
|
||||
#ifndef _STDBOOL_H
|
||||
#define _STDBOOL_H
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
#define bool _Bool
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#else /* __cplusplus */
|
||||
|
||||
/* Supporting _Bool in C++ is a GCC extension. */
|
||||
#define _Bool bool
|
||||
|
||||
#if __cplusplus < 201103L
|
||||
/* Defining these macros in C++98 is a GCC extension. */
|
||||
#define bool bool
|
||||
#define false false
|
||||
#define true true
|
||||
#endif
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* Signal that all the definitions are present. */
|
||||
#define __bool_true_false_are_defined 1
|
||||
|
||||
#endif /* stdbool.h */
|
||||
451
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stddef.h
Normal file
451
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stddef.h
Normal file
@ -0,0 +1,451 @@
|
||||
/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/*
|
||||
* ISO C Standard: 7.17 Common definitions <stddef.h>
|
||||
*/
|
||||
#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \
|
||||
&& !defined(__STDDEF_H__)) \
|
||||
|| defined(__need_wchar_t) || defined(__need_size_t) \
|
||||
|| defined(__need_ptrdiff_t) || defined(__need_NULL) \
|
||||
|| defined(__need_wint_t)
|
||||
|
||||
/* Any one of these symbols __need_* means that GNU libc
|
||||
wants us just to define one data type. So don't define
|
||||
the symbols that indicate this file's entire job has been done. */
|
||||
#if (!defined(__need_wchar_t) && !defined(__need_size_t) \
|
||||
&& !defined(__need_ptrdiff_t) && !defined(__need_NULL) \
|
||||
&& !defined(__need_wint_t))
|
||||
#define _STDDEF_H
|
||||
#define _STDDEF_H_
|
||||
/* snaroff@next.com says the NeXT needs this. */
|
||||
#define _ANSI_STDDEF_H
|
||||
#endif
|
||||
|
||||
#ifndef __sys_stdtypes_h
|
||||
/* This avoids lossage on SunOS but only if stdtypes.h comes first.
|
||||
There's no way to win with the other order! Sun lossage. */
|
||||
|
||||
/* On 4.3bsd-net2, make sure ansi.h is included, so we have
|
||||
one less case to deal with in the following. */
|
||||
#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
|
||||
#include <machine/ansi.h>
|
||||
#endif
|
||||
/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
|
||||
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
|
||||
#include <sys/_types.h>
|
||||
#endif
|
||||
|
||||
/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
|
||||
defined if the corresponding type is *not* defined.
|
||||
FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
|
||||
NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
|
||||
#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_)
|
||||
#if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_)
|
||||
#define _SIZE_T
|
||||
#endif
|
||||
#if !defined(_PTRDIFF_T_) && !defined(_BSD_PTRDIFF_T_)
|
||||
#define _PTRDIFF_T
|
||||
#endif
|
||||
/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
|
||||
instead of _WCHAR_T_. */
|
||||
#if !defined(_WCHAR_T_) && !defined(_BSD_WCHAR_T_)
|
||||
#ifndef _BSD_WCHAR_T_
|
||||
#define _WCHAR_T
|
||||
#endif
|
||||
#endif
|
||||
/* Undef _FOO_T_ if we are supposed to define foo_t. */
|
||||
#if defined (__need_ptrdiff_t) || defined (_STDDEF_H_)
|
||||
#undef _PTRDIFF_T_
|
||||
#undef _BSD_PTRDIFF_T_
|
||||
#endif
|
||||
#if defined (__need_size_t) || defined (_STDDEF_H_)
|
||||
#undef _SIZE_T_
|
||||
#undef _BSD_SIZE_T_
|
||||
#endif
|
||||
#if defined (__need_wchar_t) || defined (_STDDEF_H_)
|
||||
#undef _WCHAR_T_
|
||||
#undef _BSD_WCHAR_T_
|
||||
#endif
|
||||
#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) */
|
||||
|
||||
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
|
||||
Just ignore it. */
|
||||
#if defined (__sequent__) && defined (_PTRDIFF_T_)
|
||||
#undef _PTRDIFF_T_
|
||||
#endif
|
||||
|
||||
/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
|
||||
_TYPE_size_t which will typedef size_t. fixincludes patched the
|
||||
vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
|
||||
not defined, and so that defining this macro defines _GCC_SIZE_T.
|
||||
If we find that the macros are still defined at this point, we must
|
||||
invoke them so that the type is defined as expected. */
|
||||
#if defined (_TYPE_ptrdiff_t) && (defined (__need_ptrdiff_t) || defined (_STDDEF_H_))
|
||||
_TYPE_ptrdiff_t;
|
||||
#undef _TYPE_ptrdiff_t
|
||||
#endif
|
||||
#if defined (_TYPE_size_t) && (defined (__need_size_t) || defined (_STDDEF_H_))
|
||||
_TYPE_size_t;
|
||||
#undef _TYPE_size_t
|
||||
#endif
|
||||
#if defined (_TYPE_wchar_t) && (defined (__need_wchar_t) || defined (_STDDEF_H_))
|
||||
_TYPE_wchar_t;
|
||||
#undef _TYPE_wchar_t
|
||||
#endif
|
||||
|
||||
/* In case nobody has defined these types, but we aren't running under
|
||||
GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
|
||||
__WCHAR_TYPE__ have reasonable values. This can happen if the
|
||||
parts of GCC is compiled by an older compiler, that actually
|
||||
include gstddef.h, such as collect2. */
|
||||
|
||||
/* Signed type of difference of two pointers. */
|
||||
|
||||
/* Define this type if we are doing the whole job,
|
||||
or if we want this type in particular. */
|
||||
#if defined (_STDDEF_H) || defined (__need_ptrdiff_t)
|
||||
#ifndef _PTRDIFF_T /* in case <sys/types.h> has defined it. */
|
||||
#ifndef _T_PTRDIFF_
|
||||
#ifndef _T_PTRDIFF
|
||||
#ifndef __PTRDIFF_T
|
||||
#ifndef _PTRDIFF_T_
|
||||
#ifndef _BSD_PTRDIFF_T_
|
||||
#ifndef ___int_ptrdiff_t_h
|
||||
#ifndef _GCC_PTRDIFF_T
|
||||
#ifndef _PTRDIFF_T_DECLARED /* DragonFly */
|
||||
#define _PTRDIFF_T
|
||||
#define _T_PTRDIFF_
|
||||
#define _T_PTRDIFF
|
||||
#define __PTRDIFF_T
|
||||
#define _PTRDIFF_T_
|
||||
#define _BSD_PTRDIFF_T_
|
||||
#define ___int_ptrdiff_t_h
|
||||
#define _GCC_PTRDIFF_T
|
||||
#define _PTRDIFF_T_DECLARED
|
||||
#ifndef __PTRDIFF_TYPE__
|
||||
#define __PTRDIFF_TYPE__ long int
|
||||
#endif
|
||||
typedef __PTRDIFF_TYPE__ ptrdiff_t;
|
||||
#endif /* _PTRDIFF_T_DECLARED */
|
||||
#endif /* _GCC_PTRDIFF_T */
|
||||
#endif /* ___int_ptrdiff_t_h */
|
||||
#endif /* _BSD_PTRDIFF_T_ */
|
||||
#endif /* _PTRDIFF_T_ */
|
||||
#endif /* __PTRDIFF_T */
|
||||
#endif /* _T_PTRDIFF */
|
||||
#endif /* _T_PTRDIFF_ */
|
||||
#endif /* _PTRDIFF_T */
|
||||
|
||||
/* If this symbol has done its job, get rid of it. */
|
||||
#undef __need_ptrdiff_t
|
||||
|
||||
#endif /* _STDDEF_H or __need_ptrdiff_t. */
|
||||
|
||||
/* Unsigned type of `sizeof' something. */
|
||||
|
||||
/* Define this type if we are doing the whole job,
|
||||
or if we want this type in particular. */
|
||||
#if defined (_STDDEF_H) || defined (__need_size_t)
|
||||
#ifndef __size_t__ /* BeOS */
|
||||
#ifndef __SIZE_T__ /* Cray Unicos/Mk */
|
||||
#ifndef _SIZE_T /* in case <sys/types.h> has defined it. */
|
||||
#ifndef _SYS_SIZE_T_H
|
||||
#ifndef _T_SIZE_
|
||||
#ifndef _T_SIZE
|
||||
#ifndef __SIZE_T
|
||||
#ifndef _SIZE_T_
|
||||
#ifndef _BSD_SIZE_T_
|
||||
#ifndef _SIZE_T_DEFINED_
|
||||
#ifndef _SIZE_T_DEFINED
|
||||
#ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */
|
||||
#ifndef _SIZE_T_DECLARED /* FreeBSD 5 */
|
||||
#ifndef ___int_size_t_h
|
||||
#ifndef _GCC_SIZE_T
|
||||
#ifndef _SIZET_
|
||||
#ifndef __size_t
|
||||
#define __size_t__ /* BeOS */
|
||||
#define __SIZE_T__ /* Cray Unicos/Mk */
|
||||
#define _SIZE_T
|
||||
#define _SYS_SIZE_T_H
|
||||
#define _T_SIZE_
|
||||
#define _T_SIZE
|
||||
#define __SIZE_T
|
||||
#define _SIZE_T_
|
||||
#define _BSD_SIZE_T_
|
||||
#define _SIZE_T_DEFINED_
|
||||
#define _SIZE_T_DEFINED
|
||||
#define _BSD_SIZE_T_DEFINED_ /* Darwin */
|
||||
#define _SIZE_T_DECLARED /* FreeBSD 5 */
|
||||
#define ___int_size_t_h
|
||||
#define _GCC_SIZE_T
|
||||
#define _SIZET_
|
||||
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
||||
|| defined(__DragonFly__) \
|
||||
|| defined(__FreeBSD_kernel__)
|
||||
/* __size_t is a typedef on FreeBSD 5, must not trash it. */
|
||||
#elif defined (__VMS__)
|
||||
/* __size_t is also a typedef on VMS. */
|
||||
#else
|
||||
#define __size_t
|
||||
#endif
|
||||
#ifndef __SIZE_TYPE__
|
||||
#define __SIZE_TYPE__ long unsigned int
|
||||
#endif
|
||||
#if !(defined (__GNUG__) && defined (size_t))
|
||||
typedef __SIZE_TYPE__ size_t;
|
||||
#ifdef __BEOS__
|
||||
typedef long ssize_t;
|
||||
#endif /* __BEOS__ */
|
||||
#endif /* !(defined (__GNUG__) && defined (size_t)) */
|
||||
#endif /* __size_t */
|
||||
#endif /* _SIZET_ */
|
||||
#endif /* _GCC_SIZE_T */
|
||||
#endif /* ___int_size_t_h */
|
||||
#endif /* _SIZE_T_DECLARED */
|
||||
#endif /* _BSD_SIZE_T_DEFINED_ */
|
||||
#endif /* _SIZE_T_DEFINED */
|
||||
#endif /* _SIZE_T_DEFINED_ */
|
||||
#endif /* _BSD_SIZE_T_ */
|
||||
#endif /* _SIZE_T_ */
|
||||
#endif /* __SIZE_T */
|
||||
#endif /* _T_SIZE */
|
||||
#endif /* _T_SIZE_ */
|
||||
#endif /* _SYS_SIZE_T_H */
|
||||
#endif /* _SIZE_T */
|
||||
#endif /* __SIZE_T__ */
|
||||
#endif /* __size_t__ */
|
||||
#undef __need_size_t
|
||||
#endif /* _STDDEF_H or __need_size_t. */
|
||||
|
||||
|
||||
/* Wide character type.
|
||||
Locale-writers should change this as necessary to
|
||||
be big enough to hold unique values not between 0 and 127,
|
||||
and not (wchar_t) -1, for each defined multibyte character. */
|
||||
|
||||
/* Define this type if we are doing the whole job,
|
||||
or if we want this type in particular. */
|
||||
#if defined (_STDDEF_H) || defined (__need_wchar_t)
|
||||
#ifndef __wchar_t__ /* BeOS */
|
||||
#ifndef __WCHAR_T__ /* Cray Unicos/Mk */
|
||||
#ifndef _WCHAR_T
|
||||
#ifndef _T_WCHAR_
|
||||
#ifndef _T_WCHAR
|
||||
#ifndef __WCHAR_T
|
||||
#ifndef _WCHAR_T_
|
||||
#ifndef _BSD_WCHAR_T_
|
||||
#ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */
|
||||
#ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */
|
||||
#ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */
|
||||
#ifndef _WCHAR_T_DEFINED_
|
||||
#ifndef _WCHAR_T_DEFINED
|
||||
#ifndef _WCHAR_T_H
|
||||
#ifndef ___int_wchar_t_h
|
||||
#ifndef __INT_WCHAR_T_H
|
||||
#ifndef _GCC_WCHAR_T
|
||||
#define __wchar_t__ /* BeOS */
|
||||
#define __WCHAR_T__ /* Cray Unicos/Mk */
|
||||
#define _WCHAR_T
|
||||
#define _T_WCHAR_
|
||||
#define _T_WCHAR
|
||||
#define __WCHAR_T
|
||||
#define _WCHAR_T_
|
||||
#define _BSD_WCHAR_T_
|
||||
#define _WCHAR_T_DEFINED_
|
||||
#define _WCHAR_T_DEFINED
|
||||
#define _WCHAR_T_H
|
||||
#define ___int_wchar_t_h
|
||||
#define __INT_WCHAR_T_H
|
||||
#define _GCC_WCHAR_T
|
||||
#define _WCHAR_T_DECLARED
|
||||
|
||||
/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
|
||||
instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
|
||||
symbols in the _FOO_T_ family, stays defined even after its
|
||||
corresponding type is defined). If we define wchar_t, then we
|
||||
must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if
|
||||
we undef _WCHAR_T_, then we must also define rune_t, since
|
||||
headers like runetype.h assume that if machine/ansi.h is included,
|
||||
and _BSD_WCHAR_T_ is not defined, then rune_t is available.
|
||||
machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of
|
||||
the same type." */
|
||||
#ifdef _BSD_WCHAR_T_
|
||||
#undef _BSD_WCHAR_T_
|
||||
#ifdef _BSD_RUNE_T_
|
||||
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
|
||||
typedef _BSD_RUNE_T_ rune_t;
|
||||
#define _BSD_WCHAR_T_DEFINED_
|
||||
#define _BSD_RUNE_T_DEFINED_ /* Darwin */
|
||||
#if defined (__FreeBSD__) && (__FreeBSD__ < 5)
|
||||
/* Why is this file so hard to maintain properly? In contrast to
|
||||
the comment above regarding BSD/386 1.1, on FreeBSD for as long
|
||||
as the symbol has existed, _BSD_RUNE_T_ must not stay defined or
|
||||
redundant typedefs will occur when stdlib.h is included after this file. */
|
||||
#undef _BSD_RUNE_T_
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
/* FreeBSD 5 can't be handled well using "traditional" logic above
|
||||
since it no longer defines _BSD_RUNE_T_ yet still desires to export
|
||||
rune_t in some cases... */
|
||||
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
|
||||
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
|
||||
#if __BSD_VISIBLE
|
||||
#ifndef _RUNE_T_DECLARED
|
||||
typedef __rune_t rune_t;
|
||||
#define _RUNE_T_DECLARED
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __WCHAR_TYPE__
|
||||
#define __WCHAR_TYPE__ int
|
||||
#endif
|
||||
#ifndef __cplusplus
|
||||
typedef __WCHAR_TYPE__ wchar_t;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif /* _WCHAR_T_DECLARED */
|
||||
#endif /* _BSD_RUNE_T_DEFINED_ */
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif /* __WCHAR_T__ */
|
||||
#endif /* __wchar_t__ */
|
||||
#undef __need_wchar_t
|
||||
#endif /* _STDDEF_H or __need_wchar_t. */
|
||||
|
||||
#if defined (__need_wint_t)
|
||||
#ifndef _WINT_T
|
||||
#define _WINT_T
|
||||
|
||||
#ifndef __WINT_TYPE__
|
||||
#define __WINT_TYPE__ unsigned int
|
||||
#endif
|
||||
typedef __WINT_TYPE__ wint_t;
|
||||
#endif
|
||||
#undef __need_wint_t
|
||||
#endif
|
||||
|
||||
/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
|
||||
are already defined. */
|
||||
/* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
|
||||
/* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
|
||||
#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_)
|
||||
/* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_
|
||||
are probably typos and should be removed before 2.8 is released. */
|
||||
#ifdef _GCC_PTRDIFF_T_
|
||||
#undef _PTRDIFF_T_
|
||||
#undef _BSD_PTRDIFF_T_
|
||||
#endif
|
||||
#ifdef _GCC_SIZE_T_
|
||||
#undef _SIZE_T_
|
||||
#undef _BSD_SIZE_T_
|
||||
#endif
|
||||
#ifdef _GCC_WCHAR_T_
|
||||
#undef _WCHAR_T_
|
||||
#undef _BSD_WCHAR_T_
|
||||
#endif
|
||||
/* The following ones are the real ones. */
|
||||
#ifdef _GCC_PTRDIFF_T
|
||||
#undef _PTRDIFF_T_
|
||||
#undef _BSD_PTRDIFF_T_
|
||||
#endif
|
||||
#ifdef _GCC_SIZE_T
|
||||
#undef _SIZE_T_
|
||||
#undef _BSD_SIZE_T_
|
||||
#endif
|
||||
#ifdef _GCC_WCHAR_T
|
||||
#undef _WCHAR_T_
|
||||
#undef _BSD_WCHAR_T_
|
||||
#endif
|
||||
#endif /* _ANSI_H_ || _MACHINE_ANSI_H_ || _X86_64_ANSI_H_ || _I386_ANSI_H_ */
|
||||
|
||||
#endif /* __sys_stdtypes_h */
|
||||
|
||||
/* A null pointer constant. */
|
||||
|
||||
#if defined (_STDDEF_H) || defined (__need_NULL)
|
||||
#undef NULL /* in case <stdio.h> has defined it. */
|
||||
#ifdef __GNUG__
|
||||
#define NULL __null
|
||||
#else /* G++ */
|
||||
#ifndef __cplusplus
|
||||
#define NULL ((void *)0)
|
||||
#else /* C++ */
|
||||
#define NULL 0
|
||||
#endif /* C++ */
|
||||
#endif /* G++ */
|
||||
#endif /* NULL not defined and <stddef.h> or need NULL. */
|
||||
#undef __need_NULL
|
||||
|
||||
#ifdef _STDDEF_H
|
||||
|
||||
/* Offset of member MEMBER in a struct of type TYPE. */
|
||||
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
|
||||
|
||||
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \
|
||||
|| (defined(__cplusplus) && __cplusplus >= 201103L)
|
||||
#ifndef _GCC_MAX_ALIGN_T
|
||||
#define _GCC_MAX_ALIGN_T
|
||||
/* Type whose alignment is supported in every context and is at least
|
||||
as great as that of any standard type not using alignment
|
||||
specifiers. */
|
||||
typedef struct {
|
||||
long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
|
||||
long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
|
||||
/* _Float128 is defined as a basic type, so max_align_t must be
|
||||
sufficiently aligned for it. This code must work in C++, so we
|
||||
use __float128 here; that is only available on some
|
||||
architectures, but only on i386 is extra alignment needed for
|
||||
__float128. */
|
||||
#ifdef __i386__
|
||||
__float128 __max_align_f128 __attribute__((__aligned__(__alignof(__float128))));
|
||||
#endif
|
||||
} max_align_t;
|
||||
#endif
|
||||
#endif /* C11 or C++11. */
|
||||
|
||||
#if defined(__cplusplus) && __cplusplus >= 201103L
|
||||
#ifndef _GXX_NULLPTR_T
|
||||
#define _GXX_NULLPTR_T
|
||||
typedef decltype(nullptr) nullptr_t;
|
||||
#endif
|
||||
#endif /* C++11. */
|
||||
|
||||
#endif /* _STDDEF_H was defined this time */
|
||||
|
||||
#endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__
|
||||
|| __need_XXX was not defined before */
|
||||
204
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdfix.h
Normal file
204
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdfix.h
Normal file
@ -0,0 +1,204 @@
|
||||
/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* ISO/IEC JTC1 SC22 WG14 N1169
|
||||
* Date: 2006-04-04
|
||||
* ISO/IEC TR 18037
|
||||
* Programming languages - C - Extensions to support embedded processors
|
||||
*/
|
||||
|
||||
#ifndef _STDFIX_H
|
||||
#define _STDFIX_H
|
||||
|
||||
/* 7.18a.1 Introduction. */
|
||||
|
||||
#undef fract
|
||||
#undef accum
|
||||
#undef sat
|
||||
#define fract _Fract
|
||||
#define accum _Accum
|
||||
#define sat _Sat
|
||||
|
||||
/* 7.18a.3 Precision macros. */
|
||||
|
||||
#undef SFRACT_FBIT
|
||||
#undef SFRACT_MIN
|
||||
#undef SFRACT_MAX
|
||||
#undef SFRACT_EPSILON
|
||||
#define SFRACT_FBIT __SFRACT_FBIT__
|
||||
#define SFRACT_MIN __SFRACT_MIN__
|
||||
#define SFRACT_MAX __SFRACT_MAX__
|
||||
#define SFRACT_EPSILON __SFRACT_EPSILON__
|
||||
|
||||
#undef USFRACT_FBIT
|
||||
#undef USFRACT_MIN
|
||||
#undef USFRACT_MAX
|
||||
#undef USFRACT_EPSILON
|
||||
#define USFRACT_FBIT __USFRACT_FBIT__
|
||||
#define USFRACT_MIN __USFRACT_MIN__ /* GCC extension. */
|
||||
#define USFRACT_MAX __USFRACT_MAX__
|
||||
#define USFRACT_EPSILON __USFRACT_EPSILON__
|
||||
|
||||
#undef FRACT_FBIT
|
||||
#undef FRACT_MIN
|
||||
#undef FRACT_MAX
|
||||
#undef FRACT_EPSILON
|
||||
#define FRACT_FBIT __FRACT_FBIT__
|
||||
#define FRACT_MIN __FRACT_MIN__
|
||||
#define FRACT_MAX __FRACT_MAX__
|
||||
#define FRACT_EPSILON __FRACT_EPSILON__
|
||||
|
||||
#undef UFRACT_FBIT
|
||||
#undef UFRACT_MIN
|
||||
#undef UFRACT_MAX
|
||||
#undef UFRACT_EPSILON
|
||||
#define UFRACT_FBIT __UFRACT_FBIT__
|
||||
#define UFRACT_MIN __UFRACT_MIN__ /* GCC extension. */
|
||||
#define UFRACT_MAX __UFRACT_MAX__
|
||||
#define UFRACT_EPSILON __UFRACT_EPSILON__
|
||||
|
||||
#undef LFRACT_FBIT
|
||||
#undef LFRACT_MIN
|
||||
#undef LFRACT_MAX
|
||||
#undef LFRACT_EPSILON
|
||||
#define LFRACT_FBIT __LFRACT_FBIT__
|
||||
#define LFRACT_MIN __LFRACT_MIN__
|
||||
#define LFRACT_MAX __LFRACT_MAX__
|
||||
#define LFRACT_EPSILON __LFRACT_EPSILON__
|
||||
|
||||
#undef ULFRACT_FBIT
|
||||
#undef ULFRACT_MIN
|
||||
#undef ULFRACT_MAX
|
||||
#undef ULFRACT_EPSILON
|
||||
#define ULFRACT_FBIT __ULFRACT_FBIT__
|
||||
#define ULFRACT_MIN __ULFRACT_MIN__ /* GCC extension. */
|
||||
#define ULFRACT_MAX __ULFRACT_MAX__
|
||||
#define ULFRACT_EPSILON __ULFRACT_EPSILON__
|
||||
|
||||
#undef LLFRACT_FBIT
|
||||
#undef LLFRACT_MIN
|
||||
#undef LLFRACT_MAX
|
||||
#undef LLFRACT_EPSILON
|
||||
#define LLFRACT_FBIT __LLFRACT_FBIT__ /* GCC extension. */
|
||||
#define LLFRACT_MIN __LLFRACT_MIN__ /* GCC extension. */
|
||||
#define LLFRACT_MAX __LLFRACT_MAX__ /* GCC extension. */
|
||||
#define LLFRACT_EPSILON __LLFRACT_EPSILON__ /* GCC extension. */
|
||||
|
||||
#undef ULLFRACT_FBIT
|
||||
#undef ULLFRACT_MIN
|
||||
#undef ULLFRACT_MAX
|
||||
#undef ULLFRACT_EPSILON
|
||||
#define ULLFRACT_FBIT __ULLFRACT_FBIT__ /* GCC extension. */
|
||||
#define ULLFRACT_MIN __ULLFRACT_MIN__ /* GCC extension. */
|
||||
#define ULLFRACT_MAX __ULLFRACT_MAX__ /* GCC extension. */
|
||||
#define ULLFRACT_EPSILON __ULLFRACT_EPSILON__ /* GCC extension. */
|
||||
|
||||
#undef SACCUM_FBIT
|
||||
#undef SACCUM_IBIT
|
||||
#undef SACCUM_MIN
|
||||
#undef SACCUM_MAX
|
||||
#undef SACCUM_EPSILON
|
||||
#define SACCUM_FBIT __SACCUM_FBIT__
|
||||
#define SACCUM_IBIT __SACCUM_IBIT__
|
||||
#define SACCUM_MIN __SACCUM_MIN__
|
||||
#define SACCUM_MAX __SACCUM_MAX__
|
||||
#define SACCUM_EPSILON __SACCUM_EPSILON__
|
||||
|
||||
#undef USACCUM_FBIT
|
||||
#undef USACCUM_IBIT
|
||||
#undef USACCUM_MIN
|
||||
#undef USACCUM_MAX
|
||||
#undef USACCUM_EPSILON
|
||||
#define USACCUM_FBIT __USACCUM_FBIT__
|
||||
#define USACCUM_IBIT __USACCUM_IBIT__
|
||||
#define USACCUM_MIN __USACCUM_MIN__ /* GCC extension. */
|
||||
#define USACCUM_MAX __USACCUM_MAX__
|
||||
#define USACCUM_EPSILON __USACCUM_EPSILON__
|
||||
|
||||
#undef ACCUM_FBIT
|
||||
#undef ACCUM_IBIT
|
||||
#undef ACCUM_MIN
|
||||
#undef ACCUM_MAX
|
||||
#undef ACCUM_EPSILON
|
||||
#define ACCUM_FBIT __ACCUM_FBIT__
|
||||
#define ACCUM_IBIT __ACCUM_IBIT__
|
||||
#define ACCUM_MIN __ACCUM_MIN__
|
||||
#define ACCUM_MAX __ACCUM_MAX__
|
||||
#define ACCUM_EPSILON __ACCUM_EPSILON__
|
||||
|
||||
#undef UACCUM_FBIT
|
||||
#undef UACCUM_IBIT
|
||||
#undef UACCUM_MIN
|
||||
#undef UACCUM_MAX
|
||||
#undef UACCUM_EPSILON
|
||||
#define UACCUM_FBIT __UACCUM_FBIT__
|
||||
#define UACCUM_IBIT __UACCUM_IBIT__
|
||||
#define UACCUM_MIN __UACCUM_MIN__ /* GCC extension. */
|
||||
#define UACCUM_MAX __UACCUM_MAX__
|
||||
#define UACCUM_EPSILON __UACCUM_EPSILON__
|
||||
|
||||
#undef LACCUM_FBIT
|
||||
#undef LACCUM_IBIT
|
||||
#undef LACCUM_MIN
|
||||
#undef LACCUM_MAX
|
||||
#undef LACCUM_EPSILON
|
||||
#define LACCUM_FBIT __LACCUM_FBIT__
|
||||
#define LACCUM_IBIT __LACCUM_IBIT__
|
||||
#define LACCUM_MIN __LACCUM_MIN__
|
||||
#define LACCUM_MAX __LACCUM_MAX__
|
||||
#define LACCUM_EPSILON __LACCUM_EPSILON__
|
||||
|
||||
#undef ULACCUM_FBIT
|
||||
#undef ULACCUM_IBIT
|
||||
#undef ULACCUM_MIN
|
||||
#undef ULACCUM_MAX
|
||||
#undef ULACCUM_EPSILON
|
||||
#define ULACCUM_FBIT __ULACCUM_FBIT__
|
||||
#define ULACCUM_IBIT __ULACCUM_IBIT__
|
||||
#define ULACCUM_MIN __ULACCUM_MIN__ /* GCC extension. */
|
||||
#define ULACCUM_MAX __ULACCUM_MAX__
|
||||
#define ULACCUM_EPSILON __ULACCUM_EPSILON__
|
||||
|
||||
#undef LLACCUM_FBIT
|
||||
#undef LLACCUM_IBIT
|
||||
#undef LLACCUM_MIN
|
||||
#undef LLACCUM_MAX
|
||||
#undef LLACCUM_EPSILON
|
||||
#define LLACCUM_FBIT __LLACCUM_FBIT__ /* GCC extension. */
|
||||
#define LLACCUM_IBIT __LLACCUM_IBIT__ /* GCC extension. */
|
||||
#define LLACCUM_MIN __LLACCUM_MIN__ /* GCC extension. */
|
||||
#define LLACCUM_MAX __LLACCUM_MAX__ /* GCC extension. */
|
||||
#define LLACCUM_EPSILON __LLACCUM_EPSILON__ /* GCC extension. */
|
||||
|
||||
#undef ULLACCUM_FBIT
|
||||
#undef ULLACCUM_IBIT
|
||||
#undef ULLACCUM_MIN
|
||||
#undef ULLACCUM_MAX
|
||||
#undef ULLACCUM_EPSILON
|
||||
#define ULLACCUM_FBIT __ULLACCUM_FBIT__ /* GCC extension. */
|
||||
#define ULLACCUM_IBIT __ULLACCUM_IBIT__ /* GCC extension. */
|
||||
#define ULLACCUM_MIN __ULLACCUM_MIN__ /* GCC extension. */
|
||||
#define ULLACCUM_MAX __ULLACCUM_MAX__ /* GCC extension. */
|
||||
#define ULLACCUM_EPSILON __ULLACCUM_EPSILON__ /* GCC extension. */
|
||||
|
||||
#endif /* _STDFIX_H */
|
||||
364
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdint-gcc.h
Normal file
364
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdint-gcc.h
Normal file
@ -0,0 +1,364 @@
|
||||
/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/*
|
||||
* ISO C Standard: 7.18 Integer types <stdint.h>
|
||||
*/
|
||||
|
||||
#ifndef _GCC_STDINT_H
|
||||
#define _GCC_STDINT_H
|
||||
|
||||
/* 7.8.1.1 Exact-width integer types */
|
||||
|
||||
#ifdef __INT8_TYPE__
|
||||
typedef __INT8_TYPE__ int8_t;
|
||||
#endif
|
||||
#ifdef __INT16_TYPE__
|
||||
typedef __INT16_TYPE__ int16_t;
|
||||
#endif
|
||||
#ifdef __INT32_TYPE__
|
||||
typedef __INT32_TYPE__ int32_t;
|
||||
#endif
|
||||
#ifdef __INT64_TYPE__
|
||||
typedef __INT64_TYPE__ int64_t;
|
||||
#endif
|
||||
#ifdef __UINT8_TYPE__
|
||||
typedef __UINT8_TYPE__ uint8_t;
|
||||
#endif
|
||||
#ifdef __UINT16_TYPE__
|
||||
typedef __UINT16_TYPE__ uint16_t;
|
||||
#endif
|
||||
#ifdef __UINT32_TYPE__
|
||||
typedef __UINT32_TYPE__ uint32_t;
|
||||
#endif
|
||||
#ifdef __UINT64_TYPE__
|
||||
typedef __UINT64_TYPE__ uint64_t;
|
||||
#endif
|
||||
|
||||
/* 7.8.1.2 Minimum-width integer types */
|
||||
|
||||
typedef __INT_LEAST8_TYPE__ int_least8_t;
|
||||
typedef __INT_LEAST16_TYPE__ int_least16_t;
|
||||
typedef __INT_LEAST32_TYPE__ int_least32_t;
|
||||
typedef __INT_LEAST64_TYPE__ int_least64_t;
|
||||
typedef __UINT_LEAST8_TYPE__ uint_least8_t;
|
||||
typedef __UINT_LEAST16_TYPE__ uint_least16_t;
|
||||
typedef __UINT_LEAST32_TYPE__ uint_least32_t;
|
||||
typedef __UINT_LEAST64_TYPE__ uint_least64_t;
|
||||
|
||||
/* 7.8.1.3 Fastest minimum-width integer types */
|
||||
|
||||
typedef __INT_FAST8_TYPE__ int_fast8_t;
|
||||
typedef __INT_FAST16_TYPE__ int_fast16_t;
|
||||
typedef __INT_FAST32_TYPE__ int_fast32_t;
|
||||
typedef __INT_FAST64_TYPE__ int_fast64_t;
|
||||
typedef __UINT_FAST8_TYPE__ uint_fast8_t;
|
||||
typedef __UINT_FAST16_TYPE__ uint_fast16_t;
|
||||
typedef __UINT_FAST32_TYPE__ uint_fast32_t;
|
||||
typedef __UINT_FAST64_TYPE__ uint_fast64_t;
|
||||
|
||||
/* 7.8.1.4 Integer types capable of holding object pointers */
|
||||
|
||||
#ifdef __INTPTR_TYPE__
|
||||
typedef __INTPTR_TYPE__ intptr_t;
|
||||
#endif
|
||||
#ifdef __UINTPTR_TYPE__
|
||||
typedef __UINTPTR_TYPE__ uintptr_t;
|
||||
#endif
|
||||
|
||||
/* 7.8.1.5 Greatest-width integer types */
|
||||
|
||||
typedef __INTMAX_TYPE__ intmax_t;
|
||||
typedef __UINTMAX_TYPE__ uintmax_t;
|
||||
|
||||
#if (!defined __cplusplus || __cplusplus >= 201103L \
|
||||
|| defined __STDC_LIMIT_MACROS)
|
||||
|
||||
/* 7.18.2 Limits of specified-width integer types */
|
||||
|
||||
#ifdef __INT8_MAX__
|
||||
# undef INT8_MAX
|
||||
# define INT8_MAX __INT8_MAX__
|
||||
# undef INT8_MIN
|
||||
# define INT8_MIN (-INT8_MAX - 1)
|
||||
#endif
|
||||
#ifdef __UINT8_MAX__
|
||||
# undef UINT8_MAX
|
||||
# define UINT8_MAX __UINT8_MAX__
|
||||
#endif
|
||||
#ifdef __INT16_MAX__
|
||||
# undef INT16_MAX
|
||||
# define INT16_MAX __INT16_MAX__
|
||||
# undef INT16_MIN
|
||||
# define INT16_MIN (-INT16_MAX - 1)
|
||||
#endif
|
||||
#ifdef __UINT16_MAX__
|
||||
# undef UINT16_MAX
|
||||
# define UINT16_MAX __UINT16_MAX__
|
||||
#endif
|
||||
#ifdef __INT32_MAX__
|
||||
# undef INT32_MAX
|
||||
# define INT32_MAX __INT32_MAX__
|
||||
# undef INT32_MIN
|
||||
# define INT32_MIN (-INT32_MAX - 1)
|
||||
#endif
|
||||
#ifdef __UINT32_MAX__
|
||||
# undef UINT32_MAX
|
||||
# define UINT32_MAX __UINT32_MAX__
|
||||
#endif
|
||||
#ifdef __INT64_MAX__
|
||||
# undef INT64_MAX
|
||||
# define INT64_MAX __INT64_MAX__
|
||||
# undef INT64_MIN
|
||||
# define INT64_MIN (-INT64_MAX - 1)
|
||||
#endif
|
||||
#ifdef __UINT64_MAX__
|
||||
# undef UINT64_MAX
|
||||
# define UINT64_MAX __UINT64_MAX__
|
||||
#endif
|
||||
|
||||
#undef INT_LEAST8_MAX
|
||||
#define INT_LEAST8_MAX __INT_LEAST8_MAX__
|
||||
#undef INT_LEAST8_MIN
|
||||
#define INT_LEAST8_MIN (-INT_LEAST8_MAX - 1)
|
||||
#undef UINT_LEAST8_MAX
|
||||
#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
|
||||
#undef INT_LEAST16_MAX
|
||||
#define INT_LEAST16_MAX __INT_LEAST16_MAX__
|
||||
#undef INT_LEAST16_MIN
|
||||
#define INT_LEAST16_MIN (-INT_LEAST16_MAX - 1)
|
||||
#undef UINT_LEAST16_MAX
|
||||
#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
|
||||
#undef INT_LEAST32_MAX
|
||||
#define INT_LEAST32_MAX __INT_LEAST32_MAX__
|
||||
#undef INT_LEAST32_MIN
|
||||
#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)
|
||||
#undef UINT_LEAST32_MAX
|
||||
#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
|
||||
#undef INT_LEAST64_MAX
|
||||
#define INT_LEAST64_MAX __INT_LEAST64_MAX__
|
||||
#undef INT_LEAST64_MIN
|
||||
#define INT_LEAST64_MIN (-INT_LEAST64_MAX - 1)
|
||||
#undef UINT_LEAST64_MAX
|
||||
#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
|
||||
|
||||
#undef INT_FAST8_MAX
|
||||
#define INT_FAST8_MAX __INT_FAST8_MAX__
|
||||
#undef INT_FAST8_MIN
|
||||
#define INT_FAST8_MIN (-INT_FAST8_MAX - 1)
|
||||
#undef UINT_FAST8_MAX
|
||||
#define UINT_FAST8_MAX __UINT_FAST8_MAX__
|
||||
#undef INT_FAST16_MAX
|
||||
#define INT_FAST16_MAX __INT_FAST16_MAX__
|
||||
#undef INT_FAST16_MIN
|
||||
#define INT_FAST16_MIN (-INT_FAST16_MAX - 1)
|
||||
#undef UINT_FAST16_MAX
|
||||
#define UINT_FAST16_MAX __UINT_FAST16_MAX__
|
||||
#undef INT_FAST32_MAX
|
||||
#define INT_FAST32_MAX __INT_FAST32_MAX__
|
||||
#undef INT_FAST32_MIN
|
||||
#define INT_FAST32_MIN (-INT_FAST32_MAX - 1)
|
||||
#undef UINT_FAST32_MAX
|
||||
#define UINT_FAST32_MAX __UINT_FAST32_MAX__
|
||||
#undef INT_FAST64_MAX
|
||||
#define INT_FAST64_MAX __INT_FAST64_MAX__
|
||||
#undef INT_FAST64_MIN
|
||||
#define INT_FAST64_MIN (-INT_FAST64_MAX - 1)
|
||||
#undef UINT_FAST64_MAX
|
||||
#define UINT_FAST64_MAX __UINT_FAST64_MAX__
|
||||
|
||||
#ifdef __INTPTR_MAX__
|
||||
# undef INTPTR_MAX
|
||||
# define INTPTR_MAX __INTPTR_MAX__
|
||||
# undef INTPTR_MIN
|
||||
# define INTPTR_MIN (-INTPTR_MAX - 1)
|
||||
#endif
|
||||
#ifdef __UINTPTR_MAX__
|
||||
# undef UINTPTR_MAX
|
||||
# define UINTPTR_MAX __UINTPTR_MAX__
|
||||
#endif
|
||||
|
||||
#undef INTMAX_MAX
|
||||
#define INTMAX_MAX __INTMAX_MAX__
|
||||
#undef INTMAX_MIN
|
||||
#define INTMAX_MIN (-INTMAX_MAX - 1)
|
||||
#undef UINTMAX_MAX
|
||||
#define UINTMAX_MAX __UINTMAX_MAX__
|
||||
|
||||
/* 7.18.3 Limits of other integer types */
|
||||
|
||||
#undef PTRDIFF_MAX
|
||||
#define PTRDIFF_MAX __PTRDIFF_MAX__
|
||||
#undef PTRDIFF_MIN
|
||||
#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
|
||||
|
||||
#undef SIG_ATOMIC_MAX
|
||||
#define SIG_ATOMIC_MAX __SIG_ATOMIC_MAX__
|
||||
#undef SIG_ATOMIC_MIN
|
||||
#define SIG_ATOMIC_MIN __SIG_ATOMIC_MIN__
|
||||
|
||||
#undef SIZE_MAX
|
||||
#define SIZE_MAX __SIZE_MAX__
|
||||
|
||||
#undef WCHAR_MAX
|
||||
#define WCHAR_MAX __WCHAR_MAX__
|
||||
#undef WCHAR_MIN
|
||||
#define WCHAR_MIN __WCHAR_MIN__
|
||||
|
||||
#undef WINT_MAX
|
||||
#define WINT_MAX __WINT_MAX__
|
||||
#undef WINT_MIN
|
||||
#define WINT_MIN __WINT_MIN__
|
||||
|
||||
#endif /* (!defined __cplusplus || __cplusplus >= 201103L
|
||||
|| defined __STDC_LIMIT_MACROS) */
|
||||
|
||||
#if (!defined __cplusplus || __cplusplus >= 201103L \
|
||||
|| defined __STDC_CONSTANT_MACROS)
|
||||
|
||||
#undef INT8_C
|
||||
#define INT8_C(c) __INT8_C(c)
|
||||
#undef INT16_C
|
||||
#define INT16_C(c) __INT16_C(c)
|
||||
#undef INT32_C
|
||||
#define INT32_C(c) __INT32_C(c)
|
||||
#undef INT64_C
|
||||
#define INT64_C(c) __INT64_C(c)
|
||||
#undef UINT8_C
|
||||
#define UINT8_C(c) __UINT8_C(c)
|
||||
#undef UINT16_C
|
||||
#define UINT16_C(c) __UINT16_C(c)
|
||||
#undef UINT32_C
|
||||
#define UINT32_C(c) __UINT32_C(c)
|
||||
#undef UINT64_C
|
||||
#define UINT64_C(c) __UINT64_C(c)
|
||||
#undef INTMAX_C
|
||||
#define INTMAX_C(c) __INTMAX_C(c)
|
||||
#undef UINTMAX_C
|
||||
#define UINTMAX_C(c) __UINTMAX_C(c)
|
||||
|
||||
#endif /* (!defined __cplusplus || __cplusplus >= 201103L
|
||||
|| defined __STDC_CONSTANT_MACROS) */
|
||||
|
||||
#ifdef __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
/* TS 18661-1 widths of integer types. */
|
||||
|
||||
#ifdef __INT8_TYPE__
|
||||
# undef INT8_WIDTH
|
||||
# define INT8_WIDTH 8
|
||||
#endif
|
||||
#ifdef __UINT8_TYPE__
|
||||
# undef UINT8_WIDTH
|
||||
# define UINT8_WIDTH 8
|
||||
#endif
|
||||
#ifdef __INT16_TYPE__
|
||||
# undef INT16_WIDTH
|
||||
# define INT16_WIDTH 16
|
||||
#endif
|
||||
#ifdef __UINT16_TYPE__
|
||||
# undef UINT16_WIDTH
|
||||
# define UINT16_WIDTH 16
|
||||
#endif
|
||||
#ifdef __INT32_TYPE__
|
||||
# undef INT32_WIDTH
|
||||
# define INT32_WIDTH 32
|
||||
#endif
|
||||
#ifdef __UINT32_TYPE__
|
||||
# undef UINT32_WIDTH
|
||||
# define UINT32_WIDTH 32
|
||||
#endif
|
||||
#ifdef __INT64_TYPE__
|
||||
# undef INT64_WIDTH
|
||||
# define INT64_WIDTH 64
|
||||
#endif
|
||||
#ifdef __UINT64_TYPE__
|
||||
# undef UINT64_WIDTH
|
||||
# define UINT64_WIDTH 64
|
||||
#endif
|
||||
|
||||
#undef INT_LEAST8_WIDTH
|
||||
#define INT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
|
||||
#undef UINT_LEAST8_WIDTH
|
||||
#define UINT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
|
||||
#undef INT_LEAST16_WIDTH
|
||||
#define INT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
|
||||
#undef UINT_LEAST16_WIDTH
|
||||
#define UINT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
|
||||
#undef INT_LEAST32_WIDTH
|
||||
#define INT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
|
||||
#undef UINT_LEAST32_WIDTH
|
||||
#define UINT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
|
||||
#undef INT_LEAST64_WIDTH
|
||||
#define INT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
|
||||
#undef UINT_LEAST64_WIDTH
|
||||
#define UINT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
|
||||
|
||||
#undef INT_FAST8_WIDTH
|
||||
#define INT_FAST8_WIDTH __INT_FAST8_WIDTH__
|
||||
#undef UINT_FAST8_WIDTH
|
||||
#define UINT_FAST8_WIDTH __INT_FAST8_WIDTH__
|
||||
#undef INT_FAST16_WIDTH
|
||||
#define INT_FAST16_WIDTH __INT_FAST16_WIDTH__
|
||||
#undef UINT_FAST16_WIDTH
|
||||
#define UINT_FAST16_WIDTH __INT_FAST16_WIDTH__
|
||||
#undef INT_FAST32_WIDTH
|
||||
#define INT_FAST32_WIDTH __INT_FAST32_WIDTH__
|
||||
#undef UINT_FAST32_WIDTH
|
||||
#define UINT_FAST32_WIDTH __INT_FAST32_WIDTH__
|
||||
#undef INT_FAST64_WIDTH
|
||||
#define INT_FAST64_WIDTH __INT_FAST64_WIDTH__
|
||||
#undef UINT_FAST64_WIDTH
|
||||
#define UINT_FAST64_WIDTH __INT_FAST64_WIDTH__
|
||||
|
||||
#ifdef __INTPTR_TYPE__
|
||||
# undef INTPTR_WIDTH
|
||||
# define INTPTR_WIDTH __INTPTR_WIDTH__
|
||||
#endif
|
||||
#ifdef __UINTPTR_TYPE__
|
||||
# undef UINTPTR_WIDTH
|
||||
# define UINTPTR_WIDTH __INTPTR_WIDTH__
|
||||
#endif
|
||||
|
||||
#undef INTMAX_WIDTH
|
||||
#define INTMAX_WIDTH __INTMAX_WIDTH__
|
||||
#undef UINTMAX_WIDTH
|
||||
#define UINTMAX_WIDTH __INTMAX_WIDTH__
|
||||
|
||||
#undef PTRDIFF_WIDTH
|
||||
#define PTRDIFF_WIDTH __PTRDIFF_WIDTH__
|
||||
|
||||
#undef SIG_ATOMIC_WIDTH
|
||||
#define SIG_ATOMIC_WIDTH __SIG_ATOMIC_WIDTH__
|
||||
|
||||
#undef SIZE_WIDTH
|
||||
#define SIZE_WIDTH __SIZE_WIDTH__
|
||||
|
||||
#undef WCHAR_WIDTH
|
||||
#define WCHAR_WIDTH __WCHAR_WIDTH__
|
||||
|
||||
#undef WINT_WIDTH
|
||||
#define WINT_WIDTH __WINT_WIDTH__
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _GCC_STDINT_H */
|
||||
14
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdint.h
Normal file
14
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdint.h
Normal file
@ -0,0 +1,14 @@
|
||||
#ifndef _GCC_WRAP_STDINT_H
|
||||
#if __STDC_HOSTED__
|
||||
# if defined __cplusplus && __cplusplus >= 201103L
|
||||
# undef __STDC_LIMIT_MACROS
|
||||
# define __STDC_LIMIT_MACROS
|
||||
# undef __STDC_CONSTANT_MACROS
|
||||
# define __STDC_CONSTANT_MACROS
|
||||
# endif
|
||||
# include_next <stdint.h>
|
||||
#else
|
||||
# include "stdint-gcc.h"
|
||||
#endif
|
||||
#define _GCC_WRAP_STDINT_H
|
||||
#endif
|
||||
35
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdnoreturn.h
Normal file
35
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/stdnoreturn.h
Normal file
@ -0,0 +1,35 @@
|
||||
/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* ISO C1X: 7.23 _Noreturn <stdnoreturn.h>. */
|
||||
|
||||
#ifndef _STDNORETURN_H
|
||||
#define _STDNORETURN_H
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
#define noreturn _Noreturn
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* stdnoreturn.h */
|
||||
297
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/unwind.h
Normal file
297
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/unwind.h
Normal file
@ -0,0 +1,297 @@
|
||||
/* Exception handling and frame unwind runtime interface routines.
|
||||
Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* This is derived from the C++ ABI for IA-64. Where we diverge
|
||||
for cross-architecture compatibility are noted with "@@@". */
|
||||
|
||||
#ifndef _UNWIND_H
|
||||
#define _UNWIND_H
|
||||
|
||||
#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
|
||||
/* Only for _GCC_specific_handler. */
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifndef HIDE_EXPORTS
|
||||
#pragma GCC visibility push(default)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Level 1: Base ABI */
|
||||
|
||||
/* @@@ The IA-64 ABI uses uint64 throughout. Most places this is
|
||||
inefficient for 32-bit and smaller machines. */
|
||||
typedef unsigned _Unwind_Word __attribute__((__mode__(__unwind_word__)));
|
||||
typedef signed _Unwind_Sword __attribute__((__mode__(__unwind_word__)));
|
||||
#if defined(__ia64__) && defined(__hpux__)
|
||||
typedef unsigned _Unwind_Ptr __attribute__((__mode__(__word__)));
|
||||
#else
|
||||
typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)));
|
||||
#endif
|
||||
typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__)));
|
||||
|
||||
/* @@@ The IA-64 ABI uses a 64-bit word to identify the producer and
|
||||
consumer of an exception. We'll go along with this for now even on
|
||||
32-bit machines. We'll need to provide some other option for
|
||||
16-bit machines and for machines with > 8 bits per byte. */
|
||||
typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
|
||||
|
||||
/* The unwind interface uses reason codes in several contexts to
|
||||
identify the reasons for failures or other actions. */
|
||||
typedef enum
|
||||
{
|
||||
_URC_NO_REASON = 0,
|
||||
_URC_FOREIGN_EXCEPTION_CAUGHT = 1,
|
||||
_URC_FATAL_PHASE2_ERROR = 2,
|
||||
_URC_FATAL_PHASE1_ERROR = 3,
|
||||
_URC_NORMAL_STOP = 4,
|
||||
_URC_END_OF_STACK = 5,
|
||||
_URC_HANDLER_FOUND = 6,
|
||||
_URC_INSTALL_CONTEXT = 7,
|
||||
_URC_CONTINUE_UNWIND = 8
|
||||
} _Unwind_Reason_Code;
|
||||
|
||||
|
||||
/* The unwind interface uses a pointer to an exception header object
|
||||
as its representation of an exception being thrown. In general, the
|
||||
full representation of an exception object is language- and
|
||||
implementation-specific, but it will be prefixed by a header
|
||||
understood by the unwind interface. */
|
||||
|
||||
struct _Unwind_Exception;
|
||||
|
||||
typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code,
|
||||
struct _Unwind_Exception *);
|
||||
|
||||
struct _Unwind_Exception
|
||||
{
|
||||
_Unwind_Exception_Class exception_class;
|
||||
_Unwind_Exception_Cleanup_Fn exception_cleanup;
|
||||
|
||||
#if !defined (__USING_SJLJ_EXCEPTIONS__) && defined (__SEH__)
|
||||
_Unwind_Word private_[6];
|
||||
#else
|
||||
_Unwind_Word private_1;
|
||||
_Unwind_Word private_2;
|
||||
#endif
|
||||
|
||||
/* @@@ The IA-64 ABI says that this structure must be double-word aligned.
|
||||
Taking that literally does not make much sense generically. Instead we
|
||||
provide the maximum alignment required by any type for the machine. */
|
||||
} __attribute__((__aligned__));
|
||||
|
||||
|
||||
/* The ACTIONS argument to the personality routine is a bitwise OR of one
|
||||
or more of the following constants. */
|
||||
typedef int _Unwind_Action;
|
||||
|
||||
#define _UA_SEARCH_PHASE 1
|
||||
#define _UA_CLEANUP_PHASE 2
|
||||
#define _UA_HANDLER_FRAME 4
|
||||
#define _UA_FORCE_UNWIND 8
|
||||
#define _UA_END_OF_STACK 16
|
||||
|
||||
/* The target can override this macro to define any back-end-specific
|
||||
attributes required for the lowest-level stack frame. */
|
||||
#ifndef LIBGCC2_UNWIND_ATTRIBUTE
|
||||
#define LIBGCC2_UNWIND_ATTRIBUTE
|
||||
#endif
|
||||
|
||||
/* This is an opaque type used to refer to a system-specific data
|
||||
structure used by the system unwinder. This context is created and
|
||||
destroyed by the system, and passed to the personality routine
|
||||
during unwinding. */
|
||||
struct _Unwind_Context;
|
||||
|
||||
/* Raise an exception, passing along the given exception object. */
|
||||
extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_RaiseException (struct _Unwind_Exception *);
|
||||
|
||||
/* Raise an exception for forced unwinding. */
|
||||
|
||||
typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
|
||||
(int, _Unwind_Action, _Unwind_Exception_Class,
|
||||
struct _Unwind_Exception *, struct _Unwind_Context *, void *);
|
||||
|
||||
extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_ForcedUnwind (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
|
||||
|
||||
/* Helper to invoke the exception_cleanup routine. */
|
||||
extern void _Unwind_DeleteException (struct _Unwind_Exception *);
|
||||
|
||||
/* Resume propagation of an existing exception. This is used after
|
||||
e.g. executing cleanup code, and not to implement rethrowing. */
|
||||
extern void LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_Resume (struct _Unwind_Exception *);
|
||||
|
||||
/* @@@ Resume propagation of a FORCE_UNWIND exception, or to rethrow
|
||||
a normal exception that was handled. */
|
||||
extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *);
|
||||
|
||||
/* @@@ Use unwind data to perform a stack backtrace. The trace callback
|
||||
is called for every stack frame in the call chain, but no cleanup
|
||||
actions are performed. */
|
||||
typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
|
||||
(struct _Unwind_Context *, void *);
|
||||
|
||||
extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_Backtrace (_Unwind_Trace_Fn, void *);
|
||||
|
||||
/* These functions are used for communicating information about the unwind
|
||||
context (i.e. the unwind descriptors and the user register state) between
|
||||
the unwind library and the personality routine and landing pad. Only
|
||||
selected registers may be manipulated. */
|
||||
|
||||
extern _Unwind_Word _Unwind_GetGR (struct _Unwind_Context *, int);
|
||||
extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word);
|
||||
|
||||
extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *);
|
||||
extern _Unwind_Ptr _Unwind_GetIPInfo (struct _Unwind_Context *, int *);
|
||||
extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);
|
||||
|
||||
/* @@@ Retrieve the CFA of the given context. */
|
||||
extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
|
||||
|
||||
extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
|
||||
|
||||
extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
|
||||
|
||||
|
||||
/* The personality routine is the function in the C++ (or other language)
|
||||
runtime library which serves as an interface between the system unwind
|
||||
library and language-specific exception handling semantics. It is
|
||||
specific to the code fragment described by an unwind info block, and
|
||||
it is always referenced via the pointer in the unwind info block, and
|
||||
hence it has no ABI-specified name.
|
||||
|
||||
Note that this implies that two different C++ implementations can
|
||||
use different names, and have different contents in the language
|
||||
specific data area. Moreover, that the language specific data
|
||||
area contains no version info because name of the function invoked
|
||||
provides more effective versioning by detecting at link time the
|
||||
lack of code to handle the different data format. */
|
||||
|
||||
typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)
|
||||
(int, _Unwind_Action, _Unwind_Exception_Class,
|
||||
struct _Unwind_Exception *, struct _Unwind_Context *);
|
||||
|
||||
/* @@@ The following alternate entry points are for setjmp/longjmp
|
||||
based unwinding. */
|
||||
|
||||
struct SjLj_Function_Context;
|
||||
extern void _Unwind_SjLj_Register (struct SjLj_Function_Context *);
|
||||
extern void _Unwind_SjLj_Unregister (struct SjLj_Function_Context *);
|
||||
|
||||
extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_SjLj_RaiseException (struct _Unwind_Exception *);
|
||||
extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_SjLj_ForcedUnwind (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
|
||||
extern void LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_SjLj_Resume (struct _Unwind_Exception *);
|
||||
extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
|
||||
_Unwind_SjLj_Resume_or_Rethrow (struct _Unwind_Exception *);
|
||||
|
||||
/* @@@ The following provide access to the base addresses for text
|
||||
and data-relative addressing in the LDSA. In order to stay link
|
||||
compatible with the standard ABI for IA-64, we inline these. */
|
||||
|
||||
#ifdef __ia64__
|
||||
static inline _Unwind_Ptr
|
||||
_Unwind_GetDataRelBase (struct _Unwind_Context *_C)
|
||||
{
|
||||
/* The GP is stored in R1. */
|
||||
return _Unwind_GetGR (_C, 1);
|
||||
}
|
||||
|
||||
static inline _Unwind_Ptr
|
||||
_Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
|
||||
{
|
||||
__builtin_abort ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* @@@ Retrieve the Backing Store Pointer of the given context. */
|
||||
extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *);
|
||||
#else
|
||||
extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
|
||||
extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);
|
||||
#endif
|
||||
|
||||
/* @@@ Given an address, return the entry point of the function that
|
||||
contains it. */
|
||||
extern void * _Unwind_FindEnclosingFunction (void *pc);
|
||||
|
||||
#ifndef __SIZEOF_LONG__
|
||||
#error "__SIZEOF_LONG__ macro not defined"
|
||||
#endif
|
||||
|
||||
#ifndef __SIZEOF_POINTER__
|
||||
#error "__SIZEOF_POINTER__ macro not defined"
|
||||
#endif
|
||||
|
||||
|
||||
/* leb128 type numbers have a potentially unlimited size.
|
||||
The target of the following definitions of _sleb128_t and _uleb128_t
|
||||
is to have efficient data types large enough to hold the leb128 type
|
||||
numbers used in the unwind code.
|
||||
Mostly these types will simply be defined to long and unsigned long
|
||||
except when a unsigned long data type on the target machine is not
|
||||
capable of storing a pointer. */
|
||||
|
||||
#if __SIZEOF_LONG__ >= __SIZEOF_POINTER__
|
||||
typedef long _sleb128_t;
|
||||
typedef unsigned long _uleb128_t;
|
||||
#elif __SIZEOF_LONG_LONG__ >= __SIZEOF_POINTER__
|
||||
typedef long long _sleb128_t;
|
||||
typedef unsigned long long _uleb128_t;
|
||||
#else
|
||||
# error "What type shall we use for _sleb128_t?"
|
||||
#endif
|
||||
|
||||
#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
|
||||
/* Handles the mapping from SEH to GCC interfaces. */
|
||||
EXCEPTION_DISPOSITION _GCC_specific_handler (PEXCEPTION_RECORD, void *,
|
||||
PCONTEXT, PDISPATCHER_CONTEXT,
|
||||
_Unwind_Personality_Fn);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef HIDE_EXPORTS
|
||||
#pragma GCC visibility pop
|
||||
#endif
|
||||
|
||||
/* Additional actions to unwind number of stack frames. */
|
||||
#define _Unwind_Frames_Extra(frames)
|
||||
|
||||
/* Increment frame count. */
|
||||
#define _Unwind_Frames_Increment(context, frames) frames++
|
||||
|
||||
#endif /* unwind.h */
|
||||
7
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/varargs.h
Normal file
7
lib/gcc/loongarch32-linux-gnuf64/8.3.0/include/varargs.h
Normal file
@ -0,0 +1,7 @@
|
||||
#ifndef _VARARGS_H
|
||||
#define _VARARGS_H
|
||||
|
||||
#error "GCC no longer implements <varargs.h>."
|
||||
#error "Revise your code to use <stdarg.h>."
|
||||
|
||||
#endif
|
||||
@ -0,0 +1 @@
|
||||
;
|
||||
@ -0,0 +1,8 @@
|
||||
/* syslimits.h stands for the system's own limits.h file.
|
||||
If we can use it ok unmodified, then we install this text.
|
||||
If fixincludes fixes it, then the fixed version is installed
|
||||
instead of this text. */
|
||||
|
||||
#define _GCC_NEXT_LIMITS_H /* tell gcc's limits.h to recurse */
|
||||
#include_next <limits.h>
|
||||
#undef _GCC_NEXT_LIMITS_H
|
||||
@ -0,0 +1,14 @@
|
||||
This README file is copied into the directory for GCC-only header files
|
||||
when fixincludes is run by the makefile for GCC.
|
||||
|
||||
Many of the files in this directory were automatically edited from the
|
||||
standard system header files by the fixincludes process. They are
|
||||
system-specific, and will not work on any other kind of system. They
|
||||
are also not part of GCC. The reason we have to do this is because
|
||||
GCC requires ANSI C headers and many vendors supply ANSI-incompatible
|
||||
headers.
|
||||
|
||||
Because this is an automated process, sometimes headers get "fixed"
|
||||
that do not, strictly speaking, need a fix. As long as nothing is broken
|
||||
by the process, it is just an unfortunate collateral inconvenience.
|
||||
We would like to rectify it, if it is not "too inconvenient".
|
||||
@ -0,0 +1,197 @@
|
||||
/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* This administrivia gets added to the beginning of limits.h
|
||||
if the system has its own version of limits.h. */
|
||||
|
||||
/* We use _GCC_LIMITS_H_ because we want this not to match
|
||||
any macros that the system's limits.h uses for its own purposes. */
|
||||
#ifndef _GCC_LIMITS_H_ /* Terminated in limity.h. */
|
||||
#define _GCC_LIMITS_H_
|
||||
|
||||
#ifndef _LIBC_LIMITS_H_
|
||||
/* Use "..." so that we find syslimits.h only in this same directory. */
|
||||
#include "syslimits.h"
|
||||
#endif
|
||||
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _LIMITS_H___
|
||||
#define _LIMITS_H___
|
||||
|
||||
/* Number of bits in a `char'. */
|
||||
#undef CHAR_BIT
|
||||
#define CHAR_BIT __CHAR_BIT__
|
||||
|
||||
/* Maximum length of a multibyte character. */
|
||||
#ifndef MB_LEN_MAX
|
||||
#define MB_LEN_MAX 1
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed char' can hold. */
|
||||
#undef SCHAR_MIN
|
||||
#define SCHAR_MIN (-SCHAR_MAX - 1)
|
||||
#undef SCHAR_MAX
|
||||
#define SCHAR_MAX __SCHAR_MAX__
|
||||
|
||||
/* Maximum value an `unsigned char' can hold. (Minimum is 0). */
|
||||
#undef UCHAR_MAX
|
||||
#if __SCHAR_MAX__ == __INT_MAX__
|
||||
# define UCHAR_MAX (SCHAR_MAX * 2U + 1U)
|
||||
#else
|
||||
# define UCHAR_MAX (SCHAR_MAX * 2 + 1)
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `char' can hold. */
|
||||
#ifdef __CHAR_UNSIGNED__
|
||||
# undef CHAR_MIN
|
||||
# if __SCHAR_MAX__ == __INT_MAX__
|
||||
# define CHAR_MIN 0U
|
||||
# else
|
||||
# define CHAR_MIN 0
|
||||
# endif
|
||||
# undef CHAR_MAX
|
||||
# define CHAR_MAX UCHAR_MAX
|
||||
#else
|
||||
# undef CHAR_MIN
|
||||
# define CHAR_MIN SCHAR_MIN
|
||||
# undef CHAR_MAX
|
||||
# define CHAR_MAX SCHAR_MAX
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed short int' can hold. */
|
||||
#undef SHRT_MIN
|
||||
#define SHRT_MIN (-SHRT_MAX - 1)
|
||||
#undef SHRT_MAX
|
||||
#define SHRT_MAX __SHRT_MAX__
|
||||
|
||||
/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */
|
||||
#undef USHRT_MAX
|
||||
#if __SHRT_MAX__ == __INT_MAX__
|
||||
# define USHRT_MAX (SHRT_MAX * 2U + 1U)
|
||||
#else
|
||||
# define USHRT_MAX (SHRT_MAX * 2 + 1)
|
||||
#endif
|
||||
|
||||
/* Minimum and maximum values a `signed int' can hold. */
|
||||
#undef INT_MIN
|
||||
#define INT_MIN (-INT_MAX - 1)
|
||||
#undef INT_MAX
|
||||
#define INT_MAX __INT_MAX__
|
||||
|
||||
/* Maximum value an `unsigned int' can hold. (Minimum is 0). */
|
||||
#undef UINT_MAX
|
||||
#define UINT_MAX (INT_MAX * 2U + 1U)
|
||||
|
||||
/* Minimum and maximum values a `signed long int' can hold.
|
||||
(Same as `int'). */
|
||||
#undef LONG_MIN
|
||||
#define LONG_MIN (-LONG_MAX - 1L)
|
||||
#undef LONG_MAX
|
||||
#define LONG_MAX __LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
|
||||
#undef ULONG_MAX
|
||||
#define ULONG_MAX (LONG_MAX * 2UL + 1UL)
|
||||
|
||||
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
/* Minimum and maximum values a `signed long long int' can hold. */
|
||||
# undef LLONG_MIN
|
||||
# define LLONG_MIN (-LLONG_MAX - 1LL)
|
||||
# undef LLONG_MAX
|
||||
# define LLONG_MAX __LONG_LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
|
||||
# undef ULLONG_MAX
|
||||
# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
|
||||
#endif
|
||||
|
||||
#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
|
||||
/* Minimum and maximum values a `signed long long int' can hold. */
|
||||
# undef LONG_LONG_MIN
|
||||
# define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
|
||||
# undef LONG_LONG_MAX
|
||||
# define LONG_LONG_MAX __LONG_LONG_MAX__
|
||||
|
||||
/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
|
||||
# undef ULONG_LONG_MAX
|
||||
# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
|
||||
#endif
|
||||
|
||||
#ifdef __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
/* TS 18661-1 widths of integer types. */
|
||||
# undef CHAR_WIDTH
|
||||
# define CHAR_WIDTH __SCHAR_WIDTH__
|
||||
# undef SCHAR_WIDTH
|
||||
# define SCHAR_WIDTH __SCHAR_WIDTH__
|
||||
# undef UCHAR_WIDTH
|
||||
# define UCHAR_WIDTH __SCHAR_WIDTH__
|
||||
# undef SHRT_WIDTH
|
||||
# define SHRT_WIDTH __SHRT_WIDTH__
|
||||
# undef USHRT_WIDTH
|
||||
# define USHRT_WIDTH __SHRT_WIDTH__
|
||||
# undef INT_WIDTH
|
||||
# define INT_WIDTH __INT_WIDTH__
|
||||
# undef UINT_WIDTH
|
||||
# define UINT_WIDTH __INT_WIDTH__
|
||||
# undef LONG_WIDTH
|
||||
# define LONG_WIDTH __LONG_WIDTH__
|
||||
# undef ULONG_WIDTH
|
||||
# define ULONG_WIDTH __LONG_WIDTH__
|
||||
# undef LLONG_WIDTH
|
||||
# define LLONG_WIDTH __LONG_LONG_WIDTH__
|
||||
# undef ULLONG_WIDTH
|
||||
# define ULLONG_WIDTH __LONG_LONG_WIDTH__
|
||||
#endif
|
||||
|
||||
#endif /* _LIMITS_H___ */
|
||||
/* This administrivia gets added to the end of limits.h
|
||||
if the system has its own version of limits.h. */
|
||||
|
||||
#else /* not _GCC_LIMITS_H_ */
|
||||
|
||||
#ifdef _GCC_NEXT_LIMITS_H
|
||||
#include_next <limits.h> /* recurse down to the real one */
|
||||
#endif
|
||||
|
||||
#endif /* not _GCC_LIMITS_H_ */
|
||||
@ -0,0 +1,2 @@
|
||||
linux
|
||||
unix
|
||||
@ -0,0 +1,3 @@
|
||||
SYSTEM_HEADER_DIR="/home/guojie/work/loongson-gnu-toolchain-8.3-loongarch64-loongarch32-linux-gnuf64-20221212//sysroot${sysroot_headers_suffix}/usr/include"
|
||||
OTHER_FIXINCLUDES_DIRS=""
|
||||
STMP_FIXINC="stmp-fixinc"
|
||||
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libcaf_single.a
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libcaf_single.a
Normal file
Binary file not shown.
41
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libcaf_single.la
Executable file
41
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libcaf_single.la
Executable file
@ -0,0 +1,41 @@
|
||||
# libcaf_single.la - a libtool library file
|
||||
# Generated by libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a
|
||||
#
|
||||
# Please DO NOT delete this file!
|
||||
# It is necessary for linking the library.
|
||||
|
||||
# The name that we can dlopen(3).
|
||||
dlname=''
|
||||
|
||||
# Names of this library.
|
||||
library_names=''
|
||||
|
||||
# The name of the static archive.
|
||||
old_library='libcaf_single.a'
|
||||
|
||||
# Linker flags that can not go in dependency_libs.
|
||||
inherited_linker_flags=''
|
||||
|
||||
# Libraries that this one depends upon.
|
||||
dependency_libs=' -lm'
|
||||
|
||||
# Names of additional weak libraries provided by this library
|
||||
weak_library_names=''
|
||||
|
||||
# Version information for libcaf_single.
|
||||
current=0
|
||||
age=0
|
||||
revision=0
|
||||
|
||||
# Is this an already installed library?
|
||||
installed=yes
|
||||
|
||||
# Should we warn about portability when linking against -modules?
|
||||
shouldnotlink=no
|
||||
|
||||
# Files to dlopen/dlpreopen
|
||||
dlopen=''
|
||||
dlpreopen=''
|
||||
|
||||
# Directory that this library needs to be installed in:
|
||||
libdir='/home/guojie/work/loongson-gnu-toolchain-8.3-loongarch64-loongarch32-linux-gnuf64-20221212/lib/gcc/loongarch32-linux-gnuf64/8.3.0'
|
||||
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libgcc.a
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libgcc.a
Normal file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libgcc_eh.a
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libgcc_eh.a
Normal file
Binary file not shown.
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libgcov.a
Normal file
BIN
lib/gcc/loongarch32-linux-gnuf64/8.3.0/libgcov.a
Normal file
Binary file not shown.
32346
lib/gcc/loongarch32-linux-gnuf64/8.3.0/plugin/gtype.state
Normal file
32346
lib/gcc/loongarch32-linux-gnuf64/8.3.0/plugin/gtype.state
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,79 @@
|
||||
/****************************************************************************
|
||||
* *
|
||||
* GNAT COMPILER COMPONENTS *
|
||||
* *
|
||||
* GNAT-SPECIFIC GCC TREE CODES *
|
||||
* *
|
||||
* Specification *
|
||||
* *
|
||||
* Copyright (C) 1992-2009, Free Software Foundation, Inc. *
|
||||
* *
|
||||
* GNAT is free software; you can redistribute it and/or modify it under *
|
||||
* terms of the GNU General Public License as published by the Free Soft- *
|
||||
* ware Foundation; either version 3, or (at your option) any later ver- *
|
||||
* sion. GNAT is distributed in the hope that it will be useful, but WITH- *
|
||||
* OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License *
|
||||
* for more details. You should have received a copy of the GNU General *
|
||||
* Public License along with GCC; see the file COPYING3. If not see *
|
||||
* <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
* GNAT was originally developed by the GNAT team at New York University. *
|
||||
* Extensive contributions were provided by Ada Core Technologies Inc. *
|
||||
* *
|
||||
****************************************************************************/
|
||||
|
||||
/* A type that is an unconstrained array. This node is never passed to GCC.
|
||||
TREE_TYPE is the type of the fat pointer and TYPE_OBJECT_RECORD_TYPE is
|
||||
the type of a record containing the template and data. */
|
||||
DEFTREECODE (UNCONSTRAINED_ARRAY_TYPE, "unconstrained_array_type", tcc_type, 0)
|
||||
|
||||
/* A reference to an unconstrained array. This node only exists as an
|
||||
intermediate node during the translation of a GNAT tree to a GCC tree;
|
||||
it is never passed to GCC. The only field used is operand 0, which
|
||||
is the fat pointer object. */
|
||||
DEFTREECODE (UNCONSTRAINED_ARRAY_REF, "unconstrained_array_ref",
|
||||
tcc_reference, 1)
|
||||
|
||||
/* An expression that returns an RTL suitable for its type. Operand 0
|
||||
is an expression to be evaluated for side effects only. */
|
||||
DEFTREECODE (NULL_EXPR, "null_expr", tcc_expression, 1)
|
||||
|
||||
/* Same as PLUS_EXPR, except that no modulo reduction is applied.
|
||||
This is used for loops and never shows up in the tree. */
|
||||
DEFTREECODE (PLUS_NOMOD_EXPR, "plus_nomod_expr", tcc_binary, 2)
|
||||
|
||||
/* Same as MINUS_EXPR, except that no modulo reduction is applied.
|
||||
This is used for loops and never shows up in the tree. */
|
||||
DEFTREECODE (MINUS_NOMOD_EXPR, "minus_nomod_expr", tcc_binary, 2)
|
||||
|
||||
/* An expression that computes an exponentiation. Operand 0 is the base and
|
||||
Operand 1 is the exponent. This node is never passed to GCC: it is only
|
||||
used internally to describe fixed point types scale factors. */
|
||||
DEFTREECODE (POWER_EXPR, "power_expr", tcc_binary, 2)
|
||||
|
||||
/* Same as ADDR_EXPR, except that if the operand represents a bit field,
|
||||
return the address of the byte containing the bit. This is used
|
||||
for the Address attribute and never shows up in the tree. */
|
||||
DEFTREECODE (ATTR_ADDR_EXPR, "attr_addr_expr", tcc_reference, 1)
|
||||
|
||||
/* Here are the tree codes for the statement types known to Ada. These
|
||||
must be at the end of this file to allow IS_ADA_STMT to work. */
|
||||
|
||||
/* This is how record_code_position and insert_code_for work. The former
|
||||
makes this tree node, whose operand is a statement. The latter inserts
|
||||
the actual statements into this node. Gimplification consists of
|
||||
just returning the inner statement. */
|
||||
DEFTREECODE (STMT_STMT, "stmt_stmt", tcc_statement, 1)
|
||||
|
||||
/* A loop. LOOP_STMT_COND is the test to exit the loop. LOOP_STMT_UPDATE
|
||||
is the statement to update the loop iteration variable at the continue
|
||||
point. LOOP_STMT_BODY are the statements in the body of the loop. And
|
||||
LOOP_STMT_LABEL points to the LABEL_DECL of the end label of the loop. */
|
||||
DEFTREECODE (LOOP_STMT, "loop_stmt", tcc_statement, 4)
|
||||
|
||||
/* Conditionally exit a loop. EXIT_STMT_COND is the condition, which, if
|
||||
true, will cause the loop to be exited. If no condition is specified,
|
||||
the loop is unconditionally exited. EXIT_STMT_LABEL is the end label
|
||||
corresponding to the loop to exit. */
|
||||
DEFTREECODE (EXIT_STMT, "exit_stmt", tcc_statement, 2)
|
||||
@ -0,0 +1,90 @@
|
||||
/* Inline functions to test validity of reg classes for addressing modes.
|
||||
Copyright (C) 2006-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Wrapper function to unify target macros MODE_CODE_BASE_REG_CLASS,
|
||||
MODE_BASE_REG_REG_CLASS, MODE_BASE_REG_CLASS and BASE_REG_CLASS.
|
||||
Arguments as for the MODE_CODE_BASE_REG_CLASS macro. */
|
||||
|
||||
#ifndef GCC_ADDRESSES_H
|
||||
#define GCC_ADDRESSES_H
|
||||
|
||||
static inline enum reg_class
|
||||
base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
|
||||
addr_space_t as ATTRIBUTE_UNUSED,
|
||||
enum rtx_code outer_code ATTRIBUTE_UNUSED,
|
||||
enum rtx_code index_code ATTRIBUTE_UNUSED)
|
||||
{
|
||||
#ifdef MODE_CODE_BASE_REG_CLASS
|
||||
return MODE_CODE_BASE_REG_CLASS (MACRO_MODE (mode), as, outer_code,
|
||||
index_code);
|
||||
#else
|
||||
#ifdef MODE_BASE_REG_REG_CLASS
|
||||
if (index_code == REG)
|
||||
return MODE_BASE_REG_REG_CLASS (MACRO_MODE (mode));
|
||||
#endif
|
||||
#ifdef MODE_BASE_REG_CLASS
|
||||
return MODE_BASE_REG_CLASS (MACRO_MODE (mode));
|
||||
#else
|
||||
return BASE_REG_CLASS;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Wrapper function to unify target macros REGNO_MODE_CODE_OK_FOR_BASE_P,
|
||||
REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_OK_FOR_BASE_P and
|
||||
REGNO_OK_FOR_BASE_P.
|
||||
Arguments as for the REGNO_MODE_CODE_OK_FOR_BASE_P macro. */
|
||||
|
||||
static inline bool
|
||||
ok_for_base_p_1 (unsigned regno ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
addr_space_t as ATTRIBUTE_UNUSED,
|
||||
enum rtx_code outer_code ATTRIBUTE_UNUSED,
|
||||
enum rtx_code index_code ATTRIBUTE_UNUSED)
|
||||
{
|
||||
#ifdef REGNO_MODE_CODE_OK_FOR_BASE_P
|
||||
return REGNO_MODE_CODE_OK_FOR_BASE_P (regno, MACRO_MODE (mode), as,
|
||||
outer_code, index_code);
|
||||
#else
|
||||
#ifdef REGNO_MODE_OK_FOR_REG_BASE_P
|
||||
if (index_code == REG)
|
||||
return REGNO_MODE_OK_FOR_REG_BASE_P (regno, MACRO_MODE (mode));
|
||||
#endif
|
||||
#ifdef REGNO_MODE_OK_FOR_BASE_P
|
||||
return REGNO_MODE_OK_FOR_BASE_P (regno, MACRO_MODE (mode));
|
||||
#else
|
||||
return REGNO_OK_FOR_BASE_P (regno);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Wrapper around ok_for_base_p_1, for use after register allocation is
|
||||
complete. Arguments as for the called function. */
|
||||
|
||||
static inline bool
|
||||
regno_ok_for_base_p (unsigned regno, machine_mode mode, addr_space_t as,
|
||||
enum rtx_code outer_code, enum rtx_code index_code)
|
||||
{
|
||||
if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] >= 0)
|
||||
regno = reg_renumber[regno];
|
||||
|
||||
return ok_for_base_p_1 (regno, mode, as, outer_code, index_code);
|
||||
}
|
||||
|
||||
#endif /* GCC_ADDRESSES_H */
|
||||
@ -0,0 +1,47 @@
|
||||
/* Exported functions from alias.c
|
||||
Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef GCC_ALIAS_H
|
||||
#define GCC_ALIAS_H
|
||||
|
||||
extern alias_set_type new_alias_set (void);
|
||||
extern alias_set_type get_alias_set (tree);
|
||||
extern alias_set_type get_deref_alias_set (tree);
|
||||
extern alias_set_type get_varargs_alias_set (void);
|
||||
extern alias_set_type get_frame_alias_set (void);
|
||||
extern tree component_uses_parent_alias_set_from (const_tree);
|
||||
extern bool alias_set_subset_of (alias_set_type, alias_set_type);
|
||||
extern void record_alias_subset (alias_set_type, alias_set_type);
|
||||
extern void record_component_aliases (tree);
|
||||
extern int alias_sets_conflict_p (alias_set_type, alias_set_type);
|
||||
extern int alias_sets_must_conflict_p (alias_set_type, alias_set_type);
|
||||
extern int objects_must_conflict_p (tree, tree);
|
||||
extern int nonoverlapping_memrefs_p (const_rtx, const_rtx, bool);
|
||||
extern void dump_alias_stats_in_alias_c (FILE *s);
|
||||
tree reference_alias_ptr_type (tree);
|
||||
bool alias_ptr_types_compatible_p (tree, tree);
|
||||
int compare_base_decls (tree, tree);
|
||||
|
||||
/* This alias set can be used to force a memory to conflict with all
|
||||
other memories, creating a barrier across which no memory reference
|
||||
can move. Note that there are other legacy ways to create such
|
||||
memory barriers, including an address of SCRATCH. */
|
||||
#define ALIAS_SET_MEMORY_BARRIER ((alias_set_type) -1)
|
||||
|
||||
#endif /* GCC_ALIAS_H */
|
||||
@ -0,0 +1,7 @@
|
||||
#include "tree.def"
|
||||
END_OF_BASE_TREE_CODES
|
||||
#include "c-family/c-common.def"
|
||||
#include "ada/gcc-interface/ada-tree.def"
|
||||
#include "cp/cp-tree.def"
|
||||
#include "d/d-tree.def"
|
||||
#include "objc/objc-tree.def"
|
||||
@ -0,0 +1,567 @@
|
||||
/* Functions to support a pool of allocatable objects
|
||||
Copyright (C) 1997-2018 Free Software Foundation, Inc.
|
||||
Contributed by Daniel Berlin <dan@cgsoftware.com>
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
#ifndef ALLOC_POOL_H
|
||||
#define ALLOC_POOL_H
|
||||
|
||||
#include "memory-block.h"
|
||||
#include "options.h" // for flag_checking
|
||||
|
||||
extern void dump_alloc_pool_statistics (void);
|
||||
|
||||
/* Flag indicates whether memory statistics are gathered any longer. */
|
||||
extern bool after_memory_report;
|
||||
|
||||
typedef unsigned long ALLOC_POOL_ID_TYPE;
|
||||
|
||||
/* Last used ID. */
|
||||
extern ALLOC_POOL_ID_TYPE last_id;
|
||||
|
||||
/* Pool allocator memory usage. */
|
||||
struct pool_usage: public mem_usage
|
||||
{
|
||||
/* Default contructor. */
|
||||
pool_usage (): m_element_size (0), m_pool_name ("") {}
|
||||
/* Constructor. */
|
||||
pool_usage (size_t allocated, size_t times, size_t peak,
|
||||
size_t instances, size_t element_size,
|
||||
const char *pool_name)
|
||||
: mem_usage (allocated, times, peak, instances),
|
||||
m_element_size (element_size),
|
||||
m_pool_name (pool_name) {}
|
||||
|
||||
/* Sum the usage with SECOND usage. */
|
||||
pool_usage
|
||||
operator+ (const pool_usage &second)
|
||||
{
|
||||
return pool_usage (m_allocated + second.m_allocated,
|
||||
m_times + second.m_times,
|
||||
m_peak + second.m_peak,
|
||||
m_instances + second.m_instances,
|
||||
m_element_size, m_pool_name);
|
||||
}
|
||||
|
||||
/* Dump usage coupled to LOC location, where TOTAL is sum of all rows. */
|
||||
inline void
|
||||
dump (mem_location *loc, mem_usage &total) const
|
||||
{
|
||||
char *location_string = loc->to_string ();
|
||||
|
||||
fprintf (stderr, "%-32s%-48s %6li%10li:%5.1f%%%10li%10li:%5.1f%%%12li\n",
|
||||
m_pool_name, location_string, (long)m_instances,
|
||||
(long)m_allocated, get_percent (m_allocated, total.m_allocated),
|
||||
(long)m_peak, (long)m_times,
|
||||
get_percent (m_times, total.m_times),
|
||||
(long)m_element_size);
|
||||
|
||||
free (location_string);
|
||||
}
|
||||
|
||||
/* Dump header with NAME. */
|
||||
static inline void
|
||||
dump_header (const char *name)
|
||||
{
|
||||
fprintf (stderr, "%-32s%-48s %6s%11s%16s%17s%12s\n", "Pool name", name,
|
||||
"Pools", "Leak", "Peak", "Times", "Elt size");
|
||||
print_dash_line ();
|
||||
}
|
||||
|
||||
/* Dump footer. */
|
||||
inline void
|
||||
dump_footer ()
|
||||
{
|
||||
print_dash_line ();
|
||||
fprintf (stderr, "%s%82li%10li\n", "Total", (long)m_instances,
|
||||
(long)m_allocated);
|
||||
print_dash_line ();
|
||||
}
|
||||
|
||||
/* Element size. */
|
||||
size_t m_element_size;
|
||||
/* Pool name. */
|
||||
const char *m_pool_name;
|
||||
};
|
||||
|
||||
extern mem_alloc_d | ||||