mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-07-20 17:55:58 +02:00

in the system unit for easier debugging) * disabled a bunch more feature flags by default for the JVM target * incorporate modified version of inc/systemh.inc (split into two parts: jsystemh_types.inc and jsystemh.inc, because some of the types are required for the declaration of the shortstring/ansistring/set/... classes, which in turn are required for the routine declarations) and inc/system.inc (as jsystem.inc) o moved some routines around from old to new locations based on where they appear in the common files o added a number of defines that allow skipping more common implementations in case a platform-specific one is already available * all base classes (AnsistringClass etc) are now descendants of JLObject rather than TObject, because their declaration is now parsed before TObject is known (and there's no need for them to inherit from TObject) * incorporate modified version of inc/system.inc * use the common version of generic.inc, currh.inc, gencurr.inc and genmath.inc (with small modification to those files) + addition of quite a bit of system unit functionality (halt, runerror, random, round, str() for integer types, abs, odd, endian swapping helpers, bit scanning, trigonometric functions, ln, exp, ...) o round()/trunc() for comp-types has been renamed trunc_comp() on the JVM target because their JVM signature conflicts with trunc(currency) o the unsigned versions of swapendian() and other endian helpers are not available on the JVM target because of JVM signature conflicts git-svn-id: branches/jvmbackend@18746 -
103 lines
3.5 KiB
ObjectPascal
103 lines
3.5 KiB
ObjectPascal
{
|
|
Copyright (c) 2010 by Jonas Maebe
|
|
|
|
This unit implements support information structures for FreeBSD/NetBSD,
|
|
OpenBSD and Darwin (Mac OS X)
|
|
|
|
This program 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 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
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. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
****************************************************************************
|
|
}
|
|
|
|
unit i_jvm;
|
|
|
|
{$i fpcdefs.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
systems;
|
|
|
|
const
|
|
{ The 32 only means that code written for this target behaves
|
|
semantically as if it were written for a 32 bit target (default
|
|
integer evaluation width = 32 bit). It will work equally well on 32
|
|
bit and 64 bit JVM implementations. }
|
|
system_jvm_java32_info : tsysteminfo =
|
|
(
|
|
system : system_jvm_java32;
|
|
name : 'Java Virtual Machine';
|
|
shortname : 'Java';
|
|
flags : [tf_files_case_sensitive,tf_no_generic_stackcheck,
|
|
{ avoid the creation of threadvar tables }
|
|
tf_section_threadvars];
|
|
cpu : cpu_jvm;
|
|
unit_env : '';
|
|
extradefines : '';
|
|
exeext : '';
|
|
defext : '.def';
|
|
scriptext : '.sh';
|
|
smartext : '.sl';
|
|
unitext : '.ppu';
|
|
unitlibext : '.ppl';
|
|
asmext : '.j';
|
|
objext : '.class';
|
|
resext : '.res';
|
|
resobjext : '.or';
|
|
sharedlibext : '.jar';
|
|
staticlibext : '.jar';
|
|
staticlibprefix : '';
|
|
sharedlibprefix : '';
|
|
sharedClibext : '.jar';
|
|
staticClibext : '.jar';
|
|
staticClibprefix : '';
|
|
sharedClibprefix : '';
|
|
importlibprefix : '';
|
|
importlibext : '.jar';
|
|
Cprefix : '';
|
|
newline : #10;
|
|
dirsep : '/';
|
|
assem : as_jvm_jasmin;
|
|
assemextern : as_jvm_jasmin;
|
|
link : nil;
|
|
linkextern : nil;
|
|
ar : ar_none;
|
|
res : res_none;
|
|
dbg : dbg_jasmin;
|
|
script : script_unix;
|
|
endian : endian_big;
|
|
alignment :
|
|
(
|
|
procalign : 4;
|
|
loopalign : 4;
|
|
jumpalign : 0;
|
|
constalignmin : 0;
|
|
constalignmax : 4;
|
|
varalignmin : 4;
|
|
varalignmax : 4;
|
|
localalignmin : 4;
|
|
localalignmax : 4;
|
|
recordalignmin : 0;
|
|
recordalignmax : 2;
|
|
maxCrecordalign : 4
|
|
);
|
|
first_parm_offset : 0;
|
|
stacksize : 262144;
|
|
abi : abi_default;
|
|
);
|
|
|
|
implementation
|
|
|
|
end.
|