s390x: Improved TrapIf implementation (#6079)

Following up on the discussion in
https://github.com/bytecodealliance/wasmtime/pull/6011
this adds an improved implementation of TrapIf for s390x
using a single conditional branch instruction.

If the trap conditions is true, we branch into the middle of
the branch instruction - those middle two bytes are zero,
which matches the encoding of the trap instruction.

In addition, show the trap code for Trap and TrapIf
instructions in assembler output.
This commit is contained in:
Ulrich Weigand
2023-03-23 15:50:43 +01:00
committed by GitHub
parent a6925c21c5
commit 6f66abd5c7
64 changed files with 357 additions and 451 deletions

View File

@@ -682,6 +682,7 @@ fn enc_ril_b(opcode: u16, r1: Reg, ri2: u32) -> [u8; 6] {
let opcode1 = ((opcode >> 4) & 0xff) as u8; let opcode1 = ((opcode >> 4) & 0xff) as u8;
let opcode2 = (opcode & 0xf) as u8; let opcode2 = (opcode & 0xf) as u8;
let r1 = machreg_to_gpr(r1) & 0x0f; let r1 = machreg_to_gpr(r1) & 0x0f;
let ri2 = ri2 >> 1;
enc[0] = opcode1; enc[0] = opcode1;
enc[1] = r1 << 4 | opcode2; enc[1] = r1 << 4 | opcode2;
@@ -700,6 +701,7 @@ fn enc_ril_c(opcode: u16, m1: u8, ri2: u32) -> [u8; 6] {
let opcode1 = ((opcode >> 4) & 0xff) as u8; let opcode1 = ((opcode >> 4) & 0xff) as u8;
let opcode2 = (opcode & 0xf) as u8; let opcode2 = (opcode & 0xf) as u8;
let m1 = m1 & 0x0f; let m1 = m1 & 0x0f;
let ri2 = ri2 >> 1;
enc[0] = opcode1; enc[0] = opcode1;
enc[1] = m1 << 4 | opcode2; enc[1] = m1 << 4 | opcode2;
@@ -3590,14 +3592,19 @@ impl Inst {
put_with_trap(sink, &enc_e(0x0000), trap_code); put_with_trap(sink, &enc_e(0x0000), trap_code);
} }
&Inst::TrapIf { cond, trap_code } => { &Inst::TrapIf { cond, trap_code } => {
// Branch over trap if condition is false.
let opcode = 0xa74; // BCR
put(sink, &enc_ri_c(opcode, cond.invert().bits(), 4 + 2));
// Now emit the actual trap.
if let Some(s) = state.take_stack_map() { if let Some(s) = state.take_stack_map() {
sink.add_stack_map(StackMapExtent::UpcomingBytes(2), s); sink.add_stack_map(StackMapExtent::UpcomingBytes(6), s);
} }
put_with_trap(sink, &enc_e(0x0000), trap_code); // We implement a TrapIf as a conditional branch into the middle
// of the branch (BRCL) instruction itself - those middle two bytes
// are zero, which matches the trap instruction itself.
let opcode = 0xc04; // BCRL
let enc = &enc_ril_c(opcode, cond.bits(), 2);
debug_assert!(enc.len() == 6 && enc[2] == 0 && enc[3] == 0);
// The trap must be placed on the last byte of the embedded trap
// instruction, so we need to emit the encoding in two parts.
put_with_trap(sink, &enc[0..4], trap_code);
put(sink, &enc[4..6]);
} }
&Inst::JTSequence { ridx, ref targets } => { &Inst::JTSequence { ridx, ref targets } => {
let ridx = allocs.next(ridx); let ridx = allocs.next(ridx);

View File

@@ -7027,22 +7027,22 @@ fn test_s390x_binemit() {
"br %r14", "br %r14",
)); ));
insns.push((Inst::Debugtrap, "0001", "debugtrap")); insns.push((Inst::Debugtrap, "0001", ".word 0x0001 # debugtrap"));
insns.push(( insns.push((
Inst::Trap { Inst::Trap {
trap_code: TrapCode::StackOverflow, trap_code: TrapCode::StackOverflow,
}, },
"0000", "0000",
"trap", ".word 0x0000 # trap=stk_ovf",
)); ));
insns.push(( insns.push((
Inst::TrapIf { Inst::TrapIf {
cond: Cond::from_mask(1), cond: Cond::from_mask(1),
trap_code: TrapCode::StackOverflow, trap_code: TrapCode::StackOverflow,
}, },
"A7E400030000", "C01400000001",
"jno 6 ; trap", "jgo .+2 # trap=stk_ovf",
)); ));
insns.push(( insns.push((

View File

@@ -3185,11 +3185,13 @@ impl Inst {
let cond = cond.pretty_print_default(); let cond = cond.pretty_print_default();
format!("jg{} {}", cond, target) format!("jg{} {}", cond, target)
} }
&Inst::Debugtrap => "debugtrap".to_string(), &Inst::Debugtrap => ".word 0x0001 # debugtrap".to_string(),
&Inst::Trap { .. } => "trap".to_string(), &Inst::Trap { trap_code } => {
&Inst::TrapIf { cond, .. } => { format!(".word 0x0000 # trap={}", trap_code)
let cond = cond.invert().pretty_print_default(); }
format!("j{} 6 ; trap", cond) &Inst::TrapIf { cond, trap_code } => {
let cond = cond.pretty_print_default();
format!("jg{} .+2 # trap={}", cond, trap_code)
} }
&Inst::JTSequence { ridx, ref targets } => { &Inst::JTSequence { ridx, ref targets } => {
let ridx = pretty_print_reg(ridx, allocs); let ridx = pretty_print_reg(ridx, allocs);

View File

@@ -382,7 +382,7 @@ block0:
; block0: ; block0:
; lghi %r2, 0 ; lghi %r2, 0
; brasl %r14, %g ; brasl %r14, %g
; trap ; .word 0x0000 # trap=user0
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0

View File

@@ -10,13 +10,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 256 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 256 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclfeb %v20, %f0, 0, 5 ; wclfeb %v20, %f0, 0, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -24,20 +24,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; ic %r8, 0 ; ic %r8, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; vclgd %v20, %v0, 2, 8, 5 ; vclgd %v20, %v0, 2, 8, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -51,13 +48,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 128 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 128 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -129 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -129 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcfeb %v20, %f0, 0, 5 ; wcfeb %v20, %f0, 0, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -65,21 +62,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; ic %r0, 0 ; ic %r0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; .byte 0xc3, 0x01 ; .byte 0xc3, 0x01
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; vcgd %v20, %v0, 2, 8, 5 ; vcgd %v20, %v0, 2, 8, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -93,13 +87,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 65536 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 65536 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclfeb %v20, %f0, 0, 5 ; wclfeb %v20, %f0, 0, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -107,20 +101,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; be 0 ; be 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; vclgd %v20, %v0, 2, 8, 5 ; vclgd %v20, %v0, 2, 8, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -134,13 +125,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 32768 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 32768 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -32769 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -32769 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcfeb %v20, %f0, 0, 5 ; wcfeb %v20, %f0, 0, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -148,21 +139,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; bc 0, 0 ; bc 0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; bpp 0, -0x31dc, 0x100 ; bpp 0, -0x31dc, 0x100
; lpr %r0, %r0 ; lpr %r0, %r0
; .byte 0x08, 0x03 ; .byte 0x08, 0x03
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; vcgd %v20, %v0, 2, 8, 5 ; vcgd %v20, %v0, 2, 8, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -176,13 +164,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 4294967300 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 4294967300 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclfeb %v20, %f0, 0, 5 ; wclfeb %v20, %f0, 0, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -190,20 +178,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; cvb %r8, 0 ; cvb %r8, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; vclgd %v20, %v0, 2, 8, 5 ; vclgd %v20, %v0, 2, 8, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -217,13 +202,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 2147483600 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 2147483600 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -2147484000 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -2147484000 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcfeb %v20, %f0, 0, 5 ; wcfeb %v20, %f0, 0, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -231,21 +216,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; cvb %r0, 0 ; cvb %r0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; .byte 0xcf, 0x00 ; .byte 0xcf, 0x00
; .byte 0x00, 0x01 ; .byte 0x00, 0x01
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; vcgd %v20, %v0, 2, 8, 5 ; vcgd %v20, %v0, 2, 8, 5
; vlgvf %r2, %v20, 0 ; vlgvf %r2, %v20, 0
; br %r14 ; br %r14
@@ -259,13 +241,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 18446744000000000000 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 18446744000000000000 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -274,20 +256,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; sl %r8, 0 ; sl %r8, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -302,13 +281,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 9223372000000000000 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 9223372000000000000 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -9223373000000000000 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -9223373000000000000 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -317,21 +296,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; sl %r0, 0 ; sl %r0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; edmk 1(1), 0x700(%r14) ; edmk 1(1), 0x700(%r14)
; lpr %r0, %r0 ; lpr %r0, %r0
; .byte 0x08, 0x03 ; .byte 0x08, 0x03
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -346,13 +322,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 256 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 256 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -360,24 +336,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r7, 0 ; sth %r7, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -391,13 +364,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 128 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 128 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -129 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -129 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -405,23 +378,20 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r6, 0 ; sth %r6, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; larl %r6, 0x40000028 ; larl %r6, 0x40000028
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -435,13 +405,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 65536 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 65536 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -449,24 +419,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r15, 0 ; sth %r15, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -480,13 +447,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 32768 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 32768 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -32769 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -32769 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -494,23 +461,20 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r14, 0 ; sth %r14, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; larl %r14, 0x400028 ; larl %r14, 0x400028
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -524,13 +488,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 4294967296 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 4294967296 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -538,24 +502,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; la %r15, 0 ; la %r15, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -569,13 +530,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 2147483648 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 2147483648 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -2147483649 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -2147483649 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -583,16 +544,14 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; la %r14, 0 ; la %r14, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; .byte 0xc1, 0xe0 ; .byte 0xc1, 0xe0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
@@ -600,8 +559,7 @@ block0(v0: f64):
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -615,13 +573,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 18446744073709552000 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 18446744073709552000 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -629,24 +587,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; ic %r15, 0 ; ic %r15, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -660,13 +615,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 9223372036854776000 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 9223372036854776000 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -9223372036854778000 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -9223372036854778000 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -674,16 +629,14 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; ic %r14, 0 ; ic %r14, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; .byte 0xc3, 0xe0 ; .byte 0xc3, 0xe0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
@@ -691,8 +644,7 @@ block0(v0: f64):
; .byte 0x00, 0x01 ; .byte 0x00, 0x01
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14

View File

@@ -683,13 +683,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 256 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 256 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -698,20 +698,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; ic %r8, 0 ; ic %r8, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -726,13 +723,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 128 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 128 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -129 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -129 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -741,21 +738,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; ic %r0, 0 ; ic %r0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; .byte 0xc3, 0x01 ; .byte 0xc3, 0x01
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -770,13 +764,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 65536 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 65536 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -785,20 +779,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; be 0 ; be 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -813,13 +804,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 32768 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 32768 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -32769 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -32769 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -828,21 +819,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; bc 0, 0 ; bc 0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; bpp 0, -0x31dc, 0x100 ; bpp 0, -0x31dc, 0x100
; lpr %r0, %r0 ; lpr %r0, %r0
; .byte 0x08, 0x03 ; .byte 0x08, 0x03
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -857,13 +845,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 4294967300 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 4294967300 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -872,20 +860,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; cvb %r8, 0 ; cvb %r8, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -900,13 +885,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 2147483600 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 2147483600 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -2147484000 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -2147484000 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -915,21 +900,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; cvb %r0, 0 ; cvb %r0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; .byte 0xcf, 0x00 ; .byte 0xcf, 0x00
; .byte 0x00, 0x01 ; .byte 0x00, 0x01
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -944,13 +926,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 18446744000000000000 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 18446744000000000000 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -1 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -959,20 +941,17 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; sl %r8, 0 ; sl %r8, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; icm %r8, 0, 0 ; icm %r8, 0, 0
; vlef %v16, 0(%r1), 0 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wclgdb %v22, %v20, 0, 5 ; wclgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -987,13 +966,13 @@ block0(v0: f32):
; VCode: ; VCode:
; block0: ; block0:
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 8 ; data.f32 9223372000000000000 ; le %f4, 0(%r1) ; bras %r1, 8 ; data.f32 9223372000000000000 ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 8 ; data.f32 -9223373000000000000 ; vlef %v16, 0(%r1), 0 ; bras %r1, 8 ; data.f32 -9223373000000000000 ; vlef %v16, 0(%r1), 0
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -1002,21 +981,18 @@ block0(v0: f32):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cebr %f0, %f0 ; cebr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x12 ; bras %r1, 0x12
; sl %r0, 0 ; sl %r0, 0
; le %f4, 0(%r1) ; le %f4, 0(%r1)
; cebr %f0, %f4 ; cebr %f0, %f4
; jnhe 0x20 ; jghe 0x1c ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x28 ; bras %r1, 0x28
; edmk 1(1), 0x700(%r14) ; edmk 1(1), 0x700(%r14)
; lpr %r0, %r0 ; lpr %r0, %r0
; .byte 0x08, 0x03 ; .byte 0x08, 0x03
; wfcsb %f0, %v16 ; wfcsb %f0, %v16
; jnle 0x3a ; jgle 0x36 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wldeb %v20, %f0 ; wldeb %v20, %f0
; wcgdb %v22, %v20, 0, 5 ; wcgdb %v22, %v20, 0, 5
; vlgvg %r2, %v22, 0 ; vlgvg %r2, %v22, 0
@@ -1031,13 +1007,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 256 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 256 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1045,24 +1021,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r7, 0 ; sth %r7, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1076,13 +1049,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 128 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 128 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -129 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -129 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1090,23 +1063,20 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r6, 0 ; sth %r6, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; larl %r6, 0x40000028 ; larl %r6, 0x40000028
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1120,13 +1090,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 65536 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 65536 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1134,24 +1104,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r15, 0 ; sth %r15, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1165,13 +1132,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 32768 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 32768 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -32769 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -32769 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1179,23 +1146,20 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; sth %r14, 0 ; sth %r14, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; larl %r14, 0x400028 ; larl %r14, 0x400028
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1209,13 +1173,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 4294967296 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 4294967296 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1223,24 +1187,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; la %r15, 0 ; la %r15, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1254,13 +1215,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 2147483648 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 2147483648 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -2147483649 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -2147483649 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1268,16 +1229,14 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; la %r14, 0 ; la %r14, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; .byte 0xc1, 0xe0 ; .byte 0xc1, 0xe0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
@@ -1285,8 +1244,7 @@ block0(v0: f64):
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1300,13 +1258,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 18446744073709552000 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 18446744073709552000 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -1 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1314,24 +1272,21 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; ic %r15, 0 ; ic %r15, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; icm %r15, 0, 0 ; icm %r15, 0, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wclgdb %v20, %f0, 0, 5 ; wclgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1345,13 +1300,13 @@ block0(v0: f64):
; VCode: ; VCode:
; block0: ; block0:
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 6 ; trap ; jgo .+2 # trap=bad_toint
; bras %r1, 12 ; data.f64 9223372036854776000 ; ld %f4, 0(%r1) ; bras %r1, 12 ; data.f64 9223372036854776000 ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 6 ; trap ; jghe .+2 # trap=int_ovf
; bras %r1, 12 ; data.f64 -9223372036854778000 ; vleg %v16, 0(%r1), 0 ; bras %r1, 12 ; data.f64 -9223372036854778000 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 6 ; trap ; jgle .+2 # trap=int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14
@@ -1359,16 +1314,14 @@ block0(v0: f64):
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; cdbr %f0, %f0 ; cdbr %f0, %f0
; jno 0xa ; jgo 6 ; trap: bad_toint
; .byte 0x00, 0x00 ; trap: bad_toint
; bras %r1, 0x16 ; bras %r1, 0x16
; ic %r14, 0 ; ic %r14, 0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
; ld %f4, 0(%r1) ; ld %f4, 0(%r1)
; cdbr %f0, %f4 ; cdbr %f0, %f4
; jnhe 0x24 ; jghe 0x20 ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; bras %r1, 0x30 ; bras %r1, 0x30
; .byte 0xc3, 0xe0 ; .byte 0xc3, 0xe0
; .byte 0x00, 0x00 ; .byte 0x00, 0x00
@@ -1376,8 +1329,7 @@ block0(v0: f64):
; .byte 0x00, 0x01 ; .byte 0x00, 0x01
; vleg %v16, 0(%r1), 0 ; vleg %v16, 0(%r1), 0
; wfcdb %f0, %v16 ; wfcdb %f0, %v16
; jnle 0x42 ; jgle 0x3e ; trap: int_ovf
; .byte 0x00, 0x00 ; trap: int_ovf
; wcgdb %v20, %f0, 0, 5 ; wcgdb %v20, %f0, 0, 5
; vlgvg %r2, %v20, 0 ; vlgvg %r2, %v20, 0
; br %r14 ; br %r14

View File

@@ -12,7 +12,7 @@ block0:
; VCode: ; VCode:
; block0: ; block0:
; trap ; .word 0x0000 # trap=user0
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
@@ -25,7 +25,7 @@ block0:
; VCode: ; VCode:
; block0: ; block0:
; trap ; .word 0x0000 # trap=user0
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
@@ -46,7 +46,7 @@ block0(v0: i64):
; block2: ; block2:
; br %r14 ; br %r14
; block1: ; block1:
; trap ; .word 0x0000 # trap=user0
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
@@ -72,7 +72,7 @@ block0(v0: i64):
; block1: ; block1:
; br %r14 ; br %r14
; block2: ; block2:
; trap ; .word 0x0000 # trap=user0
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
@@ -98,7 +98,7 @@ block0(v0: i64):
; block1: ; block1:
; br %r14 ; br %r14
; block2: ; block2:
; trap ; .word 0x0000 # trap=user0
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
@@ -117,7 +117,7 @@ block0:
; VCode: ; VCode:
; block0: ; block0:
; debugtrap ; .word 0x0001 # debugtrap
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:

View File

@@ -11,14 +11,13 @@ block0(v0: i32):
; VCode: ; VCode:
; block0: ; block0:
; alfi %r2, 127 ; alfi %r2, 127
; jle 6 ; trap ; jgnle .+2 # trap=user0
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; alfi %r2, 0x7f ; alfi %r2, 0x7f
; jle 0xc ; jgnle 8 ; trap: user0
; .byte 0x00, 0x00 ; trap: user0
; br %r14 ; br %r14
function %f1(i32) -> i32 { function %f1(i32) -> i32 {
@@ -31,14 +30,13 @@ block0(v0: i32):
; VCode: ; VCode:
; block0: ; block0:
; alfi %r2, 127 ; alfi %r2, 127
; jle 6 ; trap ; jgnle .+2 # trap=user0
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; alfi %r2, 0x7f ; alfi %r2, 0x7f
; jle 0xc ; jgnle 8 ; trap: user0
; .byte 0x00, 0x00 ; trap: user0
; br %r14 ; br %r14
function %f2(i32, i32) -> i32 { function %f2(i32, i32) -> i32 {
@@ -50,14 +48,13 @@ block0(v0: i32, v1: i32):
; VCode: ; VCode:
; block0: ; block0:
; alr %r2, %r3 ; alr %r2, %r3
; jle 6 ; trap ; jgnle .+2 # trap=user0
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; alr %r2, %r3 ; alr %r2, %r3
; jle 8 ; jgnle 4 ; trap: user0
; .byte 0x00, 0x00 ; trap: user0
; br %r14 ; br %r14
function %f3(i64) -> i64 { function %f3(i64) -> i64 {
@@ -70,14 +67,13 @@ block0(v0: i64):
; VCode: ; VCode:
; block0: ; block0:
; algfi %r2, 127 ; algfi %r2, 127
; jle 6 ; trap ; jgnle .+2 # trap=user0
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; algfi %r2, 0x7f ; algfi %r2, 0x7f
; jle 0xc ; jgnle 8 ; trap: user0
; .byte 0x00, 0x00 ; trap: user0
; br %r14 ; br %r14
function %f3(i64) -> i64 { function %f3(i64) -> i64 {
@@ -90,14 +86,13 @@ block0(v0: i64):
; VCode: ; VCode:
; block0: ; block0:
; algfi %r2, 127 ; algfi %r2, 127
; jle 6 ; trap ; jgnle .+2 # trap=user0
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; algfi %r2, 0x7f ; algfi %r2, 0x7f
; jle 0xc ; jgnle 8 ; trap: user0
; .byte 0x00, 0x00 ; trap: user0
; br %r14 ; br %r14
function %f4(i64, i64) -> i64 { function %f4(i64, i64) -> i64 {
@@ -109,14 +104,13 @@ block0(v0: i64, v1: i64):
; VCode: ; VCode:
; block0: ; block0:
; algr %r2, %r3 ; algr %r2, %r3
; jle 6 ; trap ; jgnle .+2 # trap=user0
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; algr %r2, %r3 ; algr %r2, %r3
; jle 0xa ; jgnle 6 ; trap: user0
; .byte 0x00, 0x00 ; trap: user0
; br %r14 ; br %r14
function %f5(i64, i32) -> i64 { function %f5(i64, i32) -> i64 {
@@ -129,13 +123,12 @@ block0(v0: i64, v1: i32):
; VCode: ; VCode:
; block0: ; block0:
; algfr %r2, %r3 ; algfr %r2, %r3
; jle 6 ; trap ; jgnle .+2 # trap=user0
; br %r14 ; br %r14
; ;
; Disassembled: ; Disassembled:
; block0: ; offset 0x0 ; block0: ; offset 0x0
; algfr %r2, %r3 ; algfr %r2, %r3
; jle 0xa ; jgnle 6 ; trap: user0
; .byte 0x00, 0x00 ; trap: user0
; br %r14 ; br %r14

View File

@@ -55,7 +55,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -73,4 +73,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -57,7 +57,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -78,4 +78,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -58,7 +58,7 @@
;; lgr %r5, %r2 ;; lgr %r5, %r2
;; llilf %r2, 4294901764 ;; llilf %r2, 4294901764
;; algfr %r2, %r5 ;; algfr %r2, %r5
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lgr %r5, %r7 ;; lgr %r5, %r7
;; lg %r7, 8(%r5) ;; lg %r7, 8(%r5)
;; clgr %r2, %r7 ;; clgr %r2, %r7
@@ -72,7 +72,7 @@
;; lmg %r7, %r15, 56(%r15) ;; lmg %r7, %r15, 56(%r15)
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -82,7 +82,7 @@
;; llgfr %r3, %r2 ;; llgfr %r3, %r2
;; llilf %r5, 4294901764 ;; llilf %r5, 4294901764
;; algfr %r5, %r2 ;; algfr %r5, %r2
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r2, 8(%r4) ;; lg %r2, 8(%r4)
;; clgr %r5, %r2 ;; clgr %r5, %r2
;; jgh label3 ; jg label1 ;; jgh label3 ; jg label1
@@ -94,4 +94,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -73,4 +73,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -57,7 +57,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -78,4 +78,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -58,7 +58,7 @@
;; lgr %r5, %r2 ;; lgr %r5, %r2
;; llilf %r2, 4294901761 ;; llilf %r2, 4294901761
;; algfr %r2, %r5 ;; algfr %r2, %r5
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lgr %r5, %r7 ;; lgr %r5, %r7
;; lg %r7, 8(%r5) ;; lg %r7, 8(%r5)
;; clgr %r2, %r7 ;; clgr %r2, %r7
@@ -72,7 +72,7 @@
;; lmg %r7, %r15, 56(%r15) ;; lmg %r7, %r15, 56(%r15)
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -82,7 +82,7 @@
;; llgfr %r3, %r2 ;; llgfr %r3, %r2
;; llilf %r5, 4294901761 ;; llilf %r5, 4294901761
;; algfr %r5, %r2 ;; algfr %r5, %r2
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r2, 8(%r4) ;; lg %r2, 8(%r4)
;; clgr %r5, %r2 ;; clgr %r5, %r2
;; jgh label3 ; jg label1 ;; jgh label3 ; jg label1
@@ -94,4 +94,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -55,7 +55,7 @@
;; llgfr %r4, %r2 ;; llgfr %r4, %r2
;; llilf %r9, 4294901764 ;; llilf %r9, 4294901764
;; algfr %r9, %r2 ;; algfr %r9, %r2
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lgr %r2, %r5 ;; lgr %r2, %r5
;; lg %r5, 8(%r2) ;; lg %r5, 8(%r2)
;; ag %r4, 0(%r2) ;; ag %r4, 0(%r2)
@@ -78,7 +78,7 @@
;; llgfr %r3, %r2 ;; llgfr %r3, %r2
;; llilf %r5, 4294901764 ;; llilf %r5, 4294901764
;; algfr %r5, %r2 ;; algfr %r5, %r2
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lgr %r2, %r4 ;; lgr %r2, %r4
;; lg %r4, 8(%r2) ;; lg %r4, 8(%r2)
;; ag %r3, 0(%r2) ;; ag %r3, 0(%r2)

View File

@@ -55,7 +55,7 @@
;; llgfr %r4, %r2 ;; llgfr %r4, %r2
;; llilf %r9, 4294901761 ;; llilf %r9, 4294901761
;; algfr %r9, %r2 ;; algfr %r9, %r2
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lgr %r2, %r5 ;; lgr %r2, %r5
;; lg %r5, 8(%r2) ;; lg %r5, 8(%r2)
;; ag %r4, 0(%r2) ;; ag %r4, 0(%r2)
@@ -78,7 +78,7 @@
;; llgfr %r3, %r2 ;; llgfr %r3, %r2
;; llilf %r5, 4294901761 ;; llilf %r5, 4294901761
;; algfr %r5, %r2 ;; algfr %r5, %r2
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lgr %r2, %r4 ;; lgr %r2, %r4
;; lg %r4, 8(%r2) ;; lg %r4, 8(%r2)
;; ag %r3, 0(%r2) ;; ag %r3, 0(%r2)

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -73,4 +73,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -75,4 +75,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -75,4 +75,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -73,4 +73,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -75,4 +75,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -75,4 +75,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -54,7 +54,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -71,4 +71,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -75,4 +75,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -48,7 +48,7 @@
;; block0: ;; block0:
;; lgr %r5, %r2 ;; lgr %r5, %r2
;; algfi %r5, 4294901764 ;; algfi %r5, 4294901764
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r14, 8(%r4) ;; lg %r14, 8(%r4)
;; clgr %r5, %r14 ;; clgr %r5, %r14
;; jgh label3 ; jg label1 ;; jgh label3 ; jg label1
@@ -62,7 +62,7 @@
;; lmg %r14, %r15, 112(%r15) ;; lmg %r14, %r15, 112(%r15)
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -70,7 +70,7 @@
;; block0: ;; block0:
;; lgr %r5, %r2 ;; lgr %r5, %r2
;; algfi %r5, 4294901764 ;; algfi %r5, 4294901764
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r4, 8(%r3) ;; lg %r4, 8(%r3)
;; clgr %r5, %r4 ;; clgr %r5, %r4
;; jgh label3 ; jg label1 ;; jgh label3 ; jg label1
@@ -83,4 +83,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -53,7 +53,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -56,7 +56,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -75,4 +75,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -48,7 +48,7 @@
;; block0: ;; block0:
;; lgr %r5, %r2 ;; lgr %r5, %r2
;; algfi %r5, 4294901761 ;; algfi %r5, 4294901761
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r14, 8(%r4) ;; lg %r14, 8(%r4)
;; clgr %r5, %r14 ;; clgr %r5, %r14
;; jgh label3 ; jg label1 ;; jgh label3 ; jg label1
@@ -62,7 +62,7 @@
;; lmg %r14, %r15, 112(%r15) ;; lmg %r14, %r15, 112(%r15)
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -70,7 +70,7 @@
;; block0: ;; block0:
;; lgr %r5, %r2 ;; lgr %r5, %r2
;; algfi %r5, 4294901761 ;; algfi %r5, 4294901761
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r4, 8(%r3) ;; lg %r4, 8(%r3)
;; clgr %r5, %r4 ;; clgr %r5, %r4
;; jgh label3 ; jg label1 ;; jgh label3 ; jg label1
@@ -83,4 +83,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -55,7 +55,7 @@
;; block0: ;; block0:
;; lgr %r7, %r2 ;; lgr %r7, %r2
;; algfi %r7, 4294901764 ;; algfi %r7, 4294901764
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r5, 8(%r4) ;; lg %r5, 8(%r4)
;; ag %r2, 0(%r4) ;; ag %r2, 0(%r4)
;; llilh %r4, 65535 ;; llilh %r4, 65535
@@ -75,7 +75,7 @@
;; block0: ;; block0:
;; lgr %r4, %r2 ;; lgr %r4, %r2
;; algfi %r4, 4294901764 ;; algfi %r4, 4294901764
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r5, 8(%r3) ;; lg %r5, 8(%r3)
;; ag %r2, 0(%r3) ;; ag %r2, 0(%r3)
;; llilh %r3, 65535 ;; llilh %r3, 65535

View File

@@ -55,7 +55,7 @@
;; block0: ;; block0:
;; lgr %r7, %r2 ;; lgr %r7, %r2
;; algfi %r7, 4294901761 ;; algfi %r7, 4294901761
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r5, 8(%r4) ;; lg %r5, 8(%r4)
;; ag %r2, 0(%r4) ;; ag %r2, 0(%r4)
;; llilh %r4, 65535 ;; llilh %r4, 65535
@@ -75,7 +75,7 @@
;; block0: ;; block0:
;; lgr %r4, %r2 ;; lgr %r4, %r2
;; algfi %r4, 4294901761 ;; algfi %r4, 4294901761
;; jle 6 ; trap ;; jgnle .+2 # trap=heap_oob
;; lg %r5, 8(%r3) ;; lg %r5, 8(%r3)
;; ag %r2, 0(%r3) ;; ag %r2, 0(%r3)
;; llilh %r3, 65535 ;; llilh %r3, 65535

View File

@@ -53,7 +53,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -54,7 +54,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -71,4 +71,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -54,7 +54,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -71,4 +71,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -53,7 +53,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -54,7 +54,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -71,4 +71,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -54,7 +54,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -71,4 +71,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -52,7 +52,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -53,7 +53,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -72,4 +72,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -52,7 +52,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -53,7 +53,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -72,4 +72,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -50,7 +50,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -65,4 +65,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -52,7 +52,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -50,7 +50,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -65,4 +65,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -52,7 +52,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -50,7 +50,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -65,4 +65,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -52,7 +52,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -50,7 +50,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -65,4 +65,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -52,7 +52,7 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
@@ -69,4 +69,4 @@
;; block2: ;; block2:
;; br %r14 ;; br %r14
;; block3: ;; block3:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob

View File

@@ -41,10 +41,10 @@
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob
;; ;;
;; function u0:1: ;; function u0:1:
;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 } ;; unwind DefineNewFrame { offset_upward_to_caller_sp: 160, offset_downward_to_clobbers: 0 }
;; unwind StackAlloc { size: 0 } ;; unwind StackAlloc { size: 0 }
;; block0: ;; block0:
;; trap ;; .word 0x0000 # trap=heap_oob