* in case of copying from the parameter location to the local location we need to use the alignment size for the source as byte/word values are passed as LongInts (this is how the ABI is specified)
git-svn-id: trunk@22924 -
- Removed separate ELF section names for PIC. The only difference was .data named .data.rel; however .rel suffix has nothing to do with PIC. It only signifies that the section has relocations so such sections can be grouped together in output file and reduce number of pages for dynamic linker to visit while resolving the relocations at load time. At the same time, no existing link scripts distinguish between .rel and any other suffix (except .rel.ro, but it's a different story), meaning that long section names will break .rel grouping.
While support for .data.rel can be added similar to existing rodata handling (separate sec_data and sec_data_norel sections), this doesn't seem worth the trouble.
git-svn-id: trunk@22915 -
* Simplified .shstrtab handling between passes by using oso_debug_copy attribute on it.
- Don't recreate segment mapping: only debug sections are removed between passes, and they are never part of any segment.
git-svn-id: trunk@22914 -
that were removed (e.g. most of QuickDraw) were kept. Most changes are
related to deprecation notices, or the fact that certain headers have
become available on iOS. This version corresponds to r393 of the
macosxintf repository.
There were also a number of small corrections to existing declarations:
o several opaque types have been changed from ^SInt32 into pointers to
different empty records. That means that these types are no longer
assignment-compatible. Some of the more prominent ones that may affect
existing *correct* code are HIObject and ControlRef=HIViewRef. This
may require adding typecasts to keep code compiling (the same typecasts
are required in C)
o CGGLContextCreate : fixed first parameter (was "var", now is value
parameter)
o CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because
can be nil
o CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can
be nil
o ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr
because can be nil
o AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer
because can be nil
o cblas (several var-parametes changed to pointers because they represent
arrays):
o cblas_sswap, cblas_dswap: X, Y
o cblas_scopy, cblas_dcopy: Y
o cblas_saxpy, cblas_daxpy: Y
o catlas_saxpby, catlas_daxpby: Y
o catlas_sset, catlas_dset: X
o cblas_sscal, cblas_dscal: X
o cblas_sgemv, cblas_dgemv: X
o cblas_strmv, cblas_dtrmv: X
o cblas_stbmv, cblas_dtbmv: X
o cblas_stpmv, cblas_dtpmv: Ap, X
o cblas_strsv, cblas_dtrsv: X
o cblas_stbsv, cblas_dtbsv: X
o cblas_stpsv, cblas_dtpsv: Ap, X
o cblas_ssymv, cblas_dsymv: X
o cblas_ssbmv, cblas_dsbmv: Y
o cblas_sspmv, cblas_dspmv: Ap, Y
o cblas_sger, cblas_dger: A
o cblas_ssyr, cblas_dsyr: A
o cblas_sspr, cblas_dspr: Ap
o cblas_ssyr2, cblas_dsyr2: A
o cblas_sspr2, cblas_dspr2: A
o cblas_sgemm, cblas_sgemm: C
o cblas_ssymm, cblas_Dsymm: C
o cblas_ssyrk, cblas_dsyrk: C
o cblas_ssyr2k, cblas_dsyr2k: C
o cblas_strmm, cblas_dtrmm: B
o cblas_strsm, cblas_strsm: B
o vBLAS (idem)
o SDOT: X, Y
o SNRM2: X
o SASUM: X
o ISAMAX: X
o SSWAP: X, Y
o SCOPY: X, Y
o SAXPY: X, Y
o SROT: X, Y
o SSCAL: X
o SGEMV, A, X, Y
o SGEMM: A, B, C
o vDSP (idem)
o vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A
o vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C
git-svn-id: trunk@22897 -
+ add routine "call_rtl_moddiv_reg_reg" which handles the calling of "fpc_div_longint", "fpc_div_dword", "fpc_mod_longint" and "fpc_mod_dword"
* emit_mod_reg_reg & emit_div_reg_reg: use the new method instead of doing the call oneself
=> "Str(SomeInt, SomeStr)" and "Writeln(SomeInt)" now works
git-svn-id: trunk@22893 -
+ add methods "call_rtl_mul_const_reg" and "call_rtl_mul_reg_reg" which can call the RTL helpers "fpc_mul_longint" and "fpc_mul_longword" (based on AVR code)
* use the new call methods for the RTL to correctly pass the parameters (on the stack, not in registers...)
git-svn-id: trunk@22892 -
* don't do a sign_extend, but use the correct move size to copy the const; this fixes the setting of the line ending style inside of "Assign"
=> output of strings does now work correctly!
git-svn-id: trunk@22890 -
(allows retrieval of various connection related informations like type and version of DBMS, name and version of client library)
* implements this method for MySQL, PostgreSQL, SQLite, ODBC
Patch by DB-Core team
git-svn-id: trunk@22886 -
completely disable the "fast loop" code for Coldfire instead of "hackfixing" it; with this StdIO starts to work (though one byte is missing at the end...)
git-svn-id: trunk@22883 -
* TExeOutput.WriteExeSectionContent: To write proper gap between exe sections, don't align writer position. The desired position is present in exesection.DataPos, so pad right up to it.
git-svn-id: trunk@22881 -
Up until now we only checked the next instruction, with the new load
scheduler this is insufficient as shift-instructions and next usage
might farther apart.
The new version uses GetNextInstructionUsingReg, this also comes with a
price as we very carefully have to check if one of the used registers is
changed and that the usage of RRX will not break when we fold and flags
get changed in between.
git-svn-id: trunk@22876 -