From daff19f8543df6e47fa39d6b41608ddbf33f638c Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 14 Mar 2023 11:40:17 -0700 Subject: [PATCH] Back out s390x changes --- cranelift/codegen/src/isa/s390x/inst/emit.rs | 17 +- .../codegen/src/isa/s390x/inst/emit_tests.rs | 4 +- cranelift/codegen/src/isa/s390x/inst/mod.rs | 6 +- .../isa/s390x/floating-point-arch13.clif | 358 +++++++++--------- .../filetests/isa/s390x/floating-point.clif | 358 +++++++++--------- .../isa/s390x/uadd_overflow_trap.clif | 42 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 4 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 4 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 4 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 4 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 4 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 4 +- ...o_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...no_spectre_i8_access_0xffff0000_offset.wat | 4 +- ...s_spectre_i32_access_0xffff0000_offset.wat | 4 +- ...es_spectre_i8_access_0xffff0000_offset.wat | 4 +- 22 files changed, 424 insertions(+), 425 deletions(-) diff --git a/cranelift/codegen/src/isa/s390x/inst/emit.rs b/cranelift/codegen/src/isa/s390x/inst/emit.rs index fd90431ffc30..5a811e7a3a47 100644 --- a/cranelift/codegen/src/isa/s390x/inst/emit.rs +++ b/cranelift/codegen/src/isa/s390x/inst/emit.rs @@ -3587,18 +3587,17 @@ impl Inst { if let Some(s) = state.take_stack_map() { sink.add_stack_map(StackMapExtent::UpcomingBytes(2), s); } - sink.add_trap(trap_code); - sink.put_data(&Inst::TRAP_OPCODE); + put_with_trap(sink, &enc_e(0x0000), trap_code); } &Inst::TrapIf { cond, trap_code } => { - let label = sink.defer_trap(trap_code, state.take_stack_map()); - - let off = sink.cur_offset(); - sink.use_label_at_offset(off, label, LabelUse::BranchRI); - - // Branch to the trap if condition is true. + // Branch over trap if condition is false. let opcode = 0xa74; // BCR - put(sink, &enc_ri_c(opcode, cond.bits(), 2)); + put(sink, &enc_ri_c(opcode, cond.invert().bits(), 4 + 2)); + // Now emit the actual trap. + if let Some(s) = state.take_stack_map() { + sink.add_stack_map(StackMapExtent::UpcomingBytes(2), s); + } + put_with_trap(sink, &enc_e(0x0000), trap_code); } &Inst::JTSequence { ridx, ref targets } => { let ridx = allocs.next(ridx); diff --git a/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs b/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs index 7f162e95538e..003365cc084b 100644 --- a/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs +++ b/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs @@ -7041,8 +7041,8 @@ fn test_s390x_binemit() { cond: Cond::from_mask(1), trap_code: TrapCode::StackOverflow, }, - "A71400020000", - "jo #trap=stk_ovf", + "A7E400030000", + "jno 6 ; trap", )); insns.push(( diff --git a/cranelift/codegen/src/isa/s390x/inst/mod.rs b/cranelift/codegen/src/isa/s390x/inst/mod.rs index 9549e0d35336..f6b22aa4604a 100644 --- a/cranelift/codegen/src/isa/s390x/inst/mod.rs +++ b/cranelift/codegen/src/isa/s390x/inst/mod.rs @@ -3187,9 +3187,9 @@ impl Inst { } &Inst::Debugtrap => "debugtrap".to_string(), &Inst::Trap { .. } => "trap".to_string(), - &Inst::TrapIf { cond, trap_code } => { - let cond = cond.pretty_print_default(); - format!("j{cond} #trap={trap_code}") + &Inst::TrapIf { cond, .. } => { + let cond = cond.invert().pretty_print_default(); + format!("j{} 6 ; trap", cond) } &Inst::JTSequence { ridx, ref targets } => { let ridx = pretty_print_reg(ridx, allocs); diff --git a/cranelift/filetests/filetests/isa/s390x/floating-point-arch13.clif b/cranelift/filetests/filetests/isa/s390x/floating-point-arch13.clif index c4ae1d79b6a2..b111bf0621d1 100644 --- a/cranelift/filetests/filetests/isa/s390x/floating-point-arch13.clif +++ b/cranelift/filetests/filetests/isa/s390x/floating-point-arch13.clif @@ -10,13 +10,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 256 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclfeb %v20, %f0, 0, 5 ; vlgvf %r2, %v20, 0 ; br %r14 @@ -24,23 +24,23 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x42 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; ic %r8, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x44 -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x46 +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; vclgd %v20, %v0, 2, 8, 5 ; vlgvf %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i8(f32) -> i8 { block0(v0: f32): @@ -51,13 +51,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 128 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -129 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcfeb %v20, %f0, 0, 5 ; vlgvf %r2, %v20, 0 ; br %r14 @@ -65,24 +65,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x42 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; ic %r0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x44 -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; .byte 0xc3, 0x01 ; .byte 0x00, 0x00 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x46 +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; vcgd %v20, %v0, 2, 8, 5 ; vlgvf %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f32_i16(f32) -> i16 { block0(v0: f32): @@ -93,13 +93,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 65536 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclfeb %v20, %f0, 0, 5 ; vlgvf %r2, %v20, 0 ; br %r14 @@ -107,23 +107,23 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x42 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; be 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x44 -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x46 +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; vclgd %v20, %v0, 2, 8, 5 ; vlgvf %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i16(f32) -> i16 { block0(v0: f32): @@ -134,13 +134,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 32768 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -32769 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcfeb %v20, %f0, 0, 5 ; vlgvf %r2, %v20, 0 ; br %r14 @@ -148,24 +148,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x42 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; bc 0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x44 -; bras %r1, 0x24 -; bpp 0, -0x31e0, 0x100 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 +; bpp 0, -0x31dc, 0x100 ; lpr %r0, %r0 ; .byte 0x08, 0x03 ; wfcsb %f0, %v16 -; jle 0x46 +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; vcgd %v20, %v0, 2, 8, 5 ; vlgvf %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f32_i32(f32) -> i32 { block0(v0: f32): @@ -176,13 +176,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 4294967300 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclfeb %v20, %f0, 0, 5 ; vlgvf %r2, %v20, 0 ; br %r14 @@ -190,23 +190,23 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x42 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; cvb %r8, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x44 -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x46 +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; vclgd %v20, %v0, 2, 8, 5 ; vlgvf %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i32(f32) -> i32 { block0(v0: f32): @@ -217,13 +217,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 2147483600 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -2147484000 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcfeb %v20, %f0, 0, 5 ; vlgvf %r2, %v20, 0 ; br %r14 @@ -231,24 +231,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x42 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; cvb %r0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x44 -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; .byte 0xcf, 0x00 ; .byte 0x00, 0x01 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x46 +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; vcgd %v20, %v0, 2, 8, 5 ; vlgvf %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f32_i64(f32) -> i64 { block0(v0: f32): @@ -259,13 +259,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 18446744000000000000 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -274,24 +274,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; sl %r8, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i64(f32) -> i64 { block0(v0: f32): @@ -302,13 +302,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 9223372000000000000 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -9223373000000000000 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -317,25 +317,25 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; sl %r0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; edmk 1(1), 0x700(%r14) ; lpr %r0, %r0 ; .byte 0x08, 0x03 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i8(f64) -> i8 { block0(v0: f64): @@ -346,13 +346,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 256 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -360,27 +360,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r7, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i8(f64) -> i8 { block0(v0: f64): @@ -391,13 +391,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 128 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -129 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -405,26 +405,26 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r6, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c -; larl %r6, 0x40000024 +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 +; larl %r6, 0x40000028 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i16(f64) -> i16 { block0(v0: f64): @@ -435,13 +435,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 65536 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -449,27 +449,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r15, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i16(f64) -> i16 { block0(v0: f64): @@ -480,13 +480,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 32768 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -32769 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -494,26 +494,26 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r14, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c -; larl %r14, 0x400024 +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 +; larl %r14, 0x400028 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i32(f64) -> i32 { block0(v0: f64): @@ -524,13 +524,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 4294967296 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -538,27 +538,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; la %r15, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i32(f64) -> i32 { block0(v0: f64): @@ -569,13 +569,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 2147483648 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -2147483649 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -583,28 +583,28 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; la %r14, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; .byte 0xc1, 0xe0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x20 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i64(f64) -> i64 { block0(v0: f64): @@ -615,13 +615,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 18446744073709552000 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -629,27 +629,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; ic %r15, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i64(f64) -> i64 { block0(v0: f64): @@ -660,13 +660,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 9223372036854776000 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -9223372036854778000 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -674,28 +674,28 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; ic %r14, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; .byte 0xc3, 0xe0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; .byte 0x00, 0x01 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_from_uint_i8_f32(i8) -> f32 { block0(v0: i8): diff --git a/cranelift/filetests/filetests/isa/s390x/floating-point.clif b/cranelift/filetests/filetests/isa/s390x/floating-point.clif index 28605dd6e353..0181ffdd3556 100644 --- a/cranelift/filetests/filetests/isa/s390x/floating-point.clif +++ b/cranelift/filetests/filetests/isa/s390x/floating-point.clif @@ -683,13 +683,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 256 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -698,24 +698,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; ic %r8, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i8(f32) -> i8 { block0(v0: f32): @@ -726,13 +726,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 128 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -129 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -741,25 +741,25 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; ic %r0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; .byte 0xc3, 0x01 ; .byte 0x00, 0x00 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f32_i16(f32) -> i16 { block0(v0: f32): @@ -770,13 +770,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 65536 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -785,24 +785,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; be 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i16(f32) -> i16 { block0(v0: f32): @@ -813,13 +813,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 32768 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -32769 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -828,25 +828,25 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; bc 0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 -; bpp 0, -0x31e0, 0x100 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 +; bpp 0, -0x31dc, 0x100 ; lpr %r0, %r0 ; .byte 0x08, 0x03 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f32_i32(f32) -> i32 { block0(v0: f32): @@ -857,13 +857,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 4294967300 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -872,24 +872,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; cvb %r8, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i32(f32) -> i32 { block0(v0: f32): @@ -900,13 +900,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 2147483600 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -2147484000 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -915,25 +915,25 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; cvb %r0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; .byte 0xcf, 0x00 ; .byte 0x00, 0x01 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f32_i64(f32) -> i64 { block0(v0: f32): @@ -944,13 +944,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 18446744000000000000 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -959,24 +959,24 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; sl %r8, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; icm %r8, 0, 0 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wclgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f32_i64(f32) -> i64 { block0(v0: f32): @@ -987,13 +987,13 @@ block0(v0: f32): ; VCode: ; block0: ; cebr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 8 ; data.f32 9223372000000000000 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 8 ; data.f32 -9223373000000000000 ; vlef %v16, 0(%r1), 0 ; wfcsb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 @@ -1002,25 +1002,25 @@ block0(v0: f32): ; Disassembled: ; block0: ; offset 0x0 ; cebr %f0, %f0 -; jo 0x48 -; bras %r1, 0x10 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x12 ; sl %r0, 0 ; le %f4, 0(%r1) ; cebr %f0, %f4 -; jhe 0x4a -; bras %r1, 0x24 +; jnhe 0x20 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x28 ; edmk 1(1), 0x700(%r14) ; lpr %r0, %r0 ; .byte 0x08, 0x03 ; wfcsb %f0, %v16 -; jle 0x4c +; jnle 0x3a +; .byte 0x00, 0x00 ; trap: int_ovf ; wldeb %v20, %f0 ; wcgdb %v22, %v20, 0, 5 ; vlgvg %r2, %v22, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i8(f64) -> i8 { block0(v0: f64): @@ -1031,13 +1031,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 256 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1045,27 +1045,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r7, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i8(f64) -> i8 { block0(v0: f64): @@ -1076,13 +1076,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 128 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -129 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1090,26 +1090,26 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r6, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c -; larl %r6, 0x40000024 +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 +; larl %r6, 0x40000028 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i16(f64) -> i16 { block0(v0: f64): @@ -1120,13 +1120,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 65536 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1134,27 +1134,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r15, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i16(f64) -> i16 { block0(v0: f64): @@ -1165,13 +1165,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 32768 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -32769 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1179,26 +1179,26 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; sth %r14, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c -; larl %r14, 0x400024 +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 +; larl %r14, 0x400028 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i32(f64) -> i32 { block0(v0: f64): @@ -1209,13 +1209,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 4294967296 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1223,27 +1223,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; la %r15, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i32(f64) -> i32 { block0(v0: f64): @@ -1254,13 +1254,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 2147483648 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -2147483649 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1268,28 +1268,28 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; la %r14, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; .byte 0xc1, 0xe0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x20 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_uint_f64_i64(f64) -> i64 { block0(v0: f64): @@ -1300,13 +1300,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 18446744073709552000 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1314,27 +1314,27 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; ic %r15, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; icm %r15, 0, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wclgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_to_sint_f64_i64(f64) -> i64 { block0(v0: f64): @@ -1345,13 +1345,13 @@ block0(v0: f64): ; VCode: ; block0: ; cdbr %f0, %f0 -; jo #trap=bad_toint +; jno 6 ; trap ; bras %r1, 12 ; data.f64 9223372036854776000 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe #trap=int_ovf +; jnhe 6 ; trap ; bras %r1, 12 ; data.f64 -9223372036854778000 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle #trap=int_ovf +; jnle 6 ; trap ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 @@ -1359,28 +1359,28 @@ block0(v0: f64): ; Disassembled: ; block0: ; offset 0x0 ; cdbr %f0, %f0 -; jo 0x4a -; bras %r1, 0x14 +; jno 0xa +; .byte 0x00, 0x00 ; trap: bad_toint +; bras %r1, 0x16 ; ic %r14, 0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; ld %f4, 0(%r1) ; cdbr %f0, %f4 -; jhe 0x4c -; bras %r1, 0x2c +; jnhe 0x24 +; .byte 0x00, 0x00 ; trap: int_ovf +; bras %r1, 0x30 ; .byte 0xc3, 0xe0 ; .byte 0x00, 0x00 ; .byte 0x00, 0x00 ; .byte 0x00, 0x01 ; vleg %v16, 0(%r1), 0 ; wfcdb %f0, %v16 -; jle 0x4e +; jnle 0x42 +; .byte 0x00, 0x00 ; trap: int_ovf ; wcgdb %v20, %f0, 0, 5 ; vlgvg %r2, %v20, 0 ; br %r14 -; .byte 0x00, 0x00 ; trap: bad_toint -; .byte 0x00, 0x00 ; trap: int_ovf -; .byte 0x00, 0x00 ; trap: int_ovf function %fcvt_from_uint_i8_f32(i8) -> f32 { block0(v0: i8): diff --git a/cranelift/filetests/filetests/isa/s390x/uadd_overflow_trap.clif b/cranelift/filetests/filetests/isa/s390x/uadd_overflow_trap.clif index 5b912f828965..f49a40590ce7 100644 --- a/cranelift/filetests/filetests/isa/s390x/uadd_overflow_trap.clif +++ b/cranelift/filetests/filetests/isa/s390x/uadd_overflow_trap.clif @@ -11,15 +11,15 @@ block0(v0: i32): ; VCode: ; block0: ; alfi %r2, 127 -; jnle #trap=user0 +; jle 6 ; trap ; br %r14 ; ; Disassembled: ; block0: ; offset 0x0 ; alfi %r2, 0x7f -; jnle 0xc -; br %r14 +; jle 0xc ; .byte 0x00, 0x00 ; trap: user0 +; br %r14 function %f1(i32) -> i32 { block0(v0: i32): @@ -31,15 +31,15 @@ block0(v0: i32): ; VCode: ; block0: ; alfi %r2, 127 -; jnle #trap=user0 +; jle 6 ; trap ; br %r14 ; ; Disassembled: ; block0: ; offset 0x0 ; alfi %r2, 0x7f -; jnle 0xc -; br %r14 +; jle 0xc ; .byte 0x00, 0x00 ; trap: user0 +; br %r14 function %f2(i32, i32) -> i32 { block0(v0: i32, v1: i32): @@ -50,15 +50,15 @@ block0(v0: i32, v1: i32): ; VCode: ; block0: ; alr %r2, %r3 -; jnle #trap=user0 +; jle 6 ; trap ; br %r14 ; ; Disassembled: ; block0: ; offset 0x0 ; alr %r2, %r3 -; jnle 8 -; br %r14 +; jle 8 ; .byte 0x00, 0x00 ; trap: user0 +; br %r14 function %f3(i64) -> i64 { block0(v0: i64): @@ -70,15 +70,15 @@ block0(v0: i64): ; VCode: ; block0: ; algfi %r2, 127 -; jnle #trap=user0 +; jle 6 ; trap ; br %r14 ; ; Disassembled: ; block0: ; offset 0x0 ; algfi %r2, 0x7f -; jnle 0xc -; br %r14 +; jle 0xc ; .byte 0x00, 0x00 ; trap: user0 +; br %r14 function %f3(i64) -> i64 { block0(v0: i64): @@ -90,15 +90,15 @@ block0(v0: i64): ; VCode: ; block0: ; algfi %r2, 127 -; jnle #trap=user0 +; jle 6 ; trap ; br %r14 ; ; Disassembled: ; block0: ; offset 0x0 ; algfi %r2, 0x7f -; jnle 0xc -; br %r14 +; jle 0xc ; .byte 0x00, 0x00 ; trap: user0 +; br %r14 function %f4(i64, i64) -> i64 { block0(v0: i64, v1: i64): @@ -109,15 +109,15 @@ block0(v0: i64, v1: i64): ; VCode: ; block0: ; algr %r2, %r3 -; jnle #trap=user0 +; jle 6 ; trap ; br %r14 ; ; Disassembled: ; block0: ; offset 0x0 ; algr %r2, %r3 -; jnle 0xa -; br %r14 +; jle 0xa ; .byte 0x00, 0x00 ; trap: user0 +; br %r14 function %f5(i64, i32) -> i64 { block0(v0: i64, v1: i32): @@ -129,13 +129,13 @@ block0(v0: i64, v1: i32): ; VCode: ; block0: ; algfr %r2, %r3 -; jnle #trap=user0 +; jle 6 ; trap ; br %r14 ; ; Disassembled: ; block0: ; offset 0x0 ; algfr %r2, %r3 -; jnle 0xa -; br %r14 +; jle 0xa ; .byte 0x00, 0x00 ; trap: user0 +; br %r14 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 69ba97c6afa9..3b19386e27c7 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -58,7 +58,7 @@ ;; lgr %r5, %r2 ;; llilf %r2, 4294901764 ;; algfr %r2, %r5 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r5, %r7 ;; lg %r7, 8(%r5) ;; clgr %r2, %r7 @@ -82,7 +82,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901764 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r2, 8(%r4) ;; clgr %r5, %r2 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index e730ce1ad249..08084f5b1c5b 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -58,7 +58,7 @@ ;; lgr %r5, %r2 ;; llilf %r2, 4294901761 ;; algfr %r2, %r5 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r5, %r7 ;; lg %r7, 8(%r5) ;; clgr %r2, %r7 @@ -82,7 +82,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901761 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r2, 8(%r4) ;; clgr %r5, %r2 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index df1fb64cf501..1c1a1189a578 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; llgfr %r4, %r2 ;; llilf %r9, 4294901764 ;; algfr %r9, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r5 ;; lg %r5, 8(%r2) ;; ag %r4, 0(%r2) @@ -78,7 +78,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901764 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r4 ;; lg %r4, 8(%r2) ;; ag %r3, 0(%r2) diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 999be5bb23fa..9741ef2dffc5 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; llgfr %r4, %r2 ;; llilf %r9, 4294901761 ;; algfr %r9, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r5 ;; lg %r5, 8(%r2) ;; ag %r4, 0(%r2) @@ -78,7 +78,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901761 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r4 ;; lg %r4, 8(%r2) ;; ag %r3, 0(%r2) diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 721eb7f64844..c97dd6b611da 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -58,7 +58,7 @@ ;; lgr %r5, %r2 ;; llilf %r2, 4294901764 ;; algfr %r2, %r5 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r5, %r7 ;; lg %r7, 8(%r5) ;; clgr %r2, %r7 @@ -82,7 +82,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901764 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r2, 8(%r4) ;; clgr %r5, %r2 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index c82d04d25730..65f03555c2a1 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -58,7 +58,7 @@ ;; lgr %r5, %r2 ;; llilf %r2, 4294901761 ;; algfr %r2, %r5 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r5, %r7 ;; lg %r7, 8(%r5) ;; clgr %r2, %r7 @@ -82,7 +82,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901761 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r2, 8(%r4) ;; clgr %r5, %r2 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 96bf7c440f57..9ecdcfab21ef 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; llgfr %r4, %r2 ;; llilf %r9, 4294901764 ;; algfr %r9, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r5 ;; lg %r5, 8(%r2) ;; ag %r4, 0(%r2) @@ -78,7 +78,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901764 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r4 ;; lg %r4, 8(%r2) ;; ag %r3, 0(%r2) diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index e3af161269ae..359f7f483344 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i32_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; llgfr %r4, %r2 ;; llilf %r9, 4294901761 ;; algfr %r9, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r5 ;; lg %r5, 8(%r2) ;; ag %r4, 0(%r2) @@ -78,7 +78,7 @@ ;; llgfr %r3, %r2 ;; llilf %r5, 4294901761 ;; algfr %r5, %r2 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lgr %r2, %r4 ;; lg %r4, 8(%r2) ;; ag %r3, 0(%r2) diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat index 338738cf2606..1a8a615d1d9b 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -48,7 +48,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r14, 8(%r4) ;; clgr %r5, %r14 ;; jgh label3 ; jg label1 @@ -70,7 +70,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r4, 8(%r3) ;; clgr %r5, %r4 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat index 25cc6dfa02f9..2c591ee9b466 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -48,7 +48,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r14, 8(%r4) ;; clgr %r5, %r14 ;; jgh label3 ; jg label1 @@ -70,7 +70,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r4, 8(%r3) ;; clgr %r5, %r4 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 3152d1c1d9da..86cec29b9d37 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; block0: ;; lgr %r7, %r2 ;; algfi %r7, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r4) ;; ag %r2, 0(%r4) ;; llilh %r4, 65535 @@ -75,7 +75,7 @@ ;; block0: ;; lgr %r4, %r2 ;; algfi %r4, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r3) ;; ag %r2, 0(%r3) ;; llilh %r3, 65535 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat index 530d0c2ed929..be29d35262d3 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; block0: ;; lgr %r7, %r2 ;; algfi %r7, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r4) ;; ag %r2, 0(%r4) ;; llilh %r4, 65535 @@ -75,7 +75,7 @@ ;; block0: ;; lgr %r4, %r2 ;; algfi %r4, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r3) ;; ag %r2, 0(%r3) ;; llilh %r3, 65535 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat index 9b8bb1a3cd64..99ca65c00d65 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i32_access_0xffff0000_offset.wat @@ -48,7 +48,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r14, 8(%r4) ;; clgr %r5, %r14 ;; jgh label3 ; jg label1 @@ -70,7 +70,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r4, 8(%r3) ;; clgr %r5, %r4 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat index c4057f372cdf..1eaa3219bed0 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_no_spectre_i8_access_0xffff0000_offset.wat @@ -48,7 +48,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r14, 8(%r4) ;; clgr %r5, %r14 ;; jgh label3 ; jg label1 @@ -70,7 +70,7 @@ ;; block0: ;; lgr %r5, %r2 ;; algfi %r5, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r4, 8(%r3) ;; clgr %r5, %r4 ;; jgh label3 ; jg label1 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat index 2025ce96acc0..4fc2bcf5ac1c 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i32_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; block0: ;; lgr %r7, %r2 ;; algfi %r7, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r4) ;; ag %r2, 0(%r4) ;; llilh %r4, 65535 @@ -75,7 +75,7 @@ ;; block0: ;; lgr %r4, %r2 ;; algfi %r4, 4294901764 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r3) ;; ag %r2, 0(%r3) ;; llilh %r3, 65535 diff --git a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat index e5e40ed7d687..ab65bb5d544f 100644 --- a/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat +++ b/cranelift/filetests/filetests/isa/s390x/wasm/load_store_dynamic_kind_i64_index_0xffffffff_guard_yes_spectre_i8_access_0xffff0000_offset.wat @@ -55,7 +55,7 @@ ;; block0: ;; lgr %r7, %r2 ;; algfi %r7, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r4) ;; ag %r2, 0(%r4) ;; llilh %r4, 65535 @@ -75,7 +75,7 @@ ;; block0: ;; lgr %r4, %r2 ;; algfi %r4, 4294901761 -;; jnle #trap=heap_oob +;; jle 6 ; trap ;; lg %r5, 8(%r3) ;; ag %r2, 0(%r3) ;; llilh %r3, 65535