summaryrefslogtreecommitdiff
path: root/cgaas.c
AgeCommit message (Collapse)AuthorFilesLines
2016-05-30also align virtual data section begin addressJohn van Groningen1-1/+1
2016-05-30set default alignment of data segment to 8 instead of 4John van Groningen1-3/+1
2016-05-30fix previous commit:John van Groningen1-1/+1
add data_object_section_align_p2 for MACH_O64, because data_object doesn't exist
2016-05-30add data_object_section_align_p2 for MACH_O64, because data_object doesn't existJohn van Groningen1-3/+17
2016-05-30use data_object_label->object_section_align_p2 on MACH_O64,John van Groningen1-10/+12
fix alignment of constant for floating point abs
2016-05-30rename field object_section_align as object_section_align_p2John van Groningen1-12/+12
2016-04-15fix alignment problem caused by optimizing a jump instruction for an apply ↵John van Groningen1-19/+18
update entry n Mac OS X
2015-12-24restore some code for 64 bit windows version, broken by previous commitJohn van Groningen1-1/+71
2015-12-10add code for generating 64 bit object files on Mac OS XJohn van Groningen1-253/+652
2013-12-05add unused function define_exported_data_label_with_offset for Mac OS X,John van Groningen1-2/+7
to prevent link error
2013-12-03implement position independent code generation on 64 bit linux (fix code for ↵John van Groningen1-1/+2
jsr GOT label)
2013-12-03implement position independent code generation on 64 bit linuxJohn van Groningen1-39/+270
2013-08-08use offset 0 instead of -4 of PC_RELATIVE_LONG_WORD_RELOCATIONJohn van Groningen1-1/+1
2013-08-08for the PC_RELATIVE_LONG_WORD_RELOCATION,John van Groningen1-10/+29
use relative to the first byte (of the relocated long word) for data, and relative to the next byte (after the relocated long word) for instructions (the ELF relocation is relative to the first byte, the COFF relocation relative to the next byte)
2013-08-07don't subtract 4 from offset of PC_RELATIVE_LONG_WORD_RELOCATION for ↵John van Groningen1-3/+0
position independent 64 bit linux code
2013-08-01use 64 instead of 32 bit address in indirect call for position independent ↵John van Groningen1-1/+7
code on linux
2013-08-01use 64 instead of 32 bit address in indirect jump for position independent ↵John van Groningen1-1/+7
code on linux
2013-07-31don't use 12 bytes to store an 8 byte descriptor when generating position ↵John van Groningen1-0/+6
independent code on linux
2013-07-24use 64 bit code addresses in descriptors, for position independent code on linuxJohn van Groningen1-5/+91
2013-07-23add missing variable declaration int vJohn van Groningen1-0/+2
2013-07-23store offset instead of address of module string, for position independent ↵John van Groningen1-0/+88
code on 64 bit linux
2013-07-17make imported global labels protected for position independent code on linuxJohn van Groningen1-0/+5
2013-07-17make global labels protected for position independent code on linuxJohn van Groningen1-0/+13
2013-07-15store pc relative offset instead of descriptor in code section forJohn van Groningen1-2/+2
position independent code on 64 bit linux
2013-07-12fix syntax errorJohn van Groningen1-1/+1
2013-07-12store pc relative offset of global offset table entry instead of descriptor ↵John van Groningen1-0/+79
in code section for position independent code on 64 bit linux
2013-06-25use pc relative lea instruction for eval_upd_.. on 64 bit linuxJohn van Groningen1-0/+5
2013-06-25use pc relative lea instruction for eval_fill on 64 bit linuxJohn van Groningen1-0/+5
2013-06-25use lea when generating position independent code for cmp with descriptor fixJohn van Groningen1-2/+11
2013-06-25use lea when generating position independent code for cmp with descriptorJohn van Groningen1-0/+8
2013-06-25use lea when generating position independent code for move descriptor indirectJohn van Groningen1-9/+10
2011-12-09port unsigned divide and remainder to 64 bit processorJohn van Groningen1-51/+87
2011-11-22generate thread safe code on 64 bit windows if THREAD64 is definedJohn van Groningen1-0/+27
2011-11-15also optimize division by large constants (>32 bits) on 64 bit processorsJohn van Groningen1-61/+93
2011-04-19add rotl% and rotr% instructions John van Groningen1-0/+12
2011-02-01port to Mac OS X (AMD64) using assemblerJohn van Groningen1-0/+9
2010-12-13optimize for cpu with a 128 bit sse unit (instead of 64):John van Groningen1-15/+65
use mosvd instead of movlpd for loads and use movapd instead of movsd for register to register moves, add -sse64 option to optimize for 64 bit sse,
2010-07-28use memmove instead of memcpyJohn van Groningen1-2/+2
2008-12-18rename IMOD to IREMJohn van Groningen1-1/+1
2007-05-10rename IMOVEW as IMOVEDB,John van Groningen1-9/+208
add sincosR instruction for IA32, add 32 bit integer and real arrays for AI64
2006-12-14store 64 bits in data section (instead of 32) for cvtsi2sdq instructionJohn van Groningen1-1/+1
2006-09-18fix error in rex prefix for move register to global variable and move globalJohn van Groningen1-2/+2
variable to register, for registers r8-r15
2006-06-26implement IFABSJohn van Groningen1-2/+58
2006-06-13fix cvtsd2si (source and destination register numbers were swapped)John van Groningen1-2/+2
2006-05-29use offset -24 for apply update entry if profiling is usedJohn van Groningen1-8/+15
2006-05-11allow shifts up to 63 bits instead of 31John van Groningen1-2/+2
2006-05-10add shift_s instructions, use RELA for ELF, port to linuxJohn van Groningen1-145/+478
2006-05-01use int_64 instead of __int64, define int_64, include stdint.h on 64 bits linuxJohn van Groningen1-10/+13
2006-03-24remove use of scratch register on IA32 for shift instructions (by addingJohn van Groningen1-13/+60
instruction with extra register), IScc, IFScc, IFBcc (by adding IFCcc instructions with extra register), ICMPW (not used anymore) prevent generating FLD and FSTP instructions between FCOMP and FNSTSW instruction
2006-02-24add generating instruction for converting real to intJohn van Groningen1-35/+55