This branch removes the trapif and trapff instructions, in favor of using an explicit comparison and trapnz. This moves us closer to removing iflags and fflags, but introduces the need to implement instructions like iadd_cout in the x64 and aarch64 backends.
23 lines
287 B
Plaintext
23 lines
287 B
Plaintext
test compile precise-output
|
|
target aarch64
|
|
|
|
function %trap() {
|
|
block0:
|
|
trap user0
|
|
}
|
|
|
|
; block0:
|
|
; udf #0xc11f
|
|
|
|
function %trap_iadd_ifcout(i64, i64) {
|
|
block0(v0: i64, v1: i64):
|
|
v2 = uadd_overflow_trap v0, v1, user0
|
|
return
|
|
}
|
|
|
|
; block0:
|
|
; adds x3, x0, x1
|
|
; b.lo 8 ; udf
|
|
; ret
|
|
|