Commit Graph

40862 Commits

Author SHA1 Message Date
Jonas Maebe
eb93429cf0 * prefer "constant string" -> pwidechar for {$modeswitch unicodestrings}
* prefer "constant char" -> pchar to "constant char" -> pwidechar, and
    "constant widechar" -> pwidechar to "constant widechar" -> pchar

git-svn-id: branches/cpstrrtl@24997 -
2013-06-27 21:38:02 +00:00
Jonas Maebe
c49ae76837 * let StrBufSize return a cardinal rather than a sizeuint, and also change
its internal pointer arithmetic to use cardinal, because that's also what
    stralloc uses to initialize that value

git-svn-id: branches/cpstrrtl@24996 -
2013-06-27 21:37:58 +00:00
Jonas Maebe
8f1e85d9ae * moved SameFileName from finah.inc to sysansih.inc, since the implementation
is in sysansi.inc

git-svn-id: branches/cpstrrtl@24995 -
2013-06-27 21:37:55 +00:00
Jonas Maebe
95a877c7e5 * moved GetFileHandle() from fina.inc to filutil.inc because fina.inc
will be included twice using different string types (and those two
    routines don't have a string argument, so this would result in duplicate
    definitions), and their declaration is in filutilh.inc rather than
    finah.inc anyway
  * ensure that the fina.inc "MaxDirs" constant gets declared only once
  * ensure that the finah.inc "TFilenameCaseMatch" type gets declared only
    once

git-svn-id: branches/cpstrrtl@24994 -
2013-06-27 21:37:51 +00:00
Jonas Maebe
62ee16278b * changed getdir(ansistring):ansistring to
getdir(rawbytestring):rawbytestring so it can accept strings in any
    encoding and cleanly return results in DefaultRTLFileSystemCodePage
  + getdir(unicodestring):unicodestring
  * renamed the getdir implementation of all platforms except for embedded-
    without-ansistring-support to do_getdir(), and depending on the
    FPCRTL_FILESYSTEM_SINGLE_BYTE_API/FPCRTL_FILESYSTEM_TWO_BYTE_API define
    changed its shortstring parameter to ansistring or unicodestring. The
    do_getdir(rawbytestring) routine should just set the code page of the
    return value to DefaultFileSystemCodePage without conversion (not
    DefaultRTLFileSystemCodePage with conversion, that conversion is performed
    in getdir if necessary; this avoids double conversions in case
    getdir(unicodestring) is called)
  + generic getdir(shortstring) for platforms supporting either ansistrings or widestrings
  o platform maintainers:
   o OS/2: adjust code to supports paths > 255 characters if those are supported
   o Wii: adjust used callback to use rawbytestring to support paths > 255 characters and
     avoid shortstring->rawbytestring conversion overhead
   o Windows: GetCurrentDirectoryW is now always used (to prevent data loss)

git-svn-id: branches/cpstrrtl@24993 -
2013-06-27 21:37:47 +00:00
Jonas Maebe
679785f90c + rawbytestring and unicodestring versions of DoDirSeparators (optimised to
prevent calling uniquestring multiple times)

git-svn-id: branches/cpstrrtl@24992 -
2013-06-27 21:37:43 +00:00
Jonas Maebe
da7a67bc74 + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we
use a single byte API for file system operations
  + FPCRTL_FILESYSTEM_TWO_BYTE_API define that is set for targets where we
    use a single byte API for file system operations
   o in principle, both can be set if both are supprted and implemented in
     the RTL in order to minimise conversions depending on the scenario

git-svn-id: branches/cpstrrtl@24991 -
2013-06-27 21:37:39 +00:00
Jonas Maebe
7659bfc01b - removed internal error if savesize of tfiledef is 0 when writing the def
to the ppu file, because it does not exist on the JVM platform and
    hence will be 0 (and on other platforms, you'll get a fatal error earlier
    in case the filerec type cannot be found) (originally added as part of
    r24957)

git-svn-id: branches/cpstrrtl@24990 -
2013-06-27 21:37:32 +00:00
Jonas Maebe
ba7fc58bed * declare tsyscharset as a set of ansichar instead of as a set of char
(widechar sets are not (yet?) supported)

git-svn-id: branches/cpstrrtl@24989 -
2013-06-27 21:37:29 +00:00
Jonas Maebe
4c7605d6bf * fixed duplicate StringToTB definition error in r22467; only kept the
new StringToTB implementation (rawbytestring), because it ensures we
    don't overflow the transfer buffer size

git-svn-id: branches/cpstrrtl@24988 -
2013-06-27 21:37:25 +00:00
Jonas Maebe
1e167a5fd3 * updated address of FSF (mantis #24646, patch by Alexey Svistunov)
git-svn-id: trunk@24987 -
2013-06-27 14:04:34 +00:00
Jonas Maebe
81597bf171 * updated address of FSF (mantis #24646, patch by Alexey Svistunov)
git-svn-id: trunk@24986 -
2013-06-27 14:01:18 +00:00
Jonas Maebe
345ca6f187 * prevent going through (the expensive) InternalSetCodePage when changing
the code page of a string with refcount=1 and without conversion (happens
    a lot in internal RTL routines)

git-svn-id: trunk@24985 -
2013-06-27 13:11:57 +00:00
pierre
277ae481b8 Add passing of -k option to linker for msdos and go32v2 targets
git-svn-id: trunk@24981 -
2013-06-26 22:27:16 +00:00
florian
b78d6108fd * workaround for 2.6.x to avoid overflow errors when compiled with -CRiot
git-svn-id: trunk@24980 -
2013-06-26 21:40:52 +00:00
marco
56e9f9301c * First set of patches for making mergable CHM files, committed after a point with 0 regressions.
* IDXHDR internal file added.
    * better defaults for [Windows] lines.
    * Avoid duplication topic if both in index and separately in hhp. Size reduction for many hhp scenarios, no difference for fpdoc
    * System section 13 (copy of idxhdr)
    * index/toc files registered as topic type 2. (incontents field)
      * duplicate code for creating topics cleaned up, all now use addtopic
    * correct number of topics in system file.
    * some bugfixes in binary index.
    * some more global properties supported in sitemaps.

 * many extra (dumping) options for chmls tool.

git-svn-id: trunk@24979 -
2013-06-26 14:31:30 +00:00
sergei
87cfd86172 * Define SUPPORT_GET_FRAME for targets having "get_frame" as internal symbol (x86,arm and jvm, currently), removes need to enumerate these targets in every related conditional compilation directive and simplifies configuring this feature for other targets.
git-svn-id: trunk@24978 -
2013-06-26 11:03:24 +00:00
nickysn
f7d3f7cd33 * use create_nil_dataptr instead of create_sym(nil) in TRTTIWriter.write_rtti_reference; among other things, this fixes writeln(enum) in the i8086 medium memory model
git-svn-id: trunk@24977 -
2013-06-25 21:02:55 +00:00
nickysn
784333edbb + added tai_const.Create_nil_codeptr and .Create_nil_dataptr, which should eventually replace tai_const.Create_sym(nil)
git-svn-id: trunk@24976 -
2013-06-25 20:57:12 +00:00
florian
844806cb19 * renamed parameter bp (x86 ism) into fp for dump_stack
* more sanity checks if fp really points into the stack

git-svn-id: trunk@24975 -
2013-06-25 19:46:08 +00:00
florian
f50e25afa0 * tests built/updated using gcc 4.8.1
git-svn-id: trunk@24974 -
2013-06-25 18:58:06 +00:00
nickysn
6c1262049e * tai_const.Create_sym_offset: follow the default i8086 data (instead of code) pointer size for asm symbols with typ=AT_DATA
git-svn-id: trunk@24973 -
2013-06-25 15:12:00 +00:00
marco
eebfeca41d * removed all ver2_* defines older than 2_4. 2_4 can probably also get removed from trunk, but better in a separate commit.
git-svn-id: trunk@24971 -
2013-06-25 12:46:30 +00:00
sergei
89c9cdf6c4 + MIPS: implemented parameter location reusing, eliminating second copy of (potentially large) records passed by value. When parameter is passed both in registers and stack, let it have a single LOC_REFERENCE location on callee side, and store relevant registers on stack (into 16-byte area reserved by ABI) early in prologue.
git-svn-id: trunk@24970 -
2013-06-25 08:15:17 +00:00
Jonas Maebe
b0613d9ec5 * converted Windows FileCreate/FileOpen to use unicode interface instead of
ansistring

git-svn-id: branches/cpstrrtl@24969 -
2013-06-24 21:24:13 +00:00
Jonas Maebe
ff87431565 - removed "PathOnly" field from Unix TSearchRec (deprecated since 2.4.0, not
initialised or used on any target))

git-svn-id: branches/cpstrrtl@24968 -
2013-06-24 21:24:09 +00:00
florian
466eb4c684 * use MOVAPS/MOVAPD for reg -> reg moves to reduce data dependencies
git-svn-id: trunk@24967 -
2013-06-24 20:55:04 +00:00
florian
e44d33f4db * rebuild with gcc 4.7.2, tcalext6 still fails because struct struct1 (one single value) is still returned on the fpu stack by gcc, this is not abi compliant on windows
git-svn-id: trunk@24966 -
2013-06-24 20:53:52 +00:00
pierre
91821acfc6 Use new conditional CPUSMALL and define it for m68k and 8086 cpu to use small array size
git-svn-id: trunk@24964 -
2013-06-24 15:40:08 +00:00
sergei
1419a12865 - Removed MIPS-specific code which has been copied to TMIPSProcinfo.set_first_temp_offset in r23885.
git-svn-id: trunk@24963 -
2013-06-24 12:02:17 +00:00
Jonas Maebe
e65d01a717 * small optimisation for ToSingleByteFileSystemEncodedFileName(rawbytestring):
don't call SetCodePage() if the input already has the correct code page
    (SetCodePage would always make the string unique, which is not necessary)

git-svn-id: branches/cpstrrtl@24962 -
2013-06-24 09:40:06 +00:00
Jonas Maebe
980975ff85 * fixed fpc_UnicodeStr_SetLength for 2.6.x bootstrapping
git-svn-id: branches/cpstrrtl@24961 -
2013-06-24 09:40:03 +00:00
Jonas Maebe
3694b4f003 * moved ToSingleByteFileSystemEncodedFileName() to the system unit and
export it so it can be used in all rtl units

git-svn-id: branches/cpstrrtl@24960 -
2013-06-24 09:40:00 +00:00
Jonas Maebe
e6c812a60a * assume unicode in case of FPC_OS_UNICODE instead of only for WinCE
git-svn-id: branches/cpstrrtl@24959 -
2013-06-24 09:39:57 +00:00
Jonas Maebe
112fafc6fd + paramstr(longint):unicode string function in uuchar
* optimised objpas.paramstr (let the compiler convert the pchar to
    ansistring instead of using an unoptimised loop)

git-svn-id: branches/cpstrrtl@24958 -
2013-06-24 09:39:54 +00:00
Jonas Maebe
5a72bc3656 * export filerec/textrec from the system unit and use them in the compiler
to determine their size, rather than hardcoding the size for all possible
    configurations

git-svn-id: branches/cpstrrtl@24957 -
2013-06-24 09:39:50 +00:00
florian
19495439b1 * do not destroy the left operand in second_ansistring_to_pchar if it is a register
git-svn-id: trunk@24954 -
2013-06-23 15:16:33 +00:00
florian
541d67771b * keep managed types in registers if possible. Under certain circumstances (if they don't require init/final code,
e.g. being a const parameter or immutable temp. values), managed types like dyn. arrays, new string types and interfaces can be kept in registers.

git-svn-id: trunk@24953 -
2013-06-23 15:16:30 +00:00
nickysn
58b22adaf1 + added function cpubase.segment_regs_equal, which checks whether 2 segment regs are equal in the current memory model
git-svn-id: trunk@24949 -
2013-06-23 11:27:00 +00:00
paul
5a6b6d2c4d rtl: fix loading of long integer values to float properties
git-svn-id: trunk@24947 -
2013-06-23 11:18:25 +00:00
marco
72b0e72580 * added a fix for crashes on very short fpdoc projects. x.y.z.count was examined without checking x,y and z existed.
Fixes Mantis #24579

git-svn-id: trunk@24943 -
2013-06-23 09:10:15 +00:00
florian
00b03de7f0 * split SetCodePage into a wrapper and a function doing the real work to get rid of exception frames in the simple case
git-svn-id: trunk@24942 -
2013-06-22 18:19:50 +00:00
michael
2b6f33711b * Patch from Ludo Brands to implement InstanceName (Bug ID 24635)
git-svn-id: trunk@24932 -
2013-06-22 13:50:44 +00:00
sergei
4a9fe5d07d * Fixed register live range in for-loops:
o Loop counter node is "left", not "right",
  o End-value register needs explicit sync.

Without these changes, allocating registers in hlcg.a_cmp_reg_loc_label (at the end of loop) could reuse counter or end-value register, resulting in invalid code.

git-svn-id: trunk@24924 -
2013-06-21 15:26:14 +00:00
marco
ac3815fd84 * hopefully final series of tchar elimination.
git-svn-id: trunk@24923 -
2013-06-21 13:55:54 +00:00
marco
d7f3ab848b * fixed some more tchar cases into a proper ifdef unicode -W else -A structure.
git-svn-id: trunk@24922 -
2013-06-21 13:11:43 +00:00
marco
993bc2511f * Patch from Ocean, Mantis #24625 adding ISimpleFrameSite,IFont,IFontDisp,IPictureDisp
git-svn-id: trunk@24920 -
2013-06-21 10:23:13 +00:00
michael
2842b90e1c * Patch from Laco to define SQL_IDENTIFIER_CASE
git-svn-id: trunk@24919 -
2013-06-21 09:23:40 +00:00
sergei
456f991c51 * MIPS: 3-operand forms of DIV and DIVU are not macros if first operand is $zero.
git-svn-id: trunk@24918 -
2013-06-20 13:14:38 +00:00
pierre
6e9489c41e Add annotate_displaty_prompt added before GDB 7.6 release
git-svn-id: trunk@24917 -
2013-06-19 13:45:27 +00:00