mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-31 22:10:51 +02:00
+ Xtensa: RTL skeleton
git-svn-id: trunk@44320 -
This commit is contained in:
parent
34d1b90921
commit
83a6efd759
7
.gitattributes
vendored
7
.gitattributes
vendored
@ -12070,6 +12070,13 @@ rtl/x86_64/setjumph.inc svneol=native#text/plain
|
||||
rtl/x86_64/strings.inc svneol=native#text/plain
|
||||
rtl/x86_64/stringss.inc svneol=native#text/plain
|
||||
rtl/x86_64/x86_64.inc svneol=native#text/plain
|
||||
rtl/xtensa/cpuh.inc svneol=native#text/plain
|
||||
rtl/xtensa/makefile.cpu svneol=native#text/plain
|
||||
rtl/xtensa/math.inc svneol=native#text/plain
|
||||
rtl/xtensa/set.inc svneol=native#text/plain
|
||||
rtl/xtensa/setjump.inc svneol=native#text/plain
|
||||
rtl/xtensa/setjumph.inc svneol=native#text/plain
|
||||
rtl/xtensa/xtensa.inc svneol=native#text/plain
|
||||
tests/MPWMake -text
|
||||
tests/Makefile svneol=native#text/plain
|
||||
tests/Makefile.fpc svneol=native#text/plain
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0
|
||||
#
|
||||
default: all
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded
|
||||
BSDs = freebsd netbsd openbsd darwin dragonfly
|
||||
UNIXs = linux $(BSDs) solaris qnx haiku aix
|
||||
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
|
||||
@ -774,6 +774,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),riscv64-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),xtensa-embedded)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_LOADERS+=$(LOADERS)
|
||||
endif
|
||||
@ -1050,6 +1053,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),riscv64-embedded)
|
||||
override TARGET_LOADERS+=$(LOADERS)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),xtensa-embedded)
|
||||
override TARGET_LOADERS+=$(LOADERS)
|
||||
endif
|
||||
override INSTALL_FPCPACKAGE=y
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
@ -1327,6 +1333,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),riscv64-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),xtensa-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
@ -1603,6 +1612,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),riscv64-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),xtensa-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||
endif
|
||||
ifdef REQUIRE_UNITSDIR
|
||||
override UNITSDIR+=$(REQUIRE_UNITSDIR)
|
||||
endif
|
||||
|
@ -297,6 +297,14 @@ function do_isdevice(handle:thandle):boolean;forward;
|
||||
{$define SYSPROCDEFINED}
|
||||
{$endif cpuriscv64}
|
||||
|
||||
{$ifdef cpuxtensa}
|
||||
{$ifdef SYSPROCDEFINED}
|
||||
{$Error Can't determine processor type !}
|
||||
{$endif}
|
||||
{$i xtensa.inc} { Case dependent, don't change }
|
||||
{$define SYSPROCDEFINED}
|
||||
{$endif cpuxtensa}
|
||||
|
||||
{$ifndef SYSPROCDEFINED}
|
||||
{$Error Can't determine processor type !}
|
||||
{$endif}
|
||||
|
@ -348,6 +348,17 @@ Type
|
||||
{$endif}
|
||||
{$endif CPURISCV64}
|
||||
|
||||
{$ifdef CPUXTENSA}
|
||||
{$define DEFAULT_DOUBLE}
|
||||
|
||||
{$ifndef FPUNONE}
|
||||
{$define SUPPORT_SINGLE}
|
||||
{$define SUPPORT_DOUBLE}
|
||||
|
||||
ValReal = Double;
|
||||
{$endif}
|
||||
{$endif CPUXTENSA}
|
||||
|
||||
{$if not declared(FarPointer)}
|
||||
FarPointer = Pointer;
|
||||
{$endif}
|
||||
|
15
rtl/xtensa/cpuh.inc
Normal file
15
rtl/xtensa/cpuh.inc
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2016 by the Free Pascal development team.
|
||||
|
||||
CPU specific system unit header file
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program 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.
|
||||
|
||||
**********************************************************************}
|
6
rtl/xtensa/makefile.cpu
Normal file
6
rtl/xtensa/makefile.cpu
Normal file
@ -0,0 +1,6 @@
|
||||
#
|
||||
# Here we set processor dependent include file names.
|
||||
#
|
||||
|
||||
CPUNAMES=xtensa math set cpuh
|
||||
CPUINCNAMES=$(addsuffix .inc,$(CPUNAMES))
|
15
rtl/xtensa/math.inc
Normal file
15
rtl/xtensa/math.inc
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2003 by the Free Pascal development team.
|
||||
|
||||
Implementation of mathematical Routines (only for real)
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program 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.
|
||||
|
||||
**********************************************************************}
|
15
rtl/xtensa/set.inc
Normal file
15
rtl/xtensa/set.inc
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2003 by the Free Pascal development team.
|
||||
|
||||
Include file with set operations called by the compiler
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program 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.
|
||||
|
||||
**********************************************************************}
|
26
rtl/xtensa/setjump.inc
Normal file
26
rtl/xtensa/setjump.inc
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2003 by the Free Pascal development team.
|
||||
|
||||
SetJmp and LongJmp implementation for exception handling
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program 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.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
function fpc_setjmp(var S : jmp_buf) : longint;assembler;[Public, alias : 'FPC_SETJMP'];nostackframe; compilerproc;
|
||||
asm
|
||||
end;
|
||||
|
||||
|
||||
procedure fpc_longjmp(var S : jmp_buf;value : longint);assembler;[Public, alias : 'FPC_LONGJMP']; compilerproc;
|
||||
asm
|
||||
end;
|
||||
|
||||
|
25
rtl/xtensa/setjumph.inc
Normal file
25
rtl/xtensa/setjumph.inc
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2003 by the Free Pascal development team.
|
||||
|
||||
SetJmp/Longjmp declarations
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program 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.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
type
|
||||
jmp_buf = packed record
|
||||
end;
|
||||
pjmp_buf = ^jmp_buf;
|
||||
|
||||
function setjmp(var S : jmp_buf) : longint;[external name 'FPC_SETJMP'];
|
||||
procedure longjmp(var S : jmp_buf;value : longint);[external name 'FPC_LONGJMP'];
|
||||
|
||||
|
16
rtl/xtensa/xtensa.inc
Normal file
16
rtl/xtensa/xtensa.inc
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2003 by the Free Pascal development team.
|
||||
|
||||
Processor dependent implementation for the system unit for
|
||||
Xtensa
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program 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.
|
||||
|
||||
**********************************************************************}
|
Loading…
Reference in New Issue
Block a user