nickysn
6a7fff644a
* align non-code sections with zeros, instead of nops in the nasm asm output
...
writer, so they match the behaviour of the internal object writer (so it
becomes easier to compare to the binary output of the omf object writer)
git-svn-id: trunk@30472 -
2015-04-06 20:30:06 +00:00
Jonas Maebe
5d8483185f
* silence another warning from r30449
...
git-svn-id: trunk@30469 -
2015-04-06 16:42:27 +00:00
Jonas Maebe
640efba580
* fixed warnings after r30449/r30450
...
git-svn-id: trunk@30466 -
2015-04-06 14:24:09 +00:00
Jonas Maebe
b403a8c3fd
* fixed ppu dump for objc categories
...
git-svn-id: trunk@30465 -
2015-04-06 14:05:39 +00:00
Jonas Maebe
f6b03b2912
* updated ppudump for changes in ppu version 174
...
git-svn-id: trunk@30464 -
2015-04-06 14:05:36 +00:00
nickysn
877a769ac3
+ support align directive with a given use_op/fillop in the NASM asm writer
...
git-svn-id: trunk@30459 -
2015-04-06 01:03:22 +00:00
nickysn
824bfd961b
+ very early (and incomplete/broken) implementation of FIXUPP records in the omf
...
object writer
git-svn-id: trunk@30458 -
2015-04-06 00:34:28 +00:00
nickysn
3840db5457
* handle aitconst_farptr with a constant (nil) directly in the internal asm
...
writer, without calling writereloc
git-svn-id: trunk@30457 -
2015-04-05 23:56:23 +00:00
nickysn
393b9b54a8
+ handle aitconst_farptr in the internal asm writer as a new relocation type (RELOC_FARPTR)
...
git-svn-id: trunk@30456 -
2015-04-05 23:43:37 +00:00
nickysn
1c5d0ed09a
+ support aitconst_farptr in tai_const.size
...
git-svn-id: trunk@30455 -
2015-04-05 23:33:41 +00:00
nickysn
b67fea70bd
+ write a MODEND (end of module) record at the end of the omf file
...
git-svn-id: trunk@30454 -
2015-04-05 22:42:26 +00:00
nickysn
c59855b5e7
+ start writing actual section content (without fixups and probably still buggy)
...
in the OMF object writer
* give proper section names (like in the NASM asm writer) for the OMF object
writer
git-svn-id: trunk@30452 -
2015-04-05 21:39:02 +00:00
florian
9ab9e03650
* limit number of possible units with initialization/finalization for a certain architecture to high(aint)
...
+ give an error if the number of possible units is exceeded
git-svn-id: trunk@30450 -
2015-04-05 21:06:58 +00:00
florian
b684719f1e
+ give an error if allocated temps. overflow the normally max. available space
...
git-svn-id: trunk@30449 -
2015-04-05 20:59:34 +00:00
nickysn
444b63cf07
+ added class for reading/writing a FIXUP subrecord in a FIXUPP omf record
...
git-svn-id: trunk@30448 -
2015-04-05 19:57:41 +00:00
florian
1114089d25
* IsJumpToLabel checks number of operands
...
* add a few safety checks
git-svn-id: trunk@30446 -
2015-04-05 19:24:22 +00:00
florian
02d9c676d3
* make offsets passed to tconst of type asizeint instead of aint
...
git-svn-id: trunk@30445 -
2015-04-05 19:18:52 +00:00
florian
63bf17440c
* use volatile registers first
...
* fix some range check errors
git-svn-id: trunk@30444 -
2015-04-05 19:17:24 +00:00
florian
db63693b7e
* tai returned by GetNextInstructionUsingReg must be checked if it is really an instruction
...
git-svn-id: trunk@30443 -
2015-04-05 19:12:43 +00:00
florian
2b9c0ef3b4
- jmp_instructions shouldn't include call/ret instructions
...
git-svn-id: trunk@30442 -
2015-04-05 19:11:40 +00:00
florian
73c0422997
+ create defines for CPU ALU size
...
git-svn-id: trunk@30441 -
2015-04-05 19:09:28 +00:00
florian
2daae5ff03
* moved comment so it is recognized by lazarus as a method description
...
git-svn-id: trunk@30439 -
2015-04-05 19:08:00 +00:00
florian
31709b1b43
* check registers of ait_regalloc for a valid color when translating and compiling with -dextdebug
...
git-svn-id: trunk@30438 -
2015-04-05 19:06:06 +00:00
nickysn
25411c3871
+ added omf fixup related enums
...
git-svn-id: trunk@30436 -
2015-04-05 14:50:59 +00:00
Jonas Maebe
94aadb23ab
+ implemented getintparaloc() for llvm
...
git-svn-id: trunk@30430 -
2015-04-04 14:29:19 +00:00
Jonas Maebe
61e4a1b811
+ added tasmlist parameter to getintparaloc() (needed for llvm)
...
git-svn-id: trunk@30429 -
2015-04-04 14:29:16 +00:00
Jonas Maebe
2336d22985
* override instr_get_oper_spilling_info and substitute_spilled_registers for
...
llvm (add support for top_para)
git-svn-id: trunk@30428 -
2015-04-04 14:29:12 +00:00
Jonas Maebe
9d4c8f68d4
* fixed first_fpu_immreg definition
...
git-svn-id: trunk@30427 -
2015-04-04 14:29:09 +00:00
Jonas Maebe
e12dff9a5e
* support top_para in trgllvm.get_spill_temp()
...
git-svn-id: trunk@30426 -
2015-04-04 14:29:06 +00:00
Jonas Maebe
e750678f37
* factored out spilling code that deals with operand types into virtual
...
methods so they can be overridden by platform-specific variants
for platform-specific operand types
git-svn-id: trunk@30425 -
2015-04-04 14:29:03 +00:00
Jonas Maebe
ee7198aa57
* fixed memory leak in case one tai operand is replaced by another
...
git-svn-id: trunk@30424 -
2015-04-04 14:29:00 +00:00
Jonas Maebe
3279cc052a
* moved llvm-specific code from aasmtai to aasmllvm
...
* call add_reg_instruction_hook() for top_para parameters
git-svn-id: trunk@30423 -
2015-04-04 14:28:57 +00:00
Jonas Maebe
2ef753faae
* support llvm spilling_get_reg_type() for the destination of call/invoke
...
git-svn-id: trunk@30422 -
2015-04-04 14:28:54 +00:00
nickysn
7f4c2c0cc2
* added missing 'private' declaration to TOmfRecord_SEGDEF
...
git-svn-id: trunk@30420 -
2015-04-04 12:48:05 +00:00
Jeppe Johansen
e2272c8a7e
Added aitconst_gs for AVR pointer references to Flash.
...
git-svn-id: trunk@30419 -
2015-04-04 10:29:11 +00:00
nickysn
ef9c15c165
+ write link pass 1 separator to omf obj output
...
git-svn-id: trunk@30415 -
2015-04-04 00:14:34 +00:00
nickysn
4fc55f97fc
* refactored adding groups to use a method with an 'array of const' parameter
...
git-svn-id: trunk@30414 -
2015-04-03 23:45:43 +00:00
nickysn
1521f88a9d
* fixed off by one error when writing a GRPDEF record
...
git-svn-id: trunk@30413 -
2015-04-03 22:56:49 +00:00
nickysn
a9f10f60eb
+ write the dgroup GRPDEF record
...
git-svn-id: trunk@30412 -
2015-04-03 22:56:09 +00:00
nickysn
a84537dd9b
+ create the default segments and write them in the OMF object file
...
git-svn-id: trunk@30411 -
2015-04-03 22:33:45 +00:00
nickysn
56621e6ee1
+ added class for writing GRPDEF omf records
...
git-svn-id: trunk@30410 -
2015-04-03 21:58:02 +00:00
nickysn
7c90285af1
* improved record length checking in the SEGDEF omf record parsing
...
git-svn-id: trunk@30409 -
2015-04-03 00:12:16 +00:00
nickysn
28d8e915b7
+ implemented parsing of SEGDEF omf records as well
...
git-svn-id: trunk@30408 -
2015-04-02 23:59:45 +00:00
nickysn
f380d67575
- rm unused var
...
git-svn-id: trunk@30407 -
2015-04-02 23:49:36 +00:00
nickysn
65212e7a34
+ added class for encoding a SEGDEF(32) omf record
...
git-svn-id: trunk@30406 -
2015-04-02 23:05:02 +00:00
Jeppe Johansen
7f34ab27d2
Fixed issue with COFF linker. The addend wasn't shifted up by four before being added.
...
git-svn-id: trunk@30405 -
2015-04-02 22:06:14 +00:00
nickysn
1a3bd5fde1
+ added enums for OMF segment alignment and combination
...
git-svn-id: trunk@30404 -
2015-04-02 20:20:47 +00:00
Jeppe Johansen
a3fd3ee3ab
Fixed bug in ARM coff writer. Relocations just ORed the offset onto the instruction instead of adding, but they are emitted as bl 0xFFFFFE, and not bl 0x0.
...
git-svn-id: trunk@30403 -
2015-04-02 18:28:42 +00:00
Jonas Maebe
197e5194b9
* don't crash if we have to spill a register of the last instruction in an
...
asmlist
git-svn-id: trunk@30402 -
2015-04-01 15:43:10 +00:00
Jonas Maebe
7b4bf9cc33
* fixed comment for emit_ansi/unicodestring_const() after changing those
...
class methods into instance methods
git-svn-id: trunk@30401 -
2015-04-01 15:43:07 +00:00