Károly Balogh
|
f48747adf5
m68k: reworked cg.g_concatcopy. generates shorter and faster code in most cases now.
|
9 лет назад |
Károly Balogh
|
4287f81b92
m68k: support and use float TResFlags in the rest of the CG. ColdFire FPU now works, and FSxx is no longer generated which is software supported on '060, and doesn't exist on CF. if we still want to support it later, we can add it to cg.g_flags2reg
|
9 лет назад |
Károly Balogh
|
9d2dad2463
m68k: added cpu type cfv4e, which is the only ColdFire with FPU, and GNU AS needs this to actually allow CF FPU code
|
9 лет назад |
Károly Balogh
|
bd564b8933
m68k: some code to support the ColdFire v4e FPU. not functional yet.
|
9 лет назад |
Károly Balogh
|
4e964c2ed7
m68k: rewrote fixref and a_load_ref_ref, fixing a bunch of problems on ColdFire, unifying and simplifying the code a lot, and hopefully not killing anything in the process
|
9 лет назад |
Károly Balogh
|
1e0763e251
m68k: use a_load_const_ref in a_load_const_cgpara to utilize the recently added optimized small const loading here too. this change alone shaves off ~80KB from the compiled FP IDE size...
|
9 лет назад |
Károly Balogh
|
185ee93312
m68k: if we're loading small (8 bit signed) values into long references, move them through a register (usually with MOVEQ). this is two bytes shorter and also faster on most 68k CPUs
|
9 лет назад |
Károly Balogh
|
c82328e3fd
m68k: implemented tcg68k.check_register_size for future use. use R_SUBNONE for FPU registers, because R_SUBWHOLE will change. use isregoverlap in a_load_reg_reg
|
9 лет назад |
Károly Balogh
|
3c0dca44d3
m68k: fixed a copypaste fail in tcg68k.g_restore_registers, which affected FPU register restoring
|
9 лет назад |
Jonas Maebe
|
61e4a1b811
+ added tasmlist parameter to getintparaloc() (needed for llvm)
|
10 лет назад |
Jonas Maebe
|
201121d7c9
* synchronised with trunk till r30345
|
10 лет назад |
Károly Balogh
|
b617345e43
m68k: disabled premature MOVEA #0,Ax to SUBA Ax,Ax in the CG, because it breaks with spilling temp replacement and moved it to the optimizer, where it belongs. this fixes some code with potentially heavy address register pressure, like the IDE.
|
10 лет назад |
Jonas Maebe
|
bd203a5b57
* synchronised with trunk till r30240
|
10 лет назад |
Károly Balogh
|
2555f12394
m68k: improved handling of moves and sign/zero extensions targeting address regs
|
10 лет назад |
Károly Balogh
|
935820293c
m68k: in tm68ktypeconvnode.int_to_real, fix the reference before using it, and if the source is a register, make sure it's a data register
|
10 лет назад |
Károly Balogh
|
1121c2e6ce
m68k: before doing a reg->ref operation, make sure the source is a datareg
|
10 лет назад |
Jonas Maebe
|
67b8aceaee
* synchronized with privatetrunk till r30095
|
10 лет назад |
Károly Balogh
|
106056f462
m68k: more FMOVEM.X store/load size fixes
|
10 лет назад |
Károly Balogh
|
acaf382ea0
m68k: FMOVEM.X stores/loads each reg as 12 bytes (96 bits) not 10 bytes (80 bits), see 68k PRM, page 5-86
|
10 лет назад |
Károly Balogh
|
a526b0e5d6
m68k: implemented some missing bits of FPU cgpara handling, functions with float arguments seem to work much better now
|
10 лет назад |
Károly Balogh
|
06dfa4d30c
m68k: also alloc FPU registers during RTL helper calls
|
10 лет назад |
Károly Balogh
|
a99c9c29b6
m68k: basic 68881 FPU register save/restore support. probably still needs some work here and there.
|
10 лет назад |
Károly Balogh
|
7a91d5f495
m68k: oops, unbroke the build with softfpu
|
10 лет назад |
Károly Balogh
|
d000b1bc7c
m68k: basic 68881 fpu support. probably still broken at umpzillion places, and mostly untested, but at least it builds the RTL and all packages successfully with -Cp68020 -Cf68881 instead of dying with random internalerrors() and now even emits actual FPU opcodes.
|
10 лет назад |
Károly Balogh
|
3b205742b6
m68k: also try to optimize a special case of OP_SAR using the SWAP instruction
|
11 лет назад |
Károly Balogh
|
d561e8ab57
m68k: generate smarter shifting/rotation code on 68k, for example by utilizing the SWAP instruction
|
11 лет назад |
Károly Balogh
|
9991ee4165
m68k: support loading of refs to data registers, also when explicit paraloc is set and it's a register, use that directly, this fixes several syscall-related corner cases on Amiga
|
11 лет назад |
sergei
|
a5958d6e5f
* m68k: do not emit moves between same register, they end up in wrong code in some cases when register needs to be spilled (and entirely useless otherwise).
|
11 лет назад |
Károly Balogh
|
392da9e43f
* fix warnings when compiling the compiler with DFA optimizer enabled on m68k
|
11 лет назад |
Jonas Maebe
|
b18ba8e85b
* syncrhonised with trunk up till r28471
|
11 лет назад |