florian
0ffd4f8780
* fix compilation of arm compiler on 32 bit hosts
...
git-svn-id: trunk@49281 -
2021-04-27 16:36:40 +00:00
pierre
423940afd7
Avoid range check error inside genitem_thumb2 by changing local variable i type
...
git-svn-id: trunk@49278 -
2021-04-27 14:01:35 +00:00
florian
0316a7697f
* arm thumb1: several fixes for the internal assembler writer
...
git-svn-id: trunk@48675 -
2021-02-14 17:52:26 +00:00
Jonas Maebe
07bd4ba517
* let all the case code generation work with tconstexprint instead of aint,
...
so it also works for 32 bit targets and a high level code generator
(where aint is still 32 bit, but 64 bit operations are not decomposed)
git-svn-id: trunk@41441 -
2019-02-24 19:58:37 +00:00
yury
95094e9a8f
* Removed unused vars.
...
git-svn-id: trunk@36073 -
2017-05-04 10:38:49 +00:00
florian
50dba9ad66
* if both labels of a case label are equal, we still cannot skip the comparison in a jump tree, resolves #31589
...
git-svn-id: trunk@35880 -
2017-04-21 19:32:27 +00:00
florian
971280f082
+ tarmcasenode.genjmptreeentry
...
git-svn-id: trunk@35649 -
2017-03-23 21:37:12 +00:00
Jonas Maebe
a25ebbba3e
+ added volatility information to all memory references
...
o separate information for reading and writing, because e.g. in a
try-block, only the writes to local variables and parameters are
volatile (they have to be committed immediately in case the next
instruction causes an exception)
o for now, only references to absolute memory addresses are marked
as volatile
o the volatily information is (should be) properly maintained throughout
all code generators for all archictures with this patch
o no optimizers or other compiler infrastructure uses the volatility
information yet
o this functionality is not (yet) exposed at the language level, it
is only for internal code generator use right now
git-svn-id: trunk@34996 -
2016-11-27 18:17:37 +00:00
Jonas Maebe
da696057ab
* converted register_maybe_adjust_setbase() to the high level code generator
...
git-svn-id: trunk@32591 -
2015-12-05 18:03:37 +00:00
Jonas Maebe
f374b81c12
* disabled ARM-specific code for smallset in-operations on big endian targets,
...
as it's also little endian-specific (mantis #28592 )
git-svn-id: trunk@31466 -
2015-08-31 13:06:42 +00:00
Jeppe Johansen
6662cb6dd5
ARMv6M was missing alignments for jumptables
...
git-svn-id: trunk@30775 -
2015-05-03 16:16:32 +00:00
Jonas Maebe
67b8aceaee
* synchronized with privatetrunk till r30095
...
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
florian
db01c50a4f
* fixes jump table generate for arm thumb
...
git-svn-id: trunk@28546 -
2014-08-30 22:13:09 +00:00
Jonas Maebe
c6ddf0001c
* simplified in_smallset() and removed some old cruft (there's no need
...
anymore to change the register size)
git-svn-id: branches/hlcgllvm@28400 -
2014-08-12 23:17:45 +00:00
florian
24d88edf37
* fixes arm building after 26004
...
git-svn-id: trunk@26012 -
2013-11-10 17:46:03 +00:00
florian
d4968e054b
+ arm: tsettings.instructionset
...
* the selected instruction set is now independent from the cpu type: e.g. armv7-a can perfectly execute thumb(2) code
git-svn-id: trunk@25370 -
2013-08-25 21:56:12 +00:00
florian
c350c3a5e4
* arm thumb2 does not understand tst reg1,reg2,lsl reg3
...
git-svn-id: trunk@25344 -
2013-08-23 15:22:44 +00:00
Jonas Maebe
b31e5c2536
+ PIC support for ARM jump tables (only for plain ARM right now, not
...
yet for thumb/thumb2)
git-svn-id: trunk@25323 -
2013-08-21 22:28:24 +00:00
Jeppe Johansen
e5066a5f43
Update jumptabel generation for ARM Thumb
...
git-svn-id: trunk@24636 -
2013-05-30 12:06:30 +00:00
florian
93fcd9152e
* arm thumb supports only tst reg1,reg2
...
git-svn-id: trunk@23997 -
2013-03-25 17:53:54 +00:00
florian
1eeeb309c7
* intial armv6m support, it is not working yet, constant pool insertation and conditional branch fixup is not working yet
...
git-svn-id: trunk@23682 -
2013-03-03 12:20:10 +00:00
florian
47d43750e4
* remove unused units from uses statements
...
git-svn-id: trunk@23306 -
2013-01-03 23:07:09 +00:00
florian
45383fd32d
+ a lot missing flag allocs/deallocs added
...
git-svn-id: trunk@22201 -
2012-08-23 08:54:52 +00:00
florian
ecb037ad79
+ tarminnode.pass_1 to set expectloc correctly
...
git-svn-id: trunk@22074 -
2012-08-13 15:03:35 +00:00
florian
33f287d320
+ tarminnode.in_smallset making use of tst
...
git-svn-id: trunk@22064 -
2012-08-11 22:10:45 +00:00
florian
c5ad1bce7b
* avoid uncessary zero extensions in case code
...
git-svn-id: trunk@21979 -
2012-07-28 20:09:21 +00:00
Jonas Maebe
b023627f6a
* converted tcgcasenode.pass_generate_code() to hlcgobj
...
o changed type of opsize field of tcgcasenode from tcgsize into tdef,
and fixed compilation of other code generator units after this change
git-svn-id: branches/jvmbackend@18339 -
2011-08-20 07:48:33 +00:00
florian
ffde44ea6e
* forgotten part of r18233
...
git-svn-id: trunk@18235 -
2011-08-16 22:44:50 +00:00
Jonas Maebe
7d459cf12a
* the compiler now explicitly keeps track of the minimally guaranteed
...
alignment for each memory reference (mantis #12137 , and
test/packages/fcl-registry/tregistry1.pp on sparc). This also
enables better code generation for packed records in many cases.
o several changes were made to the compiler to minimise the chances
of accidentally forgetting to set the alignment of memory references
in the future:
- reference_reset*() now has an extra alignment parameter
- location_reset() can now only be used for non LOC_(C)REFERENCE,
use location_reset_ref() for those (split the tloc enum so the
compiler can catch errors using range checking)
git-svn-id: trunk@12719 -
2009-02-08 13:00:24 +00:00
florian
c3475dddc0
* handle case ranges properly for unsigned types with a non-zero base, resolves #10009
...
git-svn-id: trunk@8974 -
2007-10-28 17:06:02 +00:00
daniel
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
...
+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
yury
e94277d5dc
* removed unneeded label.
...
* asm output beautification.
git-svn-id: trunk@5467 -
2006-11-24 13:20:32 +00:00
yury
70b5d41d5c
* optimized case jump table generation for ARM.
...
git-svn-id: trunk@5458 -
2006-11-23 00:55:16 +00:00
yury
187c71ac18
* fixed and enabled case jump table generation for ARM.
...
git-svn-id: trunk@5446 -
2006-11-22 12:16:33 +00:00
yury
257a76d6c8
* finally fixed case code generation for ARM.
...
git-svn-id: trunk@5437 -
2006-11-21 21:16:25 +00:00
yury
347af4dbe4
* fixed case code for ARM.
...
git-svn-id: trunk@5402 -
2006-11-16 13:07:32 +00:00
florian
3f0dfdcba4
* OP_SUB must set always the flags in case of case
...
git-svn-id: trunk@5400 -
2006-11-16 10:21:43 +00:00
florian
6ad8307653
+ better case code generation for arm
...
git-svn-id: trunk@5395 -
2006-11-15 22:44:13 +00:00