sysv_abi_cdecl calling conventions on x86-64 to force using the SYSV/
Microsoft ABI on platforms that don't use it by default (mainly to ease
porting pure assembler routines)
git-svn-id: trunk@35425 -
directly in inline assembly: that's only possible if it's a register
parameter where the address of the record was passed (rather than the
record itself)
git-svn-id: trunk@35424 -
- char and string literals
- setlength() for string
- property read accessor var and function
- property write accessor var and function
- property with param list
- property of type array
- class property
- convert "a div b" to "Math.floor(a / b)"
- and, or, xor, not: logical or bitwise
- enum type with values and names
- enums: option to write numbers instead of variables
- enums: ord(), low(), high(), pred(), succ()
- type cast number to enum
- set of enum
- include(), exclude()
- assign := for sets
- constant set: enums, enum vars, ranges
- set operators +, -, *, ><, =, <>, >=, <=
- set in-operator
- sets: low(), high()
- assign nil to dyn array
git-svn-id: trunk@35417 -
pscanner:
- fixed reading ^a char literals
pasresolver:
- pred(), succ()
- option for class properties non static
- type cast integer to enum
- <= and >= for sets
- property of type array
- low(), high() for sets
- call constructor in class method
- assign nil to dynamic array
- resolve const expression
git-svn-id: trunk@35415 -
jswriter:
less duplicate brackets
pasresolver:
break, continue, option to fix case of overrides
pas2js:
procedure args default values,
try..except,
try..except..on..else,
raise, raise E,
class vars,
call class methods,
break,
continue,
rename name conflicts with JS identifiers: apply, call, null, ...
git-svn-id: trunk@35402 -
jswriter: more compact try..catch
pasresolver:
- mark function calls without ()
- "with type do ;"
- constructor call store TPasType
- mark if a constructor call creates a new
instance or is a normal call
- same for destructor
- fixed checking assign operator types
- more tests
fppas2js:
- convert implicit calls in Pascal to explicit calls in JS
- built in procedure "exit" and "exit(value)"
- if loopvar is used afterwards append if($loopend>i)i--;
- classes
- declare using createClass, needs rtl magic
- constructor
- destructor
- vars
- ancestor
- virtual, override, abstract
- "is" operator
- "as" operator
- call inherited "inherited;", "inherited funcname;"
- dynamic arrays
- init as "arr = []"
- SetLength(arr,newlength)
- length(arr)
- try..except, on .. do, raise
- insert default values in calls
git-svn-id: trunk@35383 -
Note 1: using an older AS might fail anyway if the amount of sections is too high (like in packages\odata\src\sharepoint.pp)
Note 2: it might be an idea to keep track of the created sections in the asmlists and only enable the option if *really* necessary (like with the internal COFF output generator), though this might lead to false positives due to multiple sections with the same name (since I'd prefer to use the KISS principle only a counter would be used)
git-svn-id: trunk@35381 -
Note: such files can be linked GNU ld only starting from 2.25; then again the older versions would fail anyway as they'd complain about a too high section count...
git-svn-id: trunk@35380 -
Note: the field names of tcoffbigobjheader and coffbigobjsymbol are inspired from the field names of the structs declared in LLVM
git-svn-id: trunk@35379 -
Commit message:
[PATCH] More consistent RTTI (also better performance) for classic
objects (reference to initrtti from fullrtti).
git-svn-id: trunk@35376 -