[RISCV] Remove Last Traces of User Interrupts (#129300)
These were left over from when Craig removed `__attribute__((interrupt("user")))` support in 05d0caef6081e1a6cb23a5a5afe43dc82e8ca558. The tests change "interrupt"="user" into "interrupt"="machine" as they are still intending to be interrupt tests. ISelLowering will now reject "interrupt"="user". The docs no longer mention "user" as a possible interrupt attribute argument.
This commit is contained in:
parent
f9a6ea4489
commit
ee4bc5a8ca
@ -2828,8 +2828,8 @@ targets. This attribute may be attached to a function definition and instructs
|
|||||||
the backend to generate appropriate function entry/exit code so that it can be
|
the backend to generate appropriate function entry/exit code so that it can be
|
||||||
used directly as an interrupt service routine.
|
used directly as an interrupt service routine.
|
||||||
|
|
||||||
Permissible values for this parameter are ``user``, ``supervisor``,
|
Permissible values for this parameter are ``supervisor`` and ``machine``. If
|
||||||
and ``machine``. If there is no parameter, then it defaults to machine.
|
there is no parameter, then it defaults to ``machine``.
|
||||||
|
|
||||||
Repeated interrupt attribute on the same declaration will cause a warning
|
Repeated interrupt attribute on the same declaration will cause a warning
|
||||||
to be emitted. In case of repeated declarations, the last one prevails.
|
to be emitted. In case of repeated declarations, the last one prevails.
|
||||||
|
@ -20831,7 +20831,7 @@ SDValue RISCVTargetLowering::LowerFormalArguments(
|
|||||||
StringRef Kind =
|
StringRef Kind =
|
||||||
MF.getFunction().getFnAttribute("interrupt").getValueAsString();
|
MF.getFunction().getFnAttribute("interrupt").getValueAsString();
|
||||||
|
|
||||||
if (!(Kind == "user" || Kind == "supervisor" || Kind == "machine"))
|
if (!(Kind == "supervisor" || Kind == "machine"))
|
||||||
report_fatal_error(
|
report_fatal_error(
|
||||||
"Function interrupt attribute argument not supported!");
|
"Function interrupt attribute argument not supported!");
|
||||||
}
|
}
|
||||||
|
@ -279,7 +279,7 @@ define internal void @internal2() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
; Check interrupt function does not need landing pad.
|
; Check interrupt function does not need landing pad.
|
||||||
define void @interrupt() "interrupt"="user" {
|
define void @interrupt() "interrupt"="machine" {
|
||||||
; CHECK-LABEL: interrupt:
|
; CHECK-LABEL: interrupt:
|
||||||
; CHECK: # %bb.0:
|
; CHECK: # %bb.0:
|
||||||
; CHECK-NEXT: mret
|
; CHECK-NEXT: mret
|
||||||
|
@ -1769,7 +1769,7 @@ define void @alloca(i32 %n) {
|
|||||||
declare i32 @foo_test_irq(...)
|
declare i32 @foo_test_irq(...)
|
||||||
@var_test_irq = global [32 x i32] zeroinitializer
|
@var_test_irq = global [32 x i32] zeroinitializer
|
||||||
|
|
||||||
define void @foo_with_irq() "interrupt"="user" {
|
define void @foo_with_irq() "interrupt"="machine" {
|
||||||
; RV32IZCMP-LABEL: foo_with_irq:
|
; RV32IZCMP-LABEL: foo_with_irq:
|
||||||
; RV32IZCMP: # %bb.0:
|
; RV32IZCMP: # %bb.0:
|
||||||
; RV32IZCMP-NEXT: cm.push {ra}, -64
|
; RV32IZCMP-NEXT: cm.push {ra}, -64
|
||||||
@ -2273,7 +2273,7 @@ define void @foo_no_irq() {
|
|||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
define void @callee_with_irq() "interrupt"="user" {
|
define void @callee_with_irq() "interrupt"="machine" {
|
||||||
; RV32IZCMP-LABEL: callee_with_irq:
|
; RV32IZCMP-LABEL: callee_with_irq:
|
||||||
; RV32IZCMP: # %bb.0:
|
; RV32IZCMP: # %bb.0:
|
||||||
; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -112
|
; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -112
|
||||||
|
Loading…
x
Reference in New Issue
Block a user