o separate information for reading and writing, because e.g. in a
try-block, only the writes to local variables and parameters are
volatile (they have to be committed immediately in case the next
instruction causes an exception)
o for now, only references to absolute memory addresses are marked
as volatile
o the volatily information is (should be) properly maintained throughout
all code generators for all archictures with this patch
o no optimizers or other compiler infrastructure uses the volatility
information yet
o this functionality is not (yet) exposed at the language level, it
is only for internal code generator use right now
git-svn-id: trunk@34996 -
* It is now only used to select size of vector instructions (i.e. 128 or 256 bits)
* Scalar instructions reverted to use attsufINT suffix (selecting between 32 or 64 bits).
* Additionally, vcvtsi2sd and vcvtsi2ss with rm64 operand are x86_64 only.
git-svn-id: trunk@34942 -
o "Intel instruction set reference" states that source operand can be XMM register or memory, so GAS behavior
is correct. If any other assembler expects an YMM register, it must be fixed elsewhere.
o x86ins.dat does not allow YMM register as source operand for VCVTDQ2PD, and instructions are checked for validity
before writing them out, therefore this code was simply never executed.
git-svn-id: trunk@34924 -
procedure node_change_local_switch(p : tnode;cs : tlocalswitch;enable : boolean);
to add/remove cs local switch from all p tnode tree localsettings.
modify second_prefetch implementation in arm, ppcgen and x86 subdirectories
to use node_change_local_settings to temporarily disabled
checkpointer local switch, as prefetch is allowed even on unaccessible addresses.
(previous code was buggy because I frogot that each node has it own localswitches).
git-svn-id: trunk@34576 -
it was AT_NONE, which is invalid and should never be used
* explicitly pass the correct value for all calls to those methods elsewhere
in the compiler
git-svn-id: trunk@34250 -
tasmdata.DefineAsmSymbol() and all routines that call it
o will be used to automatically generate AB_INDIRECT sybols when
necessary
git-svn-id: trunk@34164 -
moved the code to create the procedure start/end etc. that was at the
call sites of g_external_wrapper() into the new g_external_wrapper()
-> got rid of the x86-specific code in expunix, and fixed expunix for
llvm (e.g. tests/test/tlib1{a,b})
git-svn-id: trunk@34131 -
+ 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 -