On Tue, 12 Nov 2019 at 12:17, Richard Earnshaw (lists) <richard.earns...@arm.com> wrote: > > On 18/10/2019 14:18, Christophe Lyon wrote: > > +thumb1_gen_const_int (rtx op0, HOST_WIDE_INT op1) > > +{ > > + bool mov_done_p = false; > > + int i; > > + > > + /* Emit upper 3 bytes if needed. */ > > + for (i = 0; i < 3; i++) > > + { > > + int byte = (op1 >> (8 * (3 - i))) & 0xff; > > + > > + if (byte) > > + { > > + emit_set_insn (op0, mov_done_p > > + ? gen_rtx_PLUS (SImode,op0, GEN_INT (byte)) > > + : GEN_INT (byte)); > > + mov_done_p = true; > > + } > > + > > + if (mov_done_p) > > + emit_set_insn (op0, gen_rtx_ASHIFT (SImode, op0, GEN_INT (8))); > > + } > > + > > + /* Emit lower byte if needed. */ > > + if (!mov_done_p) > > + emit_set_insn (op0, GEN_INT (op1 & 0xff)); > > + else if (op1 & 0xff) > > + emit_set_insn (op0, gen_rtx_PLUS (SImode, op0, GEN_INT (op1 & 0xff))); > > +} > > + > > What about Armv8-m.baseline, which has movw/movt? > This is already supported since r247585 (May 2017) "[ARM] Enable Purecode for ARMv8-M Baseline" AFAICT.
Thanks, Christophe > R.