Commit Graph

52005 Commits

Author SHA1 Message Date
nickysn
4cb1a96ec1 * use get_ref_address_size in the nasm writer, when handling the parameterized
string instructions

git-svn-id: trunk@37471 -
2017-10-16 14:21:03 +00:00
nickysn
6f2e64ff90 + added function get_ref_address_size
git-svn-id: trunk@37470 -
2017-10-16 14:13:03 +00:00
nickysn
b0653a6313 + added functions is_32_bit_ref and is_64_bit_ref, similar to is_16_bit_ref
* taicpu.needaddrprefix now uses is_32_bit_ref on x86_64
* is_16/32/64_bit_ref made part of the aasmcpu unit interface, so they can be
  used elsewhere (e.g. in the inline assembler readers)

git-svn-id: trunk@37469 -
2017-10-16 14:05:06 +00:00
Mattias Gaertner
2ac2e7bd7d fcl-passrc: resolver: implemented $M $TypeInfo
git-svn-id: trunk@37468 -
2017-10-16 10:16:13 +00:00
Mattias Gaertner
34c88e6dbc fcl-passrc: resolver: pass static array to open array
git-svn-id: trunk@37467 -
2017-10-16 09:25:00 +00:00
Mattias Gaertner
69f2055ff3 fcl-passrc: resolver: error on setlength(openarray)
git-svn-id: trunk@37466 -
2017-10-16 08:48:14 +00:00
Mattias Gaertner
3a0e540dde fcl-passrc: parser: fixed default class visibility to visPublic
git-svn-id: trunk@37465 -
2017-10-16 08:35:52 +00:00
michael
c19c39a956 * Patch from Pascal Riekenberg to fix some issues with columns
git-svn-id: trunk@37464 -
2017-10-16 07:37:09 +00:00
nickysn
2b6e5d817e * changed the parameter of is_16_bit_ref to be a treference, instead of toper
git-svn-id: trunk@37463 -
2017-10-16 00:30:26 +00:00
pierre
d18627f0af * Update all fpcsrc Makefile's using latest fpcmake version 2017-09-21 rev 37286
git-svn-id: trunk@37462 -
2017-10-16 00:27:27 +00:00
pierre
ca79cbef1f Fix compilation of classes unit for watcom target
git-svn-id: trunk@37461 -
2017-10-16 00:24:14 +00:00
pierre
e3a35d99ba Add watcom OS to ObjectOSes and symbian to UComplexOSes and MatrixOSes
git-svn-id: trunk@37460 -
2017-10-16 00:15:40 +00:00
nickysn
acfa199b09 * in the nasm writer, only output a segment prefix for the [si] operand, in
case there's a segment operand, different that DS (the default source
  segment) for parameterized x86 string instructions

git-svn-id: trunk@37459 -
2017-10-14 16:58:15 +00:00
nickysn
a8232ac477 + added warning if source or destination for x86 string instructions isn't
specified to be (%esi) or (%edi), when using at&t syntax assembler (this is
  not considered an error by intel syntax assemblers, so we're not adding a
  warning there, for now)

git-svn-id: trunk@37458 -
2017-10-14 15:27:00 +00:00
nickysn
4a8aec26bf * fixed test tasm12c.pp (uses asmmode intel, not att)
git-svn-id: trunk@37457 -
2017-10-14 11:32:54 +00:00
nickysn
dd9b5eb2aa + added the 'Cannot override ES' message in the at&t assembler reader as well
git-svn-id: trunk@37456 -
2017-10-14 00:48:46 +00:00
nickysn
27978de111 + extended tests with segment overrides in at&t asm mode
git-svn-id: trunk@37455 -
2017-10-13 15:43:47 +00:00
nickysn
1ee36b5b9b + added error message in the intel assembler reader, when an attempt is made to
override the ES segment in an x86 string instruction (because it cannot be
  overriden)

git-svn-id: trunk@37454 -
2017-10-13 14:56:38 +00:00
marco
24e0fc5aad * updated links mantis 32504
git-svn-id: trunk@37453 -
2017-10-13 10:56:06 +00:00
nickysn
baf492c7a5 + another helper function: x86_parameterized_string_op_param_count
* when generating x86 code for parameterized string instructions with the
  internal object writer, don't rely on the destination operand being [(r/e)di]
  when determining the segment prefix, because when using intel syntax, source
  and destination can be anything (only the operand size, the address size and
  the source segment is taken into account)

git-svn-id: trunk@37452 -
2017-10-12 16:07:15 +00:00
nickysn
4c75b15afe * shortened the names of the is_x86_string_instruction_op,
is_x86_parameterless_string_instruction_op and
  is_x86_parameterized_string_instruction_op by removing 'instruction' from
  their names

git-svn-id: trunk@37451 -
2017-10-12 15:20:22 +00:00
nickysn
e3ca2a3043 + added helper functions get_x86_string_op_si_param and get_x86_string_op_di_param
* use get_x86_string_op_si_param in the nasm writer

git-svn-id: trunk@37450 -
2017-10-12 15:12:40 +00:00
nickysn
5a5cd65559 + added helper functions x86_param2paramless_string_op and
get_x86_string_op_size
* refactored the AT&T inline asm handling of x86 parameterized string ops, so it
  uses the new helper functions

git-svn-id: trunk@37449 -
2017-10-12 14:25:32 +00:00
nickysn
2f28768d2d * simplify some code, by using is_x86_parameterized_string_instruction_op
git-svn-id: trunk@37448 -
2017-10-12 13:26:07 +00:00
nickysn
98c4986b6d + added x86 helper functions is_x86_string_instruction_op,
is_x86_parameterless_string_instruction_op and
  is_x86_parameterized_string_instruction_op

git-svn-id: trunk@37447 -
2017-10-12 13:18:38 +00:00
nickysn
0fb79946a5 + added support for the parameterized versions of the x86 string instructions
(movs, cmps, scas, lods, stos, ins, outs) in the inline asm of the i8086, i386
  and x86_64 targets. Both intel and at&t syntax is supported.
* NEC V20/V30 instruction 'ins' (available only on the i8086 target, because it
  is incompatible with 386+ instructions) renamed 'nec_ins', to avoid conflict
  with the 186+ 'ins' instruction.

git-svn-id: trunk@37446 -
2017-10-12 00:07:02 +00:00
pierre
c8722d4237 Fix tw32115 test for msdos target by using longint type explicitly for CalcSmth function parameter
git-svn-id: trunk@37445 -
2017-10-11 06:25:31 +00:00
florian
4109738582 + build exeinfo by buildrtl unit
git-svn-id: trunk@37444 -
2017-10-10 20:36:26 +00:00
michael
352f99c15f * Write more types
git-svn-id: trunk@37443 -
2017-10-10 18:07:50 +00:00
marco
b1e4515896 * switch to 3.0.2 as prefered version
git-svn-id: trunk@37442 -
2017-10-10 12:57:24 +00:00
Mattias Gaertner
bb15bbec52 fcl-passrc: resolver: enum range: assign enum:=enumrange
git-svn-id: trunk@37441 -
2017-10-10 08:28:12 +00:00
michael
7abc3af339 * Some cosmetic, license text and other changes based on code review by Nayuki
git-svn-id: trunk@37440 -
2017-10-10 06:51:44 +00:00
Mattias Gaertner
1b2511c0a0 fcl-passrc: resolver: enum range: pred(), succ(), low(), high(), typecast integer to enum range
git-svn-id: trunk@37439 -
2017-10-09 20:38:03 +00:00
michael
c2c561a827 * QR Code printable element, plus demo report, using newly added QR Code generator unit
git-svn-id: trunk@37438 -
2017-10-09 19:21:28 +00:00
svenbarth
fcc1ce7a08 * fix for Mantis #30344: applied patch by Mario Ray Mahardhika to add new command line option -Sj[-|+] to control writeable typed constants (with a small adjustment to the help text)
+ added test

git-svn-id: trunk@37437 -
2017-10-09 19:19:23 +00:00
michael
656405d7dc + Added QR code generator, image drawer
* QR Code generator code translated from C code from Project Nayuki (http://nayuki.io)
    (reused with permission)
  * Translated demo app from project Nayuki
  * Added sample QR code generator demo app 

git-svn-id: trunk@37436 -
2017-10-09 19:17:26 +00:00
michael
f218a369d6 * Remove debug writeln
git-svn-id: trunk@37435 -
2017-10-09 19:13:20 +00:00
Mattias Gaertner
bc6b6fe7c9 fcl-passrc: resolver: fixed CheckClassIsClass if DestType is forward class
git-svn-id: trunk@37434 -
2017-10-09 11:08:31 +00:00
Mattias Gaertner
061c0b4da3 pastojs: test raise functioncall
git-svn-id: trunk@37433 -
2017-10-09 10:44:35 +00:00
Mattias Gaertner
40b359c1ba fcl-passrc: resolver: raise functioncall
git-svn-id: trunk@37432 -
2017-10-09 10:44:15 +00:00
michael
243002023c * Patch from Markus Beth to fix some comments
git-svn-id: trunk@37431 -
2017-10-09 08:31:12 +00:00
nickysn
d96558cd64 * fixed bug in assembling some 32-bit instructions on the i8086 target (e.g.
mov dword ptr [something], ebx)

git-svn-id: trunk@37430 -
2017-10-08 11:10:42 +00:00
svenbarth
f6a867ef04 * move handling of Concat to tinlinenode so that it can be easily extended for dynamic arrays
+ added test

git-svn-id: trunk@37429 -
2017-10-08 10:39:34 +00:00
svenbarth
c01b36a2fa * the checks for no parameters are not needed for Insert() and Delete() as they take care of that themselves with an overload listing
git-svn-id: trunk@37428 -
2017-10-08 10:37:30 +00:00
michael
9d32f87ebb * Added license statement
git-svn-id: trunk@37427 -
2017-10-08 09:39:03 +00:00
svenbarth
fe95d73fe5 * move RTTI header include above ObjPas header include
git-svn-id: trunk@37426 -
2017-10-08 08:44:51 +00:00
michael
43867344cd * Demo how to create pdf from text file
git-svn-id: trunk@37425 -
2017-10-08 08:29:05 +00:00
svenbarth
a0fb85b690 - remove no longer needed aligntoptr() and aligntoqword() functions (all this should be handled by the typinfo unit in the future)
git-svn-id: trunk@37424 -
2017-10-07 22:08:05 +00:00
svenbarth
89645633a9 * get rid of calls to aligntoptr by using methods provided by TClassData and TPropInfo
git-svn-id: trunk@37423 -
2017-10-07 22:02:40 +00:00
svenbarth
da30391a6a * FillChar for the properties is not needed as SetLength already initializes the array elements
git-svn-id: trunk@37422 -
2017-10-07 21:51:18 +00:00