nickysn
c8487c4150
+ added individual bits of the x86 flags register as subregisters
...
git-svn-id: trunk@35955 -
2017-04-26 13:52:52 +00:00
svenbarth
69fa837266
* NASM supports DQ already since version 2.00 (from 10 years ago) and it's already in the ait_const2str array, so use it! (doesn't mean that it works on Win64 however...)
...
git-svn-id: trunk@35368 -
2017-01-29 17:49:27 +00:00
pierre
40ff777693
* Adapt to TExternCain move to aasmcpu unit
...
+ Make sure that a lone reference to DGROUP also generates a 'GROUP DGROUP' statement
+ Add %LINE support
+ Add $DEBUG for i8086 nasm
git-svn-id: trunk@34080 -
2016-07-06 07:00:13 +00:00
nickysn
c2305809dc
+ added an i8086-embedded target support to the compiler (RTL and makefile
...
support are not done yet)
git-svn-id: trunk@33999 -
2016-06-17 19:15:24 +00:00
florian
90b284e169
+ generate .debug_aranges sections for dwarf debug info: enables faster address to debug info translation
...
git-svn-id: trunk@33454 -
2016-04-08 20:19:59 +00:00
nickysn
5f87ac5d47
+ added 486 to the list of supported CPUs on the i8086 and i386 targets
...
git-svn-id: trunk@33317 -
2016-03-23 15:07:56 +00:00
nickysn
843aee8f4a
* base the CPU name, written in the beginning of each NASM assembler file on the
...
nasm_cpu_name const array, which is used by the asd_cpu directive as well.
+ also enable writing this directive on i386 and x86_64 as well.
git-svn-id: trunk@33140 -
2016-03-01 00:45:51 +00:00
nickysn
ca868b0bc6
* fixed indentation in TX86NasmAssembler.WriteHeader
...
git-svn-id: trunk@33139 -
2016-03-01 00:40:35 +00:00
nickysn
d0d940f119
* also declare Intel Nehalem and newer CPUs as 'IA64' in the NASM's 'CPU'
...
directive, because NASM still doesn't support anything newer than 'PRESCOTT'
for its CPU directive, and 'IA64' is considered (internally by NASM) to be the
highest CPU level.
git-svn-id: trunk@33137 -
2016-02-29 21:49:28 +00:00
nickysn
1a56a1a026
* make the asd_cpu directive (which is currently only implemented in the NASM
...
asm writer), when used with a cpu_none parameter, indicate no restrictions for
the CPU type. Under NASM, this is achieved by specifying 'IA64' as the
CPU type, since that's the highest CPU, supported by NASM's 'CPU' directive.
git-svn-id: trunk@33136 -
2016-02-29 21:44:55 +00:00
nickysn
178dab45d3
+ added new asm directive 'asd_cpu' (specifies the CPU's instruction set) in the
...
compiler's internal assembly representation. It is not yet generated by the
compiler and is only implemented properly in the NASM writer (but will
eventually be implemented in the other assembler writers as well, including
the internal assembler). In the future, it is intended to allow:
1) catching instructions, generated by the compiler and not supported by the
target CPU, due to a bug in the code generator
2) allowing a different instruction set to be used in inline asm blocks (I'm
planning a new directive for that - {$asmcpu XXX}), because the code
generator will be able to switch target CPU in the middle of the asm output
stream
git-svn-id: trunk@33121 -
2016-02-25 21:47:13 +00:00
Jeppe Johansen
1c0c944311
Added x86_64-embedded target. Patch from Benjamin Rosseaux
...
git-svn-id: trunk@33097 -
2016-02-14 10:57:00 +00:00
nickysn
995ca4fb12
+ implemented the 'SEG @DATA' inline assembler directive for i8086
...
git-svn-id: trunk@32280 -
2015-11-10 17:26:21 +00:00
nickysn
44b04e250e
+ implemented support for aitconst_seg (emits a 'DW SEG symbol') in the nasm assembler writer for i8086
...
git-svn-id: trunk@32250 -
2015-11-05 16:05:22 +00:00
yury
e04a3b4ac6
* Removed unused vars for x86 compiler.
...
git-svn-id: trunk@31743 -
2015-09-17 15:20:15 +00:00
Jonas Maebe
991e1f49bd
* store a pointer to the used tasminfo record in every assembler writer, so
...
that we can use assembler writers with different conventions from the
currently set target_asm (e.g. an x86 assembler writer for inline assembly
in LLVM IR)
git-svn-id: trunk@31628 -
2015-09-12 23:32:13 +00:00
Jonas Maebe
b3d0197f98
* factored out the output file handling (mostly writing data) from the
...
external assembler writer, so we can reuse the archtecture-specific
writers to write inline assembly in LLVM IR files
git-svn-id: trunk@31625 -
2015-09-12 23:32:01 +00:00
nickysn
e323a08b20
+ also write the omf special segment attributes in the nasm writer for the win16 target
...
+ enabled the internal omf obj writer for the win16 target
git-svn-id: trunk@31576 -
2015-09-07 22:26:14 +00:00
nickysn
1835c075e6
+ added win16 to the nasm's supported targets
...
git-svn-id: trunk@31568 -
2015-09-07 19:00:41 +00:00
nickysn
0fdc62e0f7
+ initialize DS with the current unit's data segment in the function entry code
...
generated in the huge memory model
git-svn-id: trunk@31500 -
2015-09-03 21:44:16 +00:00
nickysn
2725b1160b
* name the 'FAR_DATA' class segments as module_name+'_DATA'
...
git-svn-id: trunk@31499 -
2015-09-03 19:00:55 +00:00
nickysn
cfab5d3d3e
* the omfbase.omf_segclass const array converted to function in order to be able
...
to return different names for some sections in the huge memory model
git-svn-id: trunk@31496 -
2015-09-03 17:48:07 +00:00
nickysn
cf144a7fb7
* use a dummy non-nil pointer in FSectionsUsed and FSectionsInDGROUP, because
...
TFPHashList refuses to add an item with nil pointer data
git-svn-id: trunk@31494 -
2015-09-03 15:14:00 +00:00
nickysn
3b36e3d0b5
* declare segments as use16 or use32 in the nasm asm writer
...
git-svn-id: trunk@31493 -
2015-09-03 13:57:36 +00:00
nickysn
672ff1d863
* fixed memleak after r31487
...
git-svn-id: trunk@31492 -
2015-09-03 13:40:00 +00:00
nickysn
314b5e5eac
* fixed class name in comment
...
git-svn-id: trunk@31491 -
2015-09-03 13:36:12 +00:00
nickysn
92c831c3dd
* writing of omf section attributes in the NASM asm writer rewritten to use the
...
new functions in unit omfbase (also used by the internal asm)
git-svn-id: trunk@31487 -
2015-09-03 13:32:17 +00:00
nickysn
4061628ffb
* the i8086-msdos default code segment (in near code memory models) renamed
...
'_TEXT'. This name is used in object modules, produced by Borland C and Open
Watcom.
git-svn-id: trunk@31482 -
2015-09-02 13:14:12 +00:00
nickysn
1a8e203bf5
* moved the omf section names constant to the omfbase unit and use it also in
...
the nasm asm writer when targeting i8086-msdos
git-svn-id: trunk@31481 -
2015-09-02 12:28:46 +00:00
Jonas Maebe
0d74e4f719
* changed paratargetdbg from a global variable into a field of toption
...
git-svn-id: trunk@31443 -
2015-08-28 22:31:17 +00:00
nickysn
5dc42404cf
* capitalize omf segment class names, as that's how other 16-bit compilers write them
...
git-svn-id: trunk@31371 -
2015-08-22 19:07:04 +00:00
nickysn
e09ab50724
* capitalize the group name 'DGROUP' in the generated omf object files, because
...
that's how it is usually written by other 16-bit compilers
git-svn-id: trunk@31369 -
2015-08-22 16:28:36 +00:00
nickysn
778a678956
* use a 4 byte alignment for the dwarf debug sections on i8086 (not sure if
...
that's correct for 16-bit dwarf, but currently the compiler emits 4-byte
tai_aligns, so setting the section alignment to 4 avoids problems in the
internal object writer)
git-svn-id: trunk@30685 -
2015-04-20 13:15:26 +00:00
nickysn
5a1ce6162b
* set the bss, rodata and rodata_norel section alignment to 2 bytes for the i8086-msdos target
...
git-svn-id: trunk@30680 -
2015-04-20 01:27:26 +00:00
nickysn
a6e39edb8f
* moved the insertion of fwaits for 8087 from the nasm asm writer to ti8086procinfo.postprocess_code
...
git-svn-id: trunk@30634 -
2015-04-17 23:27:03 +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
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
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
Jonas Maebe
67b8aceaee
* synchronized with privatetrunk till r30095
...
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
florian
7c1cf07484
+ support section smartlinking with nasm
...
+ set alignment for smartlinked sections in nasm
* enable section smartlinking for nasm/coff win32
git-svn-id: trunk@29654 -
2015-02-08 12:33:50 +00:00
Károly Balogh
dd67fa8c5c
* fixed DFA warnings for i8086
...
git-svn-id: trunk@28504 -
2014-08-20 15:49:27 +00:00
Jonas Maebe
7949bebb8d
* synchronised with r28168 of trunk
...
git-svn-id: branches/hlcgllvm@28169 -
2014-07-05 21:30:28 +00:00
Jonas Maebe
b0ff41406a
* grouped all tai_real* types into a single tai_realconst type,
...
to free up space for more ait_* types in taitype (can't have
more than 32 because they have to fit in a small set)
o factored out writing of floating point numbers as an array of
byte in the external assemblers
git-svn-id: branches/hlcgllvm@28105 -
2014-07-01 16:29:58 +00:00
nickysn
36d6fb7868
* don't add the stack segment declaration at the beginning of each object file
...
in the i8086 far data memory models as well
git-svn-id: trunk@28022 -
2014-06-21 10:41:57 +00:00
nickysn
ef88fec688
* nested ifdefs in TX86NasmAssembler.WriteHeader replaced with an 'if defined()'
...
sequence
git-svn-id: trunk@28019 -
2014-06-21 08:28:15 +00:00
nickysn
40b2d3d562
* don't add the heap segment declaration at the beginning of each object file in
...
the i8086 far data memory models
git-svn-id: trunk@28018 -
2014-06-21 08:15:18 +00:00
nickysn
7cfd7a66cd
+ create a special 'heap' segment with reserved space equal to heapsize (i.e.
...
the value set by -Ch or the second parameter to the $M directive). This is
equivalent to the heapmin value in Turbo Pascal 7 and ensures that the program
has at least this amount of heap space available (otherwise DOS will show a
'not enough memory' error and will refuse to load the program).
git-svn-id: trunk@28002 -
2014-06-19 14:14:01 +00:00
nickysn
22a7dfa231
* stack segment moved outside of dgroup in the i8086 far data memory models, so
...
it no longer eats from the precious 64kb limit for static data
git-svn-id: trunk@27959 -
2014-06-14 19:34:36 +00:00
nickysn
2dc8839af5
* set class=data to all data segments/sections on i8086
...
git-svn-id: trunk@27957 -
2014-06-14 16:01:22 +00:00
sergei
c28271ab99
* NASM writer: don't force 'near' size for all non-far branches and calls, it disables NASM's capability to optimize branches into short form where possible, and thus only increases size of generated code.
...
- LDS and LES instructions do not exist on x86_64.
git-svn-id: trunk@27932 -
2014-06-11 12:32:21 +00:00