#
24ed4e7e |
| 04-Jun-2013 |
miod <miod@openbsd.org> |
Add "length" attribute to "weird" class instructions of small length: user inline assembly, tb/tbnd instructions.
Don't use `r' qualifier for "register_operand", it's redundant.
|
#
6f098b2c |
| 08-May-2013 |
miod <miod@openbsd.org> |
In block_move_sequence(), use emit_move_insn() instead of rolling our own incomplete equivalent. The ugly BLK<->{QI,HI,SI,DI} load and store insns in m88k.md can thus get removed, and there was much
In block_move_sequence(), use emit_move_insn() instead of rolling our own incomplete equivalent. The ugly BLK<->{QI,HI,SI,DI} load and store insns in m88k.md can thus get removed, and there was much rejoicing (as well as fewer warnings when building).
show more ...
|
#
954fcf4f |
| 30-Jan-2013 |
miod <miod@openbsd.org> |
Revert m88k.md 1.7 and m88k.c 1.27, 1.26 and 1.24 (partially) to restore the existing behaviour of wrapping big PIC addresses in `unspec's to prevent the cse pass from modifying them.
However, inste
Revert m88k.md 1.7 and m88k.c 1.27, 1.26 and 1.24 (partially) to restore the existing behaviour of wrapping big PIC addresses in `unspec's to prevent the cse pass from modifying them.
However, instead of building the unspec ourselves in the C code, rely upon explicitely named define_insn() constructs in the .md description.
Then, fix the ambiguity this introduces between the locate1 and movsi_high_pic insns by defining symbolic constants as the unspec selector, and using them, instead of 0.
show more ...
|
#
965618bc |
| 27-Jan-2013 |
miod <miod@openbsd.org> |
The removal of the wrapping of PIC symbol references in an UNSPEC vector caused the code responsible for adding the proper #got_rel relocation to the second part of the PIC symbol address load.
Inst
The removal of the wrapping of PIC symbol references in an UNSPEC vector caused the code responsible for adding the proper #got_rel relocation to the second part of the PIC symbol address load.
Instead of using an UNSPEC for that purpose (which violates assumptions made by the MI code anyway), check for the the second operand of a LO_SUM being either a SYMBOL_REF or a LABEL_REF, to output the #got_rel relocation, and drop the remaining bits of UNSPEC handling.
show more ...
|
#
ffb30747 |
| 02-Jan-2013 |
miod <miod@openbsd.org> |
Start removing obsolete features from the m88k backend (it's not like we'll need to sync with upstream anymore) to make things a bit simpler and get rid of unintended bitrotting.
This time: - remove
Start removing obsolete features from the m88k backend (it's not like we'll need to sync with upstream anymore) to make things a bit simpler and get rid of unintended bitrotting.
This time: - remove the small-data feature. It was only supported for COFF binaries anyway. This allows us to stop providing TARGET_ASM_SELECT_SECTION and use the default flavour, from which this backend had derived a bit in addition to sdata support, so this is a good thing... - remove the -midentify-version option - remove the -mbig-pic option, it has been superseded by -fPIC since years and was supposed to be removed `in a future version' since a long time as well. - remove the old MONITOR_GCC debug hooks.
show more ...
|
#
ff385ce4 |
| 15-Nov-2012 |
miod <miod@openbsd.org> |
Only allow the "return" insn construct (which simply yields a "jmp r1" line) if null_prologue(), i.e. if there is no stack frame to undo and no r1 to restore.
Make the "epilogue" insn construct no l
Only allow the "return" insn construct (which simply yields a "jmp r1" line) if null_prologue(), i.e. if there is no stack frame to undo and no r1 to restore.
Make the "epilogue" insn construct no longer depend on "return", but rather on "(use (const_int 0))" as "prologue" and as generally done on other backends. On the other hand, make it unconditionnal, instead of "! null_prologue()".
These changes make sure than a leaf procedure call does not end up "returning" (i.e. jmp r1) upon return from the call, without restoring r1 and r30 (whenever applicable) from the existing stack frame.
This makes a gcc3-compiled __main() (from libgcc2.c) no longer spin after invoking the constructors, and gives the real payload (i.e. main() and whatever follows from there) a chance to run.
show more ...
|
#
023f4f6a |
| 09-Nov-2012 |
miod <miod@openbsd.org> |
Move the actual operand contraints in define_split constructs from the lisp expression attributes to the conditional C statement chunk, for this is the only way to have them honored with gcc 3 (thank
Move the actual operand contraints in define_split constructs from the lisp expression attributes to the conditional C statement chunk, for this is the only way to have them honored with gcc 3 (thanks for genrecog to warn about this).
Note that most of the affected operands were ``register_operand'', hence the "r" constraint is implied. There are a few `register + ccmode' constructs which could have caused wrong code generation before this change, though.
show more ...
|
#
a091d7a7 |
| 09-Nov-2012 |
miod <miod@openbsd.org> |
(subreg) in gcc 3 takes the subreg position in bytes, not in BYTES_PER_WORD units.
|
#
513eb745 |
| 09-Nov-2012 |
miod <miod@openbsd.org> |
Port the gcc 2.95 m88k fixes to the gcc 3 codebase, except for the function frame setup and varargs handling, which need some more work at the moment.
|
#
c87b03e5 |
| 29-Nov-2003 |
espie <espie@openbsd.org> |
Import gcc-3.3.2. Only the compiler. ada frontend removed for space considerations.
|