Commit Graph

17825 Commits

Author SHA1 Message Date
Jonas Maebe
a8db5e3dfb * fixed alignment of widestring on win64 after llvm branch merge (should use
packrecords 4) (mantis #27806)

git-svn-id: trunk@30501 -
2015-04-08 19:08:43 +00:00
Jonas Maebe
6391794958 * fixed -Oodfa warnings
git-svn-id: trunk@30500 -
2015-04-08 19:08:39 +00:00
Jonas Maebe
af61923dc3 * don't write parameter attributes in procvardefs
git-svn-id: trunk@30499 -
2015-04-08 19:08:36 +00:00
Jonas Maebe
a8cefa8fcd - removed aggas.pas leftovers
git-svn-id: trunk@30498 -
2015-04-08 19:08:33 +00:00
Jonas Maebe
a674804869 * made fpc_setjmp() code generic and fixed it for llvm
git-svn-id: trunk@30497 -
2015-04-08 19:08:30 +00:00
nickysn
23b95cc291 + added classes for writing EXTDEF omf records
git-svn-id: trunk@30496 -
2015-04-08 14:13:35 +00:00
nickysn
470fb65e80 + implemented aasmcpu.process_ea for i8086
git-svn-id: trunk@30495 -
2015-04-08 12:54:09 +00:00
nickysn
76da1db832 + write all the public symbols in a PUBDEF record in the omf obj writer
git-svn-id: trunk@30492 -
2015-04-07 23:03:48 +00:00
nickysn
fb45d5e11b * fixed some off-by-1 errors in TOmfRecord_PUBDEF.EncodeTo
git-svn-id: trunk@30491 -
2015-04-07 23:02:32 +00:00
nickysn
c4a8f22bc9 + added classes for writing PUBDEF omf records
git-svn-id: trunk@30490 -
2015-04-07 22:18:46 +00:00
nickysn
35e008e44b * TOmfRelocation modified to build the omf FIXUP subrecord later, during
writeData, when the ObjSection indexes are available; now we fill the proper
  section/segment indexes, instead of hardcoded values.

git-svn-id: trunk@30489 -
2015-04-07 20:40:40 +00:00
nickysn
9e701454c6 + add group "dgroup", this time built from the ObjSectionList, instead of hardcoded
git-svn-id: trunk@30488 -
2015-04-07 19:53:08 +00:00
Jonas Maebe
101fc3d4ec * translate formaldef into "i8*", as intended, instead of "i8**" due to
the fact that this type is always passed by reference

git-svn-id: trunk@30486 -
2015-04-07 19:35:22 +00:00
Jonas Maebe
f94f9f44e4 * convert all arguments to integers in case of comparisons of pointers with
constants on llvm, as you can only compare with "null" in that case
  * convert all arguments to integers in case of pointer subtractions,
    as pointer subtractions are not supported by llvm

git-svn-id: trunk@30485 -
2015-04-07 19:35:08 +00:00
nickysn
068e3d93c7 * fixed warnings during compilation of an i8086 cross compiler
git-svn-id: trunk@30481 -
2015-04-07 09:33:22 +00:00
nickysn
13ed542f0c + also fill the "size" field in the SEGDEF records
git-svn-id: trunk@30480 -
2015-04-07 01:38:55 +00:00
nickysn
a0aa85f372 + also fill "overlay name" in the SEGDEF records
git-svn-id: trunk@30479 -
2015-04-07 01:35:25 +00:00
nickysn
293ffda788 * build the list of SEGDEF records from the ObjSectionList, instead of using a
hardcoded list. Creation of dgroup temporarily disabled.

git-svn-id: trunk@30478 -
2015-04-07 01:33:11 +00:00
nickysn
1d236e8386 + count omf sections and set their index starting with 1
git-svn-id: trunk@30477 -
2015-04-07 01:07:42 +00:00
nickysn
e87148c425 + added property PrimaryGroup to TOmfObjSection; fill it with 'dgroup' if
section belongs to the group dgroup in the current memory model

git-svn-id: trunk@30476 -
2015-04-07 00:11:56 +00:00
nickysn
c7af648d69 + added omf-specific properties to TOmfObjSection and fill them in the constructor
git-svn-id: trunk@30475 -
2015-04-06 23:48:39 +00:00
nickysn
38f8a942e2 + added descendant class TOmfObjSection (empty for now) for storing omf sections' extra data
git-svn-id: trunk@30474 -
2015-04-06 23:26:52 +00:00
nickysn
a1bc36ab56 + TOmfObjData.writeReloc: write the actual offset of the symbol in the section data
git-svn-id: trunk@30473 -
2015-04-06 21:43:06 +00:00
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