@@ -252,6 +252,65 @@ Changes to the Windows Target
252
252
253
253
* Fixed section relative relocations in .debug_frame in DWARF debug info
254
254
255
+ Changes to the RISC-V Target
256
+ ----------------------------
257
+
258
+ New Features:
259
+ * The Machine Outliner has been enabled.
260
+ * Shrink-wrapping has been enabled.
261
+ * The Machine Scheduler has been enabled and scheduler descriptions for the
262
+ Rocket micro-architecture have been added, covering both 32- and 64-bit Rocket
263
+ cores.
264
+ * This release lays the groundwork for enabling LTO in a future LLVM release.
265
+ In particular, LLVM now uses a new `target-abi ` module metadata item to
266
+ represent the chosen RISC-V psABI variant. Frontends should add this module
267
+ flag to prevent ABI lowering problems when LTO is enabled in a future LLVM
268
+ release.
269
+ * Support has been added for assembling RVC HINT instructions.
270
+ * Added code lowering for half-precision floats.
271
+ * The `fscsr ` and `frcsr ` (`fssr `, `frsr `) obsolete aliases have been added to
272
+ the assembler for use in legacy code.
273
+ * The stack can now be realigned even when there are variable-sized objects in
274
+ the same frame.
275
+ * fastcc is now supported.
276
+ * llvm-objdump now supports `-M no-aliases ` and `-M numeric ` for altering the
277
+ dumped assembly. These match the behaviour of GNU objdump.
278
+
279
+ Improvements:
280
+ * Trap and Debugtrap now lower to RISC-V-specific trap instructions.
281
+ * LLVM IR Inline assembly now supports using ABI register names and using
282
+ floating point registers in constraints.
283
+ * Stack Pointer adjustments have been changed to better match RISC-V's immediates.
284
+ * `ra ` (`x1 `) can now be used as a callee-saved register.
285
+ * The assembler now suggests spelling corrections for unknown assembly
286
+ mnemonics.
287
+ * Stack offsets of greater than 32-bits are now accepted on RV64.
288
+ * Some variadic functions can now be tail-call optimised.
289
+ * We now custom-lower 32-bit arithmetic operations on RV64 to reduce
290
+ sign-extensions.
291
+
292
+
293
+ Bug Fixes:
294
+
295
+ * There was an issue with register preservation after calls in interrupt
296
+ handlers, where some registers were marked as preserved even though they were
297
+ not being preserved by the call. This has been corrected, and now only
298
+ callee-saved registers are live over a function call in an interrupt handler
299
+ (just like calls in regular functions).
300
+ * Atomic instructions now only accept GPRs (plus an offset) in memory operands.
301
+ * Fixed some issues with evalutaion of relocations and fixups.
302
+ * The error messages around missing RISC-V extensions in the assembler have been
303
+ improved.
304
+ * The error messages around unsupported relocations have been improved.
305
+ * Non-PIC code no longer forces Local Exec TLS.
306
+ * There have been some small changes to the code generation for atomic
307
+ operations.
308
+ * RISC-V no longer emits incorrect CFI directives in function prologs and
309
+ epilogs.
310
+ * RV64 no longer clears the upper bits when returning complex types from
311
+ libcalls using the LP64 psABI.
312
+
313
+
255
314
256
315
Changes to the OCaml bindings
257
316
-----------------------------
0 commit comments