Károly Balogh
|
6d795df166
m68k: removed silly debug writeln accidentally left in r35671
|
8 years ago |
Károly Balogh
|
21468861d4
m68k: handle more reg_ref and ref_reg operations more flexibly on the cg level. these OPs should get utilized better with some of the upcoming inline nodes
|
8 years ago |
Károly Balogh
|
2e9d0543df
m68k: do not generate copy loops for single byte copies on a plain '000
|
8 years ago |
Károly Balogh
|
74c1f2aec9
m68k: cosmetics (less C-ism)
|
8 years ago |
Jonas Maebe
|
a25ebbba3e
+ added volatility information to all memory references
|
8 years ago |
Károly Balogh
|
57e6cef18b
m68k: enabled the mul to shift+sub/add optimizations for 68000
|
8 years ago |
Károly Balogh
|
4620d9b22c
m68k: when loading from a reference with zero extend, clear the register first, then load, instead of clearing with AND later, because this is faster on slow 68ks and also shorter
|
8 years ago |
Károly Balogh
|
def4df9791
m68k: fixed a bug, where during during unaligned stores, the base address was preinitalized to a temp address register from the wrong reference, causing havoc
|
9 years ago |
Károly Balogh
|
ed13f4d0d1
m68k: add a function to optimize const MUL cases to sequences of shifts + ADD/SUB. mainly for '000 and other low end 68ks with slow/limited MUL capabilities. inactive for now, as it wasn't that extensively tested
|
9 years ago |
Jonas Maebe
|
aa1be3276f
- removed default value of _typ parameter of TAsmData.(Weak)RefAsmSymbol():
|
9 years ago |
Károly Balogh
|
2eeb078f3e
m68k: removed obsolete and wrong comment. the '881 extended type is actually 12 bytes during load/store, not 10, which means longword alignment is fine. no functional changes.
|
9 years ago |
Károly Balogh
|
a561ffe836
m68k: fixed initial offset adjustment for the unaligned store
|
9 years ago |
Károly Balogh
|
2d6736e40e
m68k: fixed unaligned stores' predecrement addressing. also removed an unnecessary sign-extension of the tmpreg for 16bit stores
|
9 years ago |
Károly Balogh
|
62e0eab89b
m68k: also handle large register save/restore offsets on 68000
|
9 years ago |
Károly Balogh
|
0dd5beb064
m68k: more unaligned access support in the base cg, also enabled the code
|
9 years ago |
Károly Balogh
|
5acd04d284
m68k: some experimental code for the unaligned access support on plain 68000. work in progress, inactive code for now
|
9 years ago |
Károly Balogh
|
786aecabeb
m68k: improved a_op_reg_ref, to support more operations. implemented a_op_ref_reg
|
9 years ago |
Károly Balogh
|
3b4822d320
m68k: utilize MVS and MVZ instructions to load values from references with zero/sign extend when they're available
|
9 years ago |
Károly Balogh
|
2e9ed396b4
m68k: convert non-int paraloc sizes to int in a_load_ref_cgpara, fixes build breaks with softfpu since r33651
|
9 years ago |
Károly Balogh
|
1e6e5a1874
m68k: implemented a_load64_reg_ref and a_load64_ref_reg. avoids duplicated reference simplifications in the generated code during 64bit load/store
|
9 years ago |
Károly Balogh
|
2b250a1b0a
m68k: use a_load_ref_ref in a_load_ref_cgpara instead of a custom loading code which does the same. causes no changes in generated code
|
9 years ago |
Károly Balogh
|
88e14dc456
m68k: only extend the dest reg to tosize during reg-reg moves. this removes a large amount of unnecessary sign and zero extensions from the generated code. this was attempted before, but thanks to other fixes it no longer causes testsuite regressions
|
9 years ago |
Károly Balogh
|
92b2cf917d
m68k: when saving/restoring FPU registers, use the right FPU register size on ColdFire to calculate the stored size
|
9 years ago |
Károly Balogh
|
aa8b45904e
m68k: use the existing g_call infrastructur to handle the register allocation in the helpers
|
9 years ago |
Károly Balogh
|
0b7464e4cd
m68k: fix large const loading to address registers
|
9 years ago |
Károly Balogh
|
f48747adf5
m68k: reworked cg.g_concatcopy. generates shorter and faster code in most cases now.
|
9 years ago |
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 years ago |
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 years ago |
Károly Balogh
|
bd564b8933
m68k: some code to support the ColdFire v4e FPU. not functional yet.
|
9 years ago |
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 years ago |