Commit Graph

44842 Commits

Author SHA1 Message Date
Jonas Maebe
0ce5a1de7f + IsSimpleRef() function that can be used to determine whether a reference
is a valid AArch64 memory reference or not. It returns an enum that says
    it's either valid, invalid, or invalid in a way that should trigger an
    internal error in case we created the reference ourselves (as opposed to
    it coming in via the assembler reader)

git-svn-id: trunk@29846 -
2015-02-23 22:49:07 +00:00
Jonas Maebe
84cea76f7a * ARM64 -> AArch64
git-svn-id: trunk@29845 -
2015-02-23 22:49:04 +00:00
Jonas Maebe
19d47610ad * added error checking to spilling_create_load/store
git-svn-id: trunk@29844 -
2015-02-23 22:49:01 +00:00
Jonas Maebe
92b644a19f + taicpu.op_reg_reg_const_shifterop()
* made shifterop parameter of taicpu.op_reg_reg_reg_shifterop() const

git-svn-id: trunk@29843 -
2015-02-23 22:48:58 +00:00
Jonas Maebe
f5950ac4cd + added remaining aarch64 shift/extension modes
git-svn-id: trunk@29842 -
2015-02-23 22:48:55 +00:00
Jonas Maebe
24d3b1cdf6 + tcgsizep2size[] to convert a tcgsize to its power-of-2 bytesize
git-svn-id: trunk@29841 -
2015-02-23 22:48:52 +00:00
Jonas Maebe
a49d386541 + SW postfix for sign extending a 32 bit integer
git-svn-id: trunk@29840 -
2015-02-23 22:48:49 +00:00
Jonas Maebe
ff61aba3fe * there is no ROR shiftmode on AArch64
git-svn-id: trunk@29839 -
2015-02-23 22:48:46 +00:00
Jonas Maebe
cd6e3d5622 * fixed another compilation error
git-svn-id: trunk@29838 -
2015-02-23 22:48:43 +00:00
Jonas Maebe
544c8d34ec + taicpu.op_reg_const_shifterop() constructor
git-svn-id: trunk@29837 -
2015-02-23 22:48:40 +00:00
Jonas Maebe
3cfa91a249 * enable cgsize2subreg() and cgsize2subreg() to differentiate between 32 and
64 bit integer registers

git-svn-id: trunk@29836 -
2015-02-23 22:48:37 +00:00
Jonas Maebe
df8b644190 - removed some ARM leftovers
git-svn-id: trunk@29835 -
2015-02-23 22:48:33 +00:00
Jonas Maebe
fc235c9400 * fixed warnings
git-svn-id: trunk@29834 -
2015-02-23 22:48:30 +00:00
Jonas Maebe
76d779b648 * added SW suffix
git-svn-id: trunk@29833 -
2015-02-23 22:48:27 +00:00
Jonas Maebe
c0548cadb0 * added some missing instructions and aliases, reordered them according
to how they appear in the ARM ARM
   o in particular, added the "unscaled offset" variants of instructions as
     separate opcodes (seems simpler than handling them as postfixes)

git-svn-id: trunk@29832 -
2015-02-23 22:48:24 +00:00
Jonas Maebe
f1b619a942 * made (X|W)ZR and (W)SP separate registers, because a number of
instructions can use either depending on the encoding

git-svn-id: trunk@29831 -
2015-02-23 22:48:21 +00:00
Jonas Maebe
e8c9b94147 * X29 is callee-saved
git-svn-id: trunk@29830 -
2015-02-23 22:48:18 +00:00
Jonas Maebe
3f5e95791b * use iosxwstr instead of cwstring on Darwin (for iOS 7+ testing)
git-svn-id: trunk@29829 -
2015-02-23 22:48:15 +00:00
Jonas Maebe
a56d94230f + iosxwstr unit that uses CoreFoundation where possible for the widestring
manager routines (in particular for locale-based routines, such as upper/
    lowercase), and which falls back to cwstring for functionality not
    supported by CoreFoundation (such as converting an UTF-8 string with
    illegal sequences to a different encoding)
   o this unit is particularly useful on iOS 7 (and 8?), as Apple no
     longer includes command line locale information on that platform and
     hence locale-dependent libc routines only work with the "C" locale
     there)

git-svn-id: trunk@29828 -
2015-02-23 22:48:11 +00:00
Jonas Maebe
67c9d60b72 * factored out the check regarding whether the index of a vecn needs to be
loaded into a register because of its size
   o by default, also allow if the size is the same as OS_ADDR but with a
     different sign

git-svn-id: trunk@29827 -
2015-02-23 22:48:08 +00:00
Jonas Maebe
73a9dc8077 * fixed formatting
git-svn-id: trunk@29826 -
2015-02-23 22:48:05 +00:00
Jonas Maebe
f886fe49d6 * only prepend the sysroot path to -Fl paths if these paths are absolute;
if they are not, they should be interpreted relative to the current
    directory instead (solves compiling tests that depend on a library
    when cross-testing for a platform with a sysroot)

git-svn-id: trunk@29825 -
2015-02-23 22:48:02 +00:00
Jonas Maebe
bc3d495285 * extra error checking in gen_load_cgpara_loc
git-svn-id: trunk@29824 -
2015-02-23 22:47:59 +00:00
Jonas Maebe
3fe0bd065e * ARM assembler reader: don't check for postfixes beyond the length
of the opcode

git-svn-id: trunk@29823 -
2015-02-23 22:47:56 +00:00
Jonas Maebe
1dd5f579e6 * support record fields with the same name as registers in subscripts in
the assembler reader

git-svn-id: trunk@29822 -
2015-02-23 22:47:53 +00:00
Jonas Maebe
504a9d1594 * fixed register sizes in a_load_ref_reg_unaligned()
git-svn-id: trunk@29821 -
2015-02-23 22:47:50 +00:00
Jonas Maebe
290e3f5ff8 * fixed assigning one float loc_reference to another of a different size if a
platform does not support (hl)cg.a_loadfpu_*, but only (hl)cg.a_loadmm_*

git-svn-id: trunk@29820 -
2015-02-23 22:47:47 +00:00
Jonas Maebe
c764826bb3 * check whether we are explicitly typecasting untypedpointer^ before other
cases (that depend on the sizes of the typecast matching) so that we
    can (internally) generate typecasts to open array/array of const

git-svn-id: trunk@29819 -
2015-02-23 22:47:44 +00:00
Jonas Maebe
aae879d28a * also set aktcallnode during tcallnode.pass_1, so that the callparanode
pass_1 code can make use of it

git-svn-id: trunk@29818 -
2015-02-23 22:47:41 +00:00
Jonas Maebe
863e81315e * changed goto usage in tcallnode.pass_typecheck into try/finally (and at
the same time solved some issues where "exit" instead of "goto errorexit"
    was used)

git-svn-id: trunk@29817 -
2015-02-23 22:47:38 +00:00
Jonas Maebe
68303b8df1 * add explicit check that argument of sizeof(x) is a simple load node (this
was already assumed later on)

git-svn-id: trunk@29816 -
2015-02-23 22:47:35 +00:00
Jonas Maebe
b8c8ef8489 * support transfering a cgpara that is stored in multiple paralocs into a
single register, by first storing everything consecutively to memory and
    then loading it. Required for "homogeneous float aggregates" on AArch64

git-svn-id: trunk@29815 -
2015-02-23 22:47:32 +00:00
Jonas Maebe
e6511bcb33 * support multiple paralocs in a_load_reg_cgpara() by taking a round trip
via a_load_ref_cgpara()

git-svn-id: trunk@29814 -
2015-02-23 22:47:29 +00:00
nickysn
9be4e6a0de * made the registers shown in the registers window depend on the target CPU
defines, instead of the host CPU defines (i.e. i386 instead of cpui386, etc)

git-svn-id: trunk@29813 -
2015-02-23 22:17:11 +00:00
florian
35d550c9c6 + commented directive for easier enabling
git-svn-id: trunk@29812 -
2015-02-23 22:11:26 +00:00
florian
a5bef2a2b9 * prevent new definitions being added to a global unit symtable after compilation of the implementation part started
git-svn-id: trunk@29811 -
2015-02-23 22:10:46 +00:00
florian
bc672e8fb2 * do not mess with the global symbol when compiling the implementation part of a unit
git-svn-id: trunk@29810 -
2015-02-23 22:09:46 +00:00
nickysn
7f2dce8f20 * also set got_error to true in case of an error response in i_gdb_command
git-svn-id: trunk@29809 -
2015-02-23 21:15:21 +00:00
Tomas Hajny
dff7cb3c3c * added missing error constant
git-svn-id: trunk@29808 -
2015-02-23 11:19:50 +00:00
Jonas Maebe
1a949eae1f * fixed i8086 compilation
git-svn-id: trunk@29807 -
2015-02-23 08:51:59 +00:00
Károly Balogh
d85b49755c m68k: some ideas for a future second_abs_long implementation. no functional changes.
git-svn-id: trunk@29806 -
2015-02-23 03:37:51 +00:00
Károly Balogh
c72f58bcc5 m68k: implemented sqrt_real and abs_real inlines
git-svn-id: trunk@29805 -
2015-02-23 02:41:33 +00:00
nickysn
bd467adf52 * use StrDispose instead of Dispose in the libgdb.a implementation of GetIntRegister
git-svn-id: trunk@29804 -
2015-02-23 01:12:48 +00:00
nickysn
3b55dd919d * fixed getting the FPC_BREAK_ERROR parameters on i386
git-svn-id: trunk@29803 -
2015-02-23 00:06:09 +00:00
nickysn
ac79722eb2 * use the Backtrace method (which supports gdb/mi) instead of issuing the
command directly in TDebugController.DoSelectSourceLine

git-svn-id: trunk@29802 -
2015-02-22 23:53:54 +00:00
nickysn
4a1a443ffa * fixed getting the FPC_BREAK_ERROR parameters on x86_64
git-svn-id: trunk@29801 -
2015-02-22 23:47:42 +00:00
nickysn
d83655f73c + implemented the GetIntRegister methods added in r29795 in the libgdb.a
interface as well. The code is loosely based on GetIntRegs from fpregs.pas

git-svn-id: trunk@29800 -
2015-02-22 23:46:56 +00:00
Károly Balogh
db50666b3b n68kinl: added inline nodes for 68k. implemented first_sqr_real and second_sqr_real for 68881 FPU
git-svn-id: trunk@29799 -
2015-02-22 23:11:16 +00:00
nickysn
5ec640006c * moved the code that obtains the parameters to HandleErrorAddrFrame (after
trapping a runtime error) to a separate method.

git-svn-id: trunk@29798 -
2015-02-22 22:30:36 +00:00
Tomas Hajny
b9f88aa80c * mapping of I/O error number 206 having different meaning in FPC to RTE 3
git-svn-id: trunk@29797 -
2015-02-22 22:25:44 +00:00