riscv64: Delete SelectIf instruction (#5888)
* riscv64: Delete `SelectIf` instruction * riscv64: Fix typo in comment Co-authored-by: Trevor Elliott <awesomelyawesome@gmail.com> * riscv64: Improve `bmask` codegen * riscv64: Use `lower_bmask` in `select_spectre_guard` * riscv64: Use `lower_bmask` to extend values in `select_spectre_guard` Co-authored-by: Trevor Elliott <awesomelyawesome@gmail.com> --------- Co-authored-by: Trevor Elliott <awesomelyawesome@gmail.com>
This commit is contained in:
@@ -11,19 +11,16 @@ block0(v0: i128):
|
||||
; VCode:
|
||||
; block0:
|
||||
; or a0,a0,a1
|
||||
; li a2,-1
|
||||
; select_reg a1,zero,a2##condition=(zero eq a0)
|
||||
; sltu a2,zero,a0
|
||||
; sub a1,zero,a2
|
||||
; mv a0,a1
|
||||
; ret
|
||||
;
|
||||
; Disassembled:
|
||||
; block0: ; offset 0x0
|
||||
; or a0, a0, a1
|
||||
; addi a2, zero, -1
|
||||
; beq zero, a0, 0xc
|
||||
; ori a1, a2, 0
|
||||
; j 8
|
||||
; ori a1, zero, 0
|
||||
; snez a2, a0
|
||||
; neg a1, a2
|
||||
; ori a0, a1, 0
|
||||
; ret
|
||||
|
||||
@@ -36,18 +33,15 @@ block0(v0: i128):
|
||||
; VCode:
|
||||
; block0:
|
||||
; or a0,a0,a1
|
||||
; li a2,-1
|
||||
; select_reg a0,zero,a2##condition=(zero eq a0)
|
||||
; sltu a2,zero,a0
|
||||
; sub a0,zero,a2
|
||||
; ret
|
||||
;
|
||||
; Disassembled:
|
||||
; block0: ; offset 0x0
|
||||
; or a0, a0, a1
|
||||
; addi a2, zero, -1
|
||||
; beq zero, a0, 0xc
|
||||
; ori a0, a2, 0
|
||||
; j 8
|
||||
; ori a0, zero, 0
|
||||
; snez a2, a0
|
||||
; neg a0, a2
|
||||
; ret
|
||||
|
||||
function %bmask_i128_i32(i128) -> i32 {
|
||||
@@ -59,18 +53,15 @@ block0(v0: i128):
|
||||
; VCode:
|
||||
; block0:
|
||||
; or a0,a0,a1
|
||||
; li a2,-1
|
||||
; select_reg a0,zero,a2##condition=(zero eq a0)
|
||||
; sltu a2,zero,a0
|
||||
; sub a0,zero,a2
|
||||
; ret
|
||||
;
|
||||
; Disassembled:
|
||||
; block0: ; offset 0x0
|
||||
; or a0, a0, a1
|
||||
; addi a2, zero, -1
|
||||
; beq zero, a0, 0xc
|
||||
; ori a0, a2, 0
|
||||
; j 8
|
||||
; ori a0, zero, 0
|
||||
; snez a2, a0
|
||||
; neg a0, a2
|
||||
; ret
|
||||
|
||||
function %bmask_i128_i16(i128) -> i16 {
|
||||
@@ -82,18 +73,15 @@ block0(v0: i128):
|
||||
; VCode:
|
||||
; block0:
|
||||
; or a0,a0,a1
|
||||
; li a2,-1
|
||||
; select_reg a0,zero,a2##condition=(zero eq a0)
|
||||
; sltu a2,zero,a0
|
||||
; sub a0,zero,a2
|
||||
; ret
|
||||
;
|
||||
; Disassembled:
|
||||
; block0: ; offset 0x0
|
||||
; or a0, a0, a1
|
||||
; addi a2, zero, -1
|
||||
; beq zero, a0, 0xc
|
||||
; ori a0, a2, 0
|
||||
; j 8
|
||||
; ori a0, zero, 0
|
||||
; snez a2, a0
|
||||
; neg a0, a2
|
||||
; ret
|
||||
|
||||
function %bmask_i128_i8(i128) -> i8 {
|
||||
@@ -105,18 +93,15 @@ block0(v0: i128):
|
||||
; VCode:
|
||||
; block0:
|
||||
; or a0,a0,a1
|
||||
; li a2,-1
|
||||
; select_reg a0,zero,a2##condition=(zero eq a0)
|
||||
; sltu a2,zero,a0
|
||||
; sub a0,zero,a2
|
||||
; ret
|
||||
;
|
||||
; Disassembled:
|
||||
; block0: ; offset 0x0
|
||||
; or a0, a0, a1
|
||||
; addi a2, zero, -1
|
||||
; beq zero, a0, 0xc
|
||||
; ori a0, a2, 0
|
||||
; j 8
|
||||
; ori a0, zero, 0
|
||||
; snez a2, a0
|
||||
; neg a0, a2
|
||||
; ret
|
||||
|
||||
function %bmask_i64_i128(i64) -> i128 {
|
||||
@@ -127,18 +112,15 @@ block0(v0: i64):
|
||||
|
||||
; VCode:
|
||||
; block0:
|
||||
; li t2,-1
|
||||
; select_reg a1,zero,t2##condition=(zero eq a0)
|
||||
; sltu t2,zero,a0
|
||||
; sub a1,zero,t2
|
||||
; mv a0,a1
|
||||
; ret
|
||||
;
|
||||
; Disassembled:
|
||||
; block0: ; offset 0x0
|
||||
; addi t2, zero, -1
|
||||
; beq zero, a0, 0xc
|
||||
; ori a1, t2, 0
|
||||
; j 8
|
||||
; ori a1, zero, 0
|
||||
; snez t2, a0
|
||||
; neg a1, t2
|
||||
; ori a0, a1, 0
|
||||
; ret
|
||||
|
||||
@@ -152,8 +134,8 @@ block0(v0: i32):
|
||||
; block0:
|
||||
; slli t2,a0,32
|
||||
; srli a1,t2,32
|
||||
; li a3,-1
|
||||
; select_reg a1,zero,a3##condition=(zero eq a1)
|
||||
; sltu a3,zero,a1
|
||||
; sub a1,zero,a3
|
||||
; mv a0,a1
|
||||
; ret
|
||||
;
|
||||
@@ -161,11 +143,8 @@ block0(v0: i32):
|
||||
; block0: ; offset 0x0
|
||||
; slli t2, a0, 0x20
|
||||
; srli a1, t2, 0x20
|
||||
; addi a3, zero, -1
|
||||
; beq zero, a1, 0xc
|
||||
; ori a1, a3, 0
|
||||
; j 8
|
||||
; ori a1, zero, 0
|
||||
; snez a3, a1
|
||||
; neg a1, a3
|
||||
; ori a0, a1, 0
|
||||
; ret
|
||||
|
||||
@@ -179,8 +158,8 @@ block0(v0: i16):
|
||||
; block0:
|
||||
; slli t2,a0,48
|
||||
; srli a1,t2,48
|
||||
; li a3,-1
|
||||
; select_reg a1,zero,a3##condition=(zero eq a1)
|
||||
; sltu a3,zero,a1
|
||||
; sub a1,zero,a3
|
||||
; mv a0,a1
|
||||
; ret
|
||||
;
|
||||
@@ -188,11 +167,8 @@ block0(v0: i16):
|
||||
; block0: ; offset 0x0
|
||||
; slli t2, a0, 0x30
|
||||
; srli a1, t2, 0x30
|
||||
; addi a3, zero, -1
|
||||
; beq zero, a1, 0xc
|
||||
; ori a1, a3, 0
|
||||
; j 8
|
||||
; ori a1, zero, 0
|
||||
; snez a3, a1
|
||||
; neg a1, a3
|
||||
; ori a0, a1, 0
|
||||
; ret
|
||||
|
||||
@@ -205,18 +181,16 @@ block0(v0: i8):
|
||||
; VCode:
|
||||
; block0:
|
||||
; andi t2,a0,255
|
||||
; li a1,-1
|
||||
; select_reg a1,zero,a1##condition=(zero eq t2)
|
||||
; sltu a1,zero,t2
|
||||
; sub a1,zero,a1
|
||||
; mv a0,a1
|
||||
; ret
|
||||
;
|
||||
; Disassembled:
|
||||
; block0: ; offset 0x0
|
||||
; andi t2, a0, 0xff
|
||||
; addi a1, zero, -1
|
||||
; beq zero, t2, 8
|
||||
; j 8
|
||||
; ori a1, zero, 0
|
||||
; snez a1, t2
|
||||
; neg a1, a1
|
||||
; ori a0, a1, 0
|
||||
; ret
|
||||
|
||||
|
||||
1089
cranelift/filetests/filetests/isa/riscv64/select_spectre_guard.clif
Normal file
1089
cranelift/filetests/filetests/isa/riscv64/select_spectre_guard.clif
Normal file
File diff suppressed because it is too large
Load Diff
@@ -41,32 +41,44 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t3,a0,32
|
||||
;; srli t0,t3,32
|
||||
;; ld t4,8(a2)
|
||||
;; addi t4,t4,-4
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; li t2,0
|
||||
;; ugt t4,t0,t4##ty=i64
|
||||
;; selectif_spectre_guard t0,t2,t1##test=t4
|
||||
;; sw a1,0(t0)
|
||||
;; slli a3,a0,32
|
||||
;; srli a3,a3,32
|
||||
;; ld a4,8(a2)
|
||||
;; addi a4,a4,-4
|
||||
;; ugt a4,a3,a4##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t4,a4,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a3,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; sw a1,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t3,a0,32
|
||||
;; srli t0,t3,32
|
||||
;; ld t4,8(a1)
|
||||
;; addi t4,t4,-4
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; li t2,0
|
||||
;; ugt t4,t0,t4##ty=i64
|
||||
;; selectif_spectre_guard t0,t2,t1##test=t4
|
||||
;; lw a0,0(t0)
|
||||
;; slli a2,a0,32
|
||||
;; srli a3,a2,32
|
||||
;; ld a2,8(a1)
|
||||
;; addi a2,a2,-4
|
||||
;; ugt a4,a3,a2##ty=i64
|
||||
;; ld a2,0(a1)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t4,a4,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a3,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; lw a0,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,40 +41,52 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a3,t2,32
|
||||
;; ld a0,8(a2)
|
||||
;; lui a4,1048575
|
||||
;; addi a4,a4,4092
|
||||
;; add a0,a0,a4
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; ugt a0,a3,a0##ty=i64
|
||||
;; selectif_spectre_guard a3,a4,a2##test=a0
|
||||
;; sw a1,0(a3)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; ld a6,8(a2)
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4092
|
||||
;; add a6,a6,t3
|
||||
;; ugt t3,a7,a6##ty=i64
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a7
|
||||
;; lui a7,1
|
||||
;; add a6,a6,a7
|
||||
;; li a7,0
|
||||
;; andi a0,t3,255
|
||||
;; sltu a2,zero,a0
|
||||
;; sub a4,zero,a2
|
||||
;; and a7,a7,a4
|
||||
;; not t3,a4
|
||||
;; and t0,a6,t3
|
||||
;; or t2,a7,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a2,t2,32
|
||||
;; ld a0,8(a1)
|
||||
;; lui a3,1048575
|
||||
;; addi a3,a3,4092
|
||||
;; add a0,a0,a3
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a2
|
||||
;; lui a3,1
|
||||
;; add a1,a1,a3
|
||||
;; li a3,0
|
||||
;; ugt a0,a2,a0##ty=i64
|
||||
;; selectif_spectre_guard a2,a3,a1##test=a0
|
||||
;; lw a0,0(a2)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; ld a6,8(a1)
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4092
|
||||
;; add a6,a6,t3
|
||||
;; ugt t3,a7,a6##ty=i64
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a7
|
||||
;; lui a7,1
|
||||
;; add a6,a6,a7
|
||||
;; li a7,0
|
||||
;; andi a0,t3,255
|
||||
;; sltu a2,zero,a0
|
||||
;; sub a4,zero,a2
|
||||
;; and a7,a7,a4
|
||||
;; not t3,a4
|
||||
;; and t0,a6,t3
|
||||
;; or t2,a7,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,42 +41,54 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a3,t2,32
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0004
|
||||
;; add t2,a3,a0
|
||||
;; ult a4,t2,a3##ty=i64
|
||||
;; trap_if a4,heap_oob
|
||||
;; ld a4,8(a2)
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; auipc a3,0; ld a3,12(a3); j 12; .8byte 0xffff0000
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; ugt a4,t2,a4##ty=i64
|
||||
;; selectif_spectre_guard a5,a3,a2##test=a4
|
||||
;; sw a1,0(a5)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; auipc a6,0; ld a6,12(a6); j 12; .8byte 0xffff0004
|
||||
;; add a5,a7,a6
|
||||
;; ult t3,a5,a7##ty=i64
|
||||
;; trap_if t3,heap_oob
|
||||
;; ld t3,8(a2)
|
||||
;; ugt t3,a5,t3##ty=i64
|
||||
;; ld t4,0(a2)
|
||||
;; add a7,t4,a7
|
||||
;; auipc t4,0; ld t4,12(t4); j 12; .8byte 0xffff0000
|
||||
;; add a7,a7,t4
|
||||
;; li t4,0
|
||||
;; andi a2,t3,255
|
||||
;; sltu a3,zero,a2
|
||||
;; sub a5,zero,a3
|
||||
;; and t3,t4,a5
|
||||
;; not t4,a5
|
||||
;; and t1,a7,t4
|
||||
;; or a0,t3,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a2,t2,32
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0004
|
||||
;; add t2,a2,a0
|
||||
;; ult a3,t2,a2##ty=i64
|
||||
;; trap_if a3,heap_oob
|
||||
;; ld a3,8(a1)
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a2
|
||||
;; auipc a2,0; ld a2,12(a2); j 12; .8byte 0xffff0000
|
||||
;; add a1,a1,a2
|
||||
;; li a2,0
|
||||
;; ugt a3,t2,a3##ty=i64
|
||||
;; selectif_spectre_guard a4,a2,a1##test=a3
|
||||
;; lw a0,0(a4)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; auipc a6,0; ld a6,12(a6); j 12; .8byte 0xffff0004
|
||||
;; add a5,a7,a6
|
||||
;; ult t3,a5,a7##ty=i64
|
||||
;; trap_if t3,heap_oob
|
||||
;; ld t3,8(a1)
|
||||
;; ugt t3,a5,t3##ty=i64
|
||||
;; ld t4,0(a1)
|
||||
;; add a7,t4,a7
|
||||
;; auipc t4,0; ld t4,12(t4); j 12; .8byte 0xffff0000
|
||||
;; add a7,a7,t4
|
||||
;; li t4,0
|
||||
;; andi a1,t3,255
|
||||
;; sltu a3,zero,a1
|
||||
;; sub a5,zero,a3
|
||||
;; and t3,t4,a5
|
||||
;; not t4,a5
|
||||
;; and t1,a7,t4
|
||||
;; or a0,t3,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,30 +41,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli a7,a0,32
|
||||
;; srli t4,a7,32
|
||||
;; ld t3,8(a2)
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,t4
|
||||
;; li t1,0
|
||||
;; uge t3,t4,t3##ty=i64
|
||||
;; selectif_spectre_guard t4,t1,t0##test=t3
|
||||
;; sb a1,0(t4)
|
||||
;; slli a0,a0,32
|
||||
;; srli a3,a0,32
|
||||
;; ld a4,8(a2)
|
||||
;; uge a4,a3,a4##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t3,a4,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a3,a3,t2
|
||||
;; not a4,t2
|
||||
;; and a5,a2,a4
|
||||
;; or a7,a3,a5
|
||||
;; sb a1,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli a7,a0,32
|
||||
;; srli t4,a7,32
|
||||
;; ld t3,8(a1)
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,t4
|
||||
;; li t1,0
|
||||
;; uge t3,t4,t3##ty=i64
|
||||
;; selectif_spectre_guard t4,t1,t0##test=t3
|
||||
;; lbu a0,0(t4)
|
||||
;; slli a0,a0,32
|
||||
;; srli a2,a0,32
|
||||
;; ld a3,8(a1)
|
||||
;; uge a3,a2,a3##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a2
|
||||
;; li a2,0
|
||||
;; andi t3,a3,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a2,a2,t2
|
||||
;; not a3,t2
|
||||
;; and a5,a1,a3
|
||||
;; or a7,a2,a5
|
||||
;; lbu a0,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,40 +41,52 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a3,t2,32
|
||||
;; ld a0,8(a2)
|
||||
;; lui a4,1048575
|
||||
;; addi a4,a4,4095
|
||||
;; add a0,a0,a4
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; ugt a0,a3,a0##ty=i64
|
||||
;; selectif_spectre_guard a3,a4,a2##test=a0
|
||||
;; sb a1,0(a3)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; ld a6,8(a2)
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4095
|
||||
;; add a6,a6,t3
|
||||
;; ugt t3,a7,a6##ty=i64
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a7
|
||||
;; lui a7,1
|
||||
;; add a6,a6,a7
|
||||
;; li a7,0
|
||||
;; andi a0,t3,255
|
||||
;; sltu a2,zero,a0
|
||||
;; sub a4,zero,a2
|
||||
;; and a7,a7,a4
|
||||
;; not t3,a4
|
||||
;; and t0,a6,t3
|
||||
;; or t2,a7,t0
|
||||
;; sb a1,0(t2)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a2,t2,32
|
||||
;; ld a0,8(a1)
|
||||
;; lui a3,1048575
|
||||
;; addi a3,a3,4095
|
||||
;; add a0,a0,a3
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a2
|
||||
;; lui a3,1
|
||||
;; add a1,a1,a3
|
||||
;; li a3,0
|
||||
;; ugt a0,a2,a0##ty=i64
|
||||
;; selectif_spectre_guard a2,a3,a1##test=a0
|
||||
;; lbu a0,0(a2)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; ld a6,8(a1)
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4095
|
||||
;; add a6,a6,t3
|
||||
;; ugt t3,a7,a6##ty=i64
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a7
|
||||
;; lui a7,1
|
||||
;; add a6,a6,a7
|
||||
;; li a7,0
|
||||
;; andi a0,t3,255
|
||||
;; sltu a2,zero,a0
|
||||
;; sub a4,zero,a2
|
||||
;; and a7,a7,a4
|
||||
;; not t3,a4
|
||||
;; and t0,a6,t3
|
||||
;; or t2,a7,t0
|
||||
;; lbu a0,0(t2)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,42 +41,54 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a3,t2,32
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0001
|
||||
;; add t2,a3,a0
|
||||
;; ult a4,t2,a3##ty=i64
|
||||
;; trap_if a4,heap_oob
|
||||
;; ld a4,8(a2)
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; auipc a3,0; ld a3,12(a3); j 12; .8byte 0xffff0000
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; ugt a4,t2,a4##ty=i64
|
||||
;; selectif_spectre_guard a5,a3,a2##test=a4
|
||||
;; sb a1,0(a5)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; auipc a6,0; ld a6,12(a6); j 12; .8byte 0xffff0001
|
||||
;; add a5,a7,a6
|
||||
;; ult t3,a5,a7##ty=i64
|
||||
;; trap_if t3,heap_oob
|
||||
;; ld t3,8(a2)
|
||||
;; ugt t3,a5,t3##ty=i64
|
||||
;; ld t4,0(a2)
|
||||
;; add a7,t4,a7
|
||||
;; auipc t4,0; ld t4,12(t4); j 12; .8byte 0xffff0000
|
||||
;; add a7,a7,t4
|
||||
;; li t4,0
|
||||
;; andi a2,t3,255
|
||||
;; sltu a3,zero,a2
|
||||
;; sub a5,zero,a3
|
||||
;; and t3,t4,a5
|
||||
;; not t4,a5
|
||||
;; and t1,a7,t4
|
||||
;; or a0,t3,t1
|
||||
;; sb a1,0(a0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t2,a0,32
|
||||
;; srli a2,t2,32
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0001
|
||||
;; add t2,a2,a0
|
||||
;; ult a3,t2,a2##ty=i64
|
||||
;; trap_if a3,heap_oob
|
||||
;; ld a3,8(a1)
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a2
|
||||
;; auipc a2,0; ld a2,12(a2); j 12; .8byte 0xffff0000
|
||||
;; add a1,a1,a2
|
||||
;; li a2,0
|
||||
;; ugt a3,t2,a3##ty=i64
|
||||
;; selectif_spectre_guard a4,a2,a1##test=a3
|
||||
;; lbu a0,0(a4)
|
||||
;; slli a5,a0,32
|
||||
;; srli a7,a5,32
|
||||
;; auipc a6,0; ld a6,12(a6); j 12; .8byte 0xffff0001
|
||||
;; add a5,a7,a6
|
||||
;; ult t3,a5,a7##ty=i64
|
||||
;; trap_if t3,heap_oob
|
||||
;; ld t3,8(a1)
|
||||
;; ugt t3,a5,t3##ty=i64
|
||||
;; ld t4,0(a1)
|
||||
;; add a7,t4,a7
|
||||
;; auipc t4,0; ld t4,12(t4); j 12; .8byte 0xffff0000
|
||||
;; add a7,a7,t4
|
||||
;; li t4,0
|
||||
;; andi a1,t3,255
|
||||
;; sltu a3,zero,a1
|
||||
;; sub a5,zero,a3
|
||||
;; and t3,t4,a5
|
||||
;; not t4,a5
|
||||
;; and t1,a7,t4
|
||||
;; or a0,t3,t1
|
||||
;; lbu a0,0(a0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,30 +41,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli a7,a0,32
|
||||
;; srli t4,a7,32
|
||||
;; ld t3,8(a2)
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,t4
|
||||
;; li t1,0
|
||||
;; ugt t3,t4,t3##ty=i64
|
||||
;; selectif_spectre_guard t4,t1,t0##test=t3
|
||||
;; sw a1,0(t4)
|
||||
;; slli a0,a0,32
|
||||
;; srli a3,a0,32
|
||||
;; ld a4,8(a2)
|
||||
;; ugt a4,a3,a4##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t3,a4,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a3,a3,t2
|
||||
;; not a4,t2
|
||||
;; and a5,a2,a4
|
||||
;; or a7,a3,a5
|
||||
;; sw a1,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli a7,a0,32
|
||||
;; srli t4,a7,32
|
||||
;; ld t3,8(a1)
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,t4
|
||||
;; li t1,0
|
||||
;; ugt t3,t4,t3##ty=i64
|
||||
;; selectif_spectre_guard t4,t1,t0##test=t3
|
||||
;; lw a0,0(t4)
|
||||
;; slli a0,a0,32
|
||||
;; srli a2,a0,32
|
||||
;; ld a3,8(a1)
|
||||
;; ugt a3,a2,a3##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a2
|
||||
;; li a2,0
|
||||
;; andi t3,a3,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a2,a2,t2
|
||||
;; not a3,t2
|
||||
;; and a5,a1,a3
|
||||
;; or a7,a2,a5
|
||||
;; lw a0,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,34 +41,46 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a2)
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t1
|
||||
;; lui a0,1
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; sw a1,0(t1)
|
||||
;; slli a3,a0,32
|
||||
;; srli a5,a3,32
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a2)
|
||||
;; add a3,a3,a5
|
||||
;; lui a5,1
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a2,zero,t2
|
||||
;; and a4,a5,a2
|
||||
;; not a5,a2
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; sw a1,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a1)
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t1
|
||||
;; lui a0,1
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; lw a0,0(t1)
|
||||
;; slli a2,a0,32
|
||||
;; srli a5,a2,32
|
||||
;; ld a3,8(a1)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a1)
|
||||
;; add a3,a3,a5
|
||||
;; lui a5,1
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a1,zero,t2
|
||||
;; and a4,a5,a1
|
||||
;; not a5,a1
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; lw a0,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,34 +41,46 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a2)
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t1
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; sw a1,0(t1)
|
||||
;; slli a3,a0,32
|
||||
;; srli a5,a3,32
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a2)
|
||||
;; add a3,a3,a5
|
||||
;; auipc a5,0; ld a5,12(a5); j 12; .8byte 0xffff0000
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a2,zero,t2
|
||||
;; and a4,a5,a2
|
||||
;; not a5,a2
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; sw a1,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a1)
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t1
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; lw a0,0(t1)
|
||||
;; slli a2,a0,32
|
||||
;; srli a5,a2,32
|
||||
;; ld a3,8(a1)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a1)
|
||||
;; add a3,a3,a5
|
||||
;; auipc a5,0; ld a5,12(a5); j 12; .8byte 0xffff0000
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a1,zero,t2
|
||||
;; and a4,a5,a1
|
||||
;; not a5,a1
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; lw a0,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,30 +41,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli a7,a0,32
|
||||
;; srli t4,a7,32
|
||||
;; ld t3,8(a2)
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,t4
|
||||
;; li t1,0
|
||||
;; uge t3,t4,t3##ty=i64
|
||||
;; selectif_spectre_guard t4,t1,t0##test=t3
|
||||
;; sb a1,0(t4)
|
||||
;; slli a0,a0,32
|
||||
;; srli a3,a0,32
|
||||
;; ld a4,8(a2)
|
||||
;; uge a4,a3,a4##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t3,a4,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a3,a3,t2
|
||||
;; not a4,t2
|
||||
;; and a5,a2,a4
|
||||
;; or a7,a3,a5
|
||||
;; sb a1,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli a7,a0,32
|
||||
;; srli t4,a7,32
|
||||
;; ld t3,8(a1)
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,t4
|
||||
;; li t1,0
|
||||
;; uge t3,t4,t3##ty=i64
|
||||
;; selectif_spectre_guard t4,t1,t0##test=t3
|
||||
;; lbu a0,0(t4)
|
||||
;; slli a0,a0,32
|
||||
;; srli a2,a0,32
|
||||
;; ld a3,8(a1)
|
||||
;; uge a3,a2,a3##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a2
|
||||
;; li a2,0
|
||||
;; andi t3,a3,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a2,a2,t2
|
||||
;; not a3,t2
|
||||
;; and a5,a1,a3
|
||||
;; or a7,a2,a5
|
||||
;; lbu a0,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,34 +41,46 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a2)
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t1
|
||||
;; lui a0,1
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; sb a1,0(t1)
|
||||
;; slli a3,a0,32
|
||||
;; srli a5,a3,32
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a2)
|
||||
;; add a3,a3,a5
|
||||
;; lui a5,1
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a2,zero,t2
|
||||
;; and a4,a5,a2
|
||||
;; not a5,a2
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; sb a1,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a1)
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t1
|
||||
;; lui a0,1
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; lbu a0,0(t1)
|
||||
;; slli a2,a0,32
|
||||
;; srli a5,a2,32
|
||||
;; ld a3,8(a1)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a1)
|
||||
;; add a3,a3,a5
|
||||
;; lui a5,1
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a1,zero,t2
|
||||
;; and a4,a5,a1
|
||||
;; not a5,a1
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; lbu a0,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,34 +41,46 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a2)
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t1
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; sb a1,0(t1)
|
||||
;; slli a3,a0,32
|
||||
;; srli a5,a3,32
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a2)
|
||||
;; add a3,a3,a5
|
||||
;; auipc a5,0; ld a5,12(a5); j 12; .8byte 0xffff0000
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a2,zero,t2
|
||||
;; and a4,a5,a2
|
||||
;; not a5,a2
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; sb a1,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t4,a0,32
|
||||
;; srli t1,t4,32
|
||||
;; ld t0,8(a1)
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t1
|
||||
;; auipc a0,0; ld a0,12(a0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t2,a0
|
||||
;; li a0,0
|
||||
;; ugt t0,t1,t0##ty=i64
|
||||
;; selectif_spectre_guard t1,a0,t2##test=t0
|
||||
;; lbu a0,0(t1)
|
||||
;; slli a2,a0,32
|
||||
;; srli a5,a2,32
|
||||
;; ld a3,8(a1)
|
||||
;; ugt a4,a5,a3##ty=i64
|
||||
;; ld a3,0(a1)
|
||||
;; add a3,a3,a5
|
||||
;; auipc a5,0; ld a5,12(a5); j 12; .8byte 0xffff0000
|
||||
;; add a3,a3,a5
|
||||
;; li a5,0
|
||||
;; andi t0,a4,255
|
||||
;; sltu t2,zero,t0
|
||||
;; sub a1,zero,t2
|
||||
;; and a4,a5,a1
|
||||
;; not a5,a1
|
||||
;; and a7,a3,a5
|
||||
;; or t4,a4,a7
|
||||
;; lbu a0,0(t4)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,28 +41,40 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld a7,8(a2)
|
||||
;; addi a7,a7,-4
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; sw a1,0(t0)
|
||||
;; ld a3,8(a2)
|
||||
;; addi a3,a3,-4
|
||||
;; ugt a4,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a0,a2,a0
|
||||
;; li a3,0
|
||||
;; andi a7,a4,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a2,a3,t1
|
||||
;; not a3,t1
|
||||
;; and a4,a0,a3
|
||||
;; or a6,a2,a4
|
||||
;; sw a1,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a7,8(a1)
|
||||
;; addi a7,a7,-4
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; lw a0,0(t0)
|
||||
;; ld a2,8(a1)
|
||||
;; addi a2,a2,-4
|
||||
;; ugt a3,a0,a2##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a0,a1,a0
|
||||
;; li a2,0
|
||||
;; andi a7,a3,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a1,a2,t1
|
||||
;; not a2,t1
|
||||
;; and a4,a0,a2
|
||||
;; or a6,a1,a4
|
||||
;; lw a0,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,36 +41,48 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld t1,8(a2)
|
||||
;; lui t2,1048575
|
||||
;; addi t2,t2,4092
|
||||
;; add t1,t1,t2
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; lui a2,1
|
||||
;; add t2,t2,a2
|
||||
;; li a2,0
|
||||
;; ugt t1,a0,t1##ty=i64
|
||||
;; selectif_spectre_guard a0,a2,t2##test=t1
|
||||
;; sw a1,0(a0)
|
||||
;; ld a4,8(a2)
|
||||
;; lui a5,1048575
|
||||
;; addi a5,a5,4092
|
||||
;; add a4,a4,a5
|
||||
;; ugt a5,a0,a4##ty=i64
|
||||
;; ld a4,0(a2)
|
||||
;; add a4,a4,a0
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; sw a1,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld t1,8(a1)
|
||||
;; lui t2,1048575
|
||||
;; addi t2,t2,4092
|
||||
;; add t1,t1,t2
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; lui a1,1
|
||||
;; add t2,t2,a1
|
||||
;; li a1,0
|
||||
;; ugt t1,a0,t1##ty=i64
|
||||
;; selectif_spectre_guard a0,a1,t2##test=t1
|
||||
;; lw a0,0(a0)
|
||||
;; ld a4,8(a1)
|
||||
;; lui a5,1048575
|
||||
;; addi a5,a5,4092
|
||||
;; add a4,a4,a5
|
||||
;; ugt a5,a0,a4##ty=i64
|
||||
;; ld a4,0(a1)
|
||||
;; add a4,a4,a0
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; lw a0,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,38 +41,50 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0004
|
||||
;; add t0,a0,t1
|
||||
;; ult t2,t0,a0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a2)
|
||||
;; ld a2,0(a2)
|
||||
;; add a0,a2,a0
|
||||
;; auipc a2,0; ld a2,12(a2); j 12; .8byte 0xffff0000
|
||||
;; add a0,a0,a2
|
||||
;; li a2,0
|
||||
;; ugt t2,t0,t2##ty=i64
|
||||
;; selectif_spectre_guard a3,a2,a0##test=t2
|
||||
;; sw a1,0(a3)
|
||||
;; auipc a4,0; ld a4,12(a4); j 12; .8byte 0xffff0004
|
||||
;; add a3,a0,a4
|
||||
;; ult a5,a3,a0##ty=i64
|
||||
;; trap_if a5,heap_oob
|
||||
;; ld a5,8(a2)
|
||||
;; ugt a6,a3,a5##ty=i64
|
||||
;; ld a5,0(a2)
|
||||
;; add a5,a5,a0
|
||||
;; auipc a7,0; ld a7,12(a7); j 12; .8byte 0xffff0000
|
||||
;; add a5,a5,a7
|
||||
;; li a7,0
|
||||
;; andi t2,a6,255
|
||||
;; sltu a2,zero,t2
|
||||
;; sub a3,zero,a2
|
||||
;; and a6,a7,a3
|
||||
;; not a7,a3
|
||||
;; and t4,a5,a7
|
||||
;; or t1,a6,t4
|
||||
;; sw a1,0(t1)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0004
|
||||
;; add t0,a0,t1
|
||||
;; ult t2,t0,a0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a1)
|
||||
;; ld a1,0(a1)
|
||||
;; add a0,a1,a0
|
||||
;; auipc a1,0; ld a1,12(a1); j 12; .8byte 0xffff0000
|
||||
;; add a0,a0,a1
|
||||
;; li a1,0
|
||||
;; ugt t2,t0,t2##ty=i64
|
||||
;; selectif_spectre_guard a2,a1,a0##test=t2
|
||||
;; lw a0,0(a2)
|
||||
;; auipc a4,0; ld a4,12(a4); j 12; .8byte 0xffff0004
|
||||
;; add a3,a0,a4
|
||||
;; ult a5,a3,a0##ty=i64
|
||||
;; trap_if a5,heap_oob
|
||||
;; ld a5,8(a1)
|
||||
;; ugt a6,a3,a5##ty=i64
|
||||
;; ld a5,0(a1)
|
||||
;; add a5,a5,a0
|
||||
;; auipc a7,0; ld a7,12(a7); j 12; .8byte 0xffff0000
|
||||
;; add a5,a5,a7
|
||||
;; li a7,0
|
||||
;; andi t2,a6,255
|
||||
;; sltu a1,zero,t2
|
||||
;; sub a3,zero,a1
|
||||
;; and a6,a7,a3
|
||||
;; not a7,a3
|
||||
;; and t4,a5,a7
|
||||
;; or t1,a6,t4
|
||||
;; lw a0,0(t1)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,26 +41,38 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld a6,8(a2)
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; li t3,0
|
||||
;; uge a6,a0,a6##ty=i64
|
||||
;; selectif_spectre_guard t4,t3,a7##test=a6
|
||||
;; sb a1,0(t4)
|
||||
;; ld t2,8(a2)
|
||||
;; uge a3,a0,t2##ty=i64
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; li a2,0
|
||||
;; andi a6,a3,255
|
||||
;; sltu t3,zero,a6
|
||||
;; sub t0,zero,t3
|
||||
;; and a0,a2,t0
|
||||
;; not a2,t0
|
||||
;; and a3,t2,a2
|
||||
;; or a5,a0,a3
|
||||
;; sb a1,0(a5)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a6,8(a1)
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; li t3,0
|
||||
;; uge a6,a0,a6##ty=i64
|
||||
;; selectif_spectre_guard t4,t3,a7##test=a6
|
||||
;; lbu a0,0(t4)
|
||||
;; ld t2,8(a1)
|
||||
;; uge a2,a0,t2##ty=i64
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; li a1,0
|
||||
;; andi a6,a2,255
|
||||
;; sltu t3,zero,a6
|
||||
;; sub t0,zero,t3
|
||||
;; and a0,a1,t0
|
||||
;; not a1,t0
|
||||
;; and a3,t2,a1
|
||||
;; or a5,a0,a3
|
||||
;; lbu a0,0(a5)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,36 +41,48 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld t1,8(a2)
|
||||
;; lui t2,1048575
|
||||
;; addi t2,t2,4095
|
||||
;; add t1,t1,t2
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; lui a2,1
|
||||
;; add t2,t2,a2
|
||||
;; li a2,0
|
||||
;; ugt t1,a0,t1##ty=i64
|
||||
;; selectif_spectre_guard a0,a2,t2##test=t1
|
||||
;; sb a1,0(a0)
|
||||
;; ld a4,8(a2)
|
||||
;; lui a5,1048575
|
||||
;; addi a5,a5,4095
|
||||
;; add a4,a4,a5
|
||||
;; ugt a5,a0,a4##ty=i64
|
||||
;; ld a4,0(a2)
|
||||
;; add a4,a4,a0
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; sb a1,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld t1,8(a1)
|
||||
;; lui t2,1048575
|
||||
;; addi t2,t2,4095
|
||||
;; add t1,t1,t2
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; lui a1,1
|
||||
;; add t2,t2,a1
|
||||
;; li a1,0
|
||||
;; ugt t1,a0,t1##ty=i64
|
||||
;; selectif_spectre_guard a0,a1,t2##test=t1
|
||||
;; lbu a0,0(a0)
|
||||
;; ld a4,8(a1)
|
||||
;; lui a5,1048575
|
||||
;; addi a5,a5,4095
|
||||
;; add a4,a4,a5
|
||||
;; ugt a5,a0,a4##ty=i64
|
||||
;; ld a4,0(a1)
|
||||
;; add a4,a4,a0
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; lbu a0,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,38 +41,50 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0001
|
||||
;; add t0,a0,t1
|
||||
;; ult t2,t0,a0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a2)
|
||||
;; ld a2,0(a2)
|
||||
;; add a0,a2,a0
|
||||
;; auipc a2,0; ld a2,12(a2); j 12; .8byte 0xffff0000
|
||||
;; add a0,a0,a2
|
||||
;; li a2,0
|
||||
;; ugt t2,t0,t2##ty=i64
|
||||
;; selectif_spectre_guard a3,a2,a0##test=t2
|
||||
;; sb a1,0(a3)
|
||||
;; auipc a4,0; ld a4,12(a4); j 12; .8byte 0xffff0001
|
||||
;; add a3,a0,a4
|
||||
;; ult a5,a3,a0##ty=i64
|
||||
;; trap_if a5,heap_oob
|
||||
;; ld a5,8(a2)
|
||||
;; ugt a6,a3,a5##ty=i64
|
||||
;; ld a5,0(a2)
|
||||
;; add a5,a5,a0
|
||||
;; auipc a7,0; ld a7,12(a7); j 12; .8byte 0xffff0000
|
||||
;; add a5,a5,a7
|
||||
;; li a7,0
|
||||
;; andi t2,a6,255
|
||||
;; sltu a2,zero,t2
|
||||
;; sub a3,zero,a2
|
||||
;; and a6,a7,a3
|
||||
;; not a7,a3
|
||||
;; and t4,a5,a7
|
||||
;; or t1,a6,t4
|
||||
;; sb a1,0(t1)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0001
|
||||
;; add t0,a0,t1
|
||||
;; ult t2,t0,a0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a1)
|
||||
;; ld a1,0(a1)
|
||||
;; add a0,a1,a0
|
||||
;; auipc a1,0; ld a1,12(a1); j 12; .8byte 0xffff0000
|
||||
;; add a0,a0,a1
|
||||
;; li a1,0
|
||||
;; ugt t2,t0,t2##ty=i64
|
||||
;; selectif_spectre_guard a2,a1,a0##test=t2
|
||||
;; lbu a0,0(a2)
|
||||
;; auipc a4,0; ld a4,12(a4); j 12; .8byte 0xffff0001
|
||||
;; add a3,a0,a4
|
||||
;; ult a5,a3,a0##ty=i64
|
||||
;; trap_if a5,heap_oob
|
||||
;; ld a5,8(a1)
|
||||
;; ugt a6,a3,a5##ty=i64
|
||||
;; ld a5,0(a1)
|
||||
;; add a5,a5,a0
|
||||
;; auipc a7,0; ld a7,12(a7); j 12; .8byte 0xffff0000
|
||||
;; add a5,a5,a7
|
||||
;; li a7,0
|
||||
;; andi t2,a6,255
|
||||
;; sltu a1,zero,t2
|
||||
;; sub a3,zero,a1
|
||||
;; and a6,a7,a3
|
||||
;; not a7,a3
|
||||
;; and t4,a5,a7
|
||||
;; or t1,a6,t4
|
||||
;; lbu a0,0(t1)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,26 +41,38 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld a6,8(a2)
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; li t3,0
|
||||
;; ugt a6,a0,a6##ty=i64
|
||||
;; selectif_spectre_guard t4,t3,a7##test=a6
|
||||
;; sw a1,0(t4)
|
||||
;; ld t2,8(a2)
|
||||
;; ugt a3,a0,t2##ty=i64
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; li a2,0
|
||||
;; andi a6,a3,255
|
||||
;; sltu t3,zero,a6
|
||||
;; sub t0,zero,t3
|
||||
;; and a0,a2,t0
|
||||
;; not a2,t0
|
||||
;; and a3,t2,a2
|
||||
;; or a5,a0,a3
|
||||
;; sw a1,0(a5)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a6,8(a1)
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; li t3,0
|
||||
;; ugt a6,a0,a6##ty=i64
|
||||
;; selectif_spectre_guard t4,t3,a7##test=a6
|
||||
;; lw a0,0(t4)
|
||||
;; ld t2,8(a1)
|
||||
;; ugt a2,a0,t2##ty=i64
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; li a1,0
|
||||
;; andi a6,a2,255
|
||||
;; sltu t3,zero,a6
|
||||
;; sub t0,zero,t3
|
||||
;; and a0,a1,t0
|
||||
;; not a1,t0
|
||||
;; and a3,t2,a1
|
||||
;; or a5,a0,a3
|
||||
;; lw a0,0(a5)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,30 +41,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld t3,8(a2)
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; lui t0,1
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; sw a1,0(t1)
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t3,a3,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a3,a4,t2
|
||||
;; not a4,t2
|
||||
;; and a5,a2,a4
|
||||
;; or a7,a3,a5
|
||||
;; sw a1,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld t3,8(a1)
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; lui t0,1
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; lw a0,0(t1)
|
||||
;; ld a2,8(a1)
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a0
|
||||
;; lui a3,1
|
||||
;; add a1,a1,a3
|
||||
;; li a3,0
|
||||
;; andi t3,a2,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a2,a3,t2
|
||||
;; not a3,t2
|
||||
;; and a5,a1,a3
|
||||
;; or a7,a2,a5
|
||||
;; lw a0,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,30 +41,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld t3,8(a2)
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; sw a1,0(t1)
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; auipc a4,0; ld a4,12(a4); j 12; .8byte 0xffff0000
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t3,a3,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a3,a4,t2
|
||||
;; not a4,t2
|
||||
;; and a5,a2,a4
|
||||
;; or a7,a3,a5
|
||||
;; sw a1,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld t3,8(a1)
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; lw a0,0(t1)
|
||||
;; ld a2,8(a1)
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a0
|
||||
;; auipc a3,0; ld a3,12(a3); j 12; .8byte 0xffff0000
|
||||
;; add a1,a1,a3
|
||||
;; li a3,0
|
||||
;; andi t3,a2,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a2,a3,t2
|
||||
;; not a3,t2
|
||||
;; and a5,a1,a3
|
||||
;; or a7,a2,a5
|
||||
;; lw a0,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,26 +41,38 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld a6,8(a2)
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; li t3,0
|
||||
;; uge a6,a0,a6##ty=i64
|
||||
;; selectif_spectre_guard t4,t3,a7##test=a6
|
||||
;; sb a1,0(t4)
|
||||
;; ld t2,8(a2)
|
||||
;; uge a3,a0,t2##ty=i64
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; li a2,0
|
||||
;; andi a6,a3,255
|
||||
;; sltu t3,zero,a6
|
||||
;; sub t0,zero,t3
|
||||
;; and a0,a2,t0
|
||||
;; not a2,t0
|
||||
;; and a3,t2,a2
|
||||
;; or a5,a0,a3
|
||||
;; sb a1,0(a5)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a6,8(a1)
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; li t3,0
|
||||
;; uge a6,a0,a6##ty=i64
|
||||
;; selectif_spectre_guard t4,t3,a7##test=a6
|
||||
;; lbu a0,0(t4)
|
||||
;; ld t2,8(a1)
|
||||
;; uge a2,a0,t2##ty=i64
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; li a1,0
|
||||
;; andi a6,a2,255
|
||||
;; sltu t3,zero,a6
|
||||
;; sub t0,zero,t3
|
||||
;; and a0,a1,t0
|
||||
;; not a1,t0
|
||||
;; and a3,t2,a1
|
||||
;; or a5,a0,a3
|
||||
;; lbu a0,0(a5)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,30 +41,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld t3,8(a2)
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; lui t0,1
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; sb a1,0(t1)
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t3,a3,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a3,a4,t2
|
||||
;; not a4,t2
|
||||
;; and a5,a2,a4
|
||||
;; or a7,a3,a5
|
||||
;; sb a1,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld t3,8(a1)
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; lui t0,1
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; lbu a0,0(t1)
|
||||
;; ld a2,8(a1)
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a0
|
||||
;; lui a3,1
|
||||
;; add a1,a1,a3
|
||||
;; li a3,0
|
||||
;; andi t3,a2,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a2,a3,t2
|
||||
;; not a3,t2
|
||||
;; and a5,a1,a3
|
||||
;; or a7,a2,a5
|
||||
;; lbu a0,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -41,30 +41,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld t3,8(a2)
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; sb a1,0(t1)
|
||||
;; ld a3,8(a2)
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; auipc a4,0; ld a4,12(a4); j 12; .8byte 0xffff0000
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t3,a3,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a3,a4,t2
|
||||
;; not a4,t2
|
||||
;; and a5,a2,a4
|
||||
;; or a7,a3,a5
|
||||
;; sb a1,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld t3,8(a1)
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t4,t4,t0
|
||||
;; li t0,0
|
||||
;; ugt t3,a0,t3##ty=i64
|
||||
;; selectif_spectre_guard t1,t0,t4##test=t3
|
||||
;; lbu a0,0(t1)
|
||||
;; ld a2,8(a1)
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a1,0(a1)
|
||||
;; add a1,a1,a0
|
||||
;; auipc a3,0; ld a3,12(a3); j 12; .8byte 0xffff0000
|
||||
;; add a1,a1,a3
|
||||
;; li a3,0
|
||||
;; andi t3,a2,255
|
||||
;; sltu t0,zero,t3
|
||||
;; sub t2,zero,t0
|
||||
;; and a2,a3,t2
|
||||
;; not a3,t2
|
||||
;; and a5,a1,a3
|
||||
;; or a7,a2,a5
|
||||
;; lbu a0,0(a7)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,32 +39,44 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t3,a0,32
|
||||
;; srli t0,t3,32
|
||||
;; lui t4,65536
|
||||
;; addi t4,t4,4092
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; li t2,0
|
||||
;; ugt t4,t0,t4##ty=i64
|
||||
;; selectif_spectre_guard t0,t2,t1##test=t4
|
||||
;; sw a1,0(t0)
|
||||
;; slli a3,a0,32
|
||||
;; srli a3,a3,32
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4092
|
||||
;; ugt a4,a3,a4##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t4,a4,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a3,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; sw a1,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t3,a0,32
|
||||
;; srli t0,t3,32
|
||||
;; lui t4,65536
|
||||
;; addi t4,t4,4092
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; li t2,0
|
||||
;; ugt t4,t0,t4##ty=i64
|
||||
;; selectif_spectre_guard t0,t2,t1##test=t4
|
||||
;; lw a0,0(t0)
|
||||
;; slli a2,a0,32
|
||||
;; srli a3,a2,32
|
||||
;; lui a2,65536
|
||||
;; addi a2,a2,4092
|
||||
;; ugt a4,a3,a2##ty=i64
|
||||
;; ld a2,0(a1)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t4,a4,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a3,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; lw a0,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,36 +39,48 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t0,a0,32
|
||||
;; srli t2,t0,32
|
||||
;; lui t1,65535
|
||||
;; addi t1,t1,4092
|
||||
;; ld a0,0(a2)
|
||||
;; add a0,a0,t2
|
||||
;; lui a2,1
|
||||
;; add a0,a0,a2
|
||||
;; li a2,0
|
||||
;; ugt t1,t2,t1##ty=i64
|
||||
;; selectif_spectre_guard t2,a2,a0##test=t1
|
||||
;; sw a1,0(t2)
|
||||
;; slli a3,a0,32
|
||||
;; srli a6,a3,32
|
||||
;; lui a4,65535
|
||||
;; addi a4,a4,4092
|
||||
;; ugt a5,a6,a4##ty=i64
|
||||
;; ld a4,0(a2)
|
||||
;; add a4,a4,a6
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; sw a1,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t0,a0,32
|
||||
;; srli t2,t0,32
|
||||
;; lui t1,65535
|
||||
;; addi t1,t1,4092
|
||||
;; ld a0,0(a1)
|
||||
;; add a0,a0,t2
|
||||
;; lui a1,1
|
||||
;; add a0,a0,a1
|
||||
;; li a1,0
|
||||
;; ugt t1,t2,t1##ty=i64
|
||||
;; selectif_spectre_guard t2,a1,a0##test=t1
|
||||
;; lw a0,0(t2)
|
||||
;; slli a3,a0,32
|
||||
;; srli a6,a3,32
|
||||
;; lui a4,65535
|
||||
;; addi a4,a4,4092
|
||||
;; ugt a5,a6,a4##ty=i64
|
||||
;; ld a4,0(a1)
|
||||
;; add a4,a4,a6
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; lw a0,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,32 +39,44 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t3,a0,32
|
||||
;; srli t0,t3,32
|
||||
;; lui t4,65536
|
||||
;; addi t4,t4,4095
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; li t2,0
|
||||
;; ugt t4,t0,t4##ty=i64
|
||||
;; selectif_spectre_guard t0,t2,t1##test=t4
|
||||
;; sb a1,0(t0)
|
||||
;; slli a3,a0,32
|
||||
;; srli a3,a3,32
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4095
|
||||
;; ugt a4,a3,a4##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t4,a4,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a3,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; sb a1,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t3,a0,32
|
||||
;; srli t0,t3,32
|
||||
;; lui t4,65536
|
||||
;; addi t4,t4,4095
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; li t2,0
|
||||
;; ugt t4,t0,t4##ty=i64
|
||||
;; selectif_spectre_guard t0,t2,t1##test=t4
|
||||
;; lbu a0,0(t0)
|
||||
;; slli a2,a0,32
|
||||
;; srli a3,a2,32
|
||||
;; lui a2,65536
|
||||
;; addi a2,a2,4095
|
||||
;; ugt a4,a3,a2##ty=i64
|
||||
;; ld a2,0(a1)
|
||||
;; add a2,a2,a3
|
||||
;; li a3,0
|
||||
;; andi t4,a4,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a3,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; lbu a0,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,36 +39,48 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; slli t0,a0,32
|
||||
;; srli t2,t0,32
|
||||
;; lui t1,65535
|
||||
;; addi t1,t1,4095
|
||||
;; ld a0,0(a2)
|
||||
;; add a0,a0,t2
|
||||
;; lui a2,1
|
||||
;; add a0,a0,a2
|
||||
;; li a2,0
|
||||
;; ugt t1,t2,t1##ty=i64
|
||||
;; selectif_spectre_guard t2,a2,a0##test=t1
|
||||
;; sb a1,0(t2)
|
||||
;; slli a3,a0,32
|
||||
;; srli a6,a3,32
|
||||
;; lui a4,65535
|
||||
;; addi a4,a4,4095
|
||||
;; ugt a5,a6,a4##ty=i64
|
||||
;; ld a4,0(a2)
|
||||
;; add a4,a4,a6
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; sb a1,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; slli t0,a0,32
|
||||
;; srli t2,t0,32
|
||||
;; lui t1,65535
|
||||
;; addi t1,t1,4095
|
||||
;; ld a0,0(a1)
|
||||
;; add a0,a0,t2
|
||||
;; lui a1,1
|
||||
;; add a0,a0,a1
|
||||
;; li a1,0
|
||||
;; ugt t1,t2,t1##ty=i64
|
||||
;; selectif_spectre_guard t2,a1,a0##test=t1
|
||||
;; lbu a0,0(t2)
|
||||
;; slli a3,a0,32
|
||||
;; srli a6,a3,32
|
||||
;; lui a4,65535
|
||||
;; addi a4,a4,4095
|
||||
;; ugt a5,a6,a4##ty=i64
|
||||
;; ld a4,0(a1)
|
||||
;; add a4,a4,a6
|
||||
;; lui a6,1
|
||||
;; add a4,a4,a6
|
||||
;; li a6,0
|
||||
;; andi t1,a5,255
|
||||
;; sltu a0,zero,t1
|
||||
;; sub a2,zero,a0
|
||||
;; and a5,a6,a2
|
||||
;; not a6,a2
|
||||
;; and t3,a4,a6
|
||||
;; or t0,a5,t3
|
||||
;; lbu a0,0(t0)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,28 +39,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4092
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; sw a1,0(t0)
|
||||
;; mv a4,a2
|
||||
;; lui a2,65536
|
||||
;; addi a2,a2,4092
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a3,0(a4)
|
||||
;; add a0,a3,a0
|
||||
;; li a3,0
|
||||
;; andi a7,a2,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a2,a3,t1
|
||||
;; not a3,t1
|
||||
;; and a4,a0,a3
|
||||
;; or a6,a2,a4
|
||||
;; sw a1,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4092
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; lw a0,0(t0)
|
||||
;; mv a4,a1
|
||||
;; lui a1,65536
|
||||
;; addi a1,a1,4092
|
||||
;; ugt a1,a0,a1##ty=i64
|
||||
;; ld a2,0(a4)
|
||||
;; add a0,a2,a0
|
||||
;; li a2,0
|
||||
;; andi a7,a1,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a1,a2,t1
|
||||
;; not a2,t1
|
||||
;; and a4,a0,a2
|
||||
;; or a6,a1,a4
|
||||
;; lw a0,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,32 +39,44 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4092
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; sw a1,0(t2)
|
||||
;; lui a3,65535
|
||||
;; addi a3,a3,4092
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; sw a1,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4092
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; lw a0,0(t2)
|
||||
;; lui a2,65535
|
||||
;; addi a2,a2,4092
|
||||
;; ugt a3,a0,a2##ty=i64
|
||||
;; ld a2,0(a1)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; lw a0,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,28 +39,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4095
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; sb a1,0(t0)
|
||||
;; mv a4,a2
|
||||
;; lui a2,65536
|
||||
;; addi a2,a2,4095
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a3,0(a4)
|
||||
;; add a0,a3,a0
|
||||
;; li a3,0
|
||||
;; andi a7,a2,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a2,a3,t1
|
||||
;; not a3,t1
|
||||
;; and a4,a0,a3
|
||||
;; or a6,a2,a4
|
||||
;; sb a1,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4095
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; lbu a0,0(t0)
|
||||
;; mv a4,a1
|
||||
;; lui a1,65536
|
||||
;; addi a1,a1,4095
|
||||
;; ugt a1,a0,a1##ty=i64
|
||||
;; ld a2,0(a4)
|
||||
;; add a0,a2,a0
|
||||
;; li a2,0
|
||||
;; andi a7,a1,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a1,a2,t1
|
||||
;; not a2,t1
|
||||
;; and a4,a0,a2
|
||||
;; or a6,a1,a4
|
||||
;; lbu a0,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,32 +39,44 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4095
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; sb a1,0(t2)
|
||||
;; lui a3,65535
|
||||
;; addi a3,a3,4095
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; sb a1,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4095
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; lbu a0,0(t2)
|
||||
;; lui a2,65535
|
||||
;; addi a2,a2,4095
|
||||
;; ugt a3,a0,a2##ty=i64
|
||||
;; ld a2,0(a1)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; lbu a0,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,28 +39,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4092
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; sw a1,0(t0)
|
||||
;; mv a4,a2
|
||||
;; lui a2,65536
|
||||
;; addi a2,a2,4092
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a3,0(a4)
|
||||
;; add a0,a3,a0
|
||||
;; li a3,0
|
||||
;; andi a7,a2,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a2,a3,t1
|
||||
;; not a3,t1
|
||||
;; and a4,a0,a3
|
||||
;; or a6,a2,a4
|
||||
;; sw a1,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4092
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; lw a0,0(t0)
|
||||
;; mv a4,a1
|
||||
;; lui a1,65536
|
||||
;; addi a1,a1,4092
|
||||
;; ugt a1,a0,a1##ty=i64
|
||||
;; ld a2,0(a4)
|
||||
;; add a0,a2,a0
|
||||
;; li a2,0
|
||||
;; andi a7,a1,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a1,a2,t1
|
||||
;; not a2,t1
|
||||
;; and a4,a0,a2
|
||||
;; or a6,a1,a4
|
||||
;; lw a0,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,32 +39,44 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4092
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; sw a1,0(t2)
|
||||
;; lui a3,65535
|
||||
;; addi a3,a3,4092
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; sw a1,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4092
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; lw a0,0(t2)
|
||||
;; lui a2,65535
|
||||
;; addi a2,a2,4092
|
||||
;; ugt a3,a0,a2##ty=i64
|
||||
;; ld a2,0(a1)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; lw a0,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,28 +39,42 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4095
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; sb a1,0(t0)
|
||||
;; mv a4,a2
|
||||
;; lui a2,65536
|
||||
;; addi a2,a2,4095
|
||||
;; ugt a2,a0,a2##ty=i64
|
||||
;; ld a3,0(a4)
|
||||
;; add a0,a3,a0
|
||||
;; li a3,0
|
||||
;; andi a7,a2,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a2,a3,t1
|
||||
;; not a3,t1
|
||||
;; and a4,a0,a3
|
||||
;; or a6,a2,a4
|
||||
;; sb a1,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a7,65536
|
||||
;; addi a7,a7,4095
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; li t4,0
|
||||
;; ugt a7,a0,a7##ty=i64
|
||||
;; selectif_spectre_guard t0,t4,t3##test=a7
|
||||
;; lbu a0,0(t0)
|
||||
;; mv a4,a1
|
||||
;; lui a1,65536
|
||||
;; addi a1,a1,4095
|
||||
;; ugt a1,a0,a1##ty=i64
|
||||
;; ld a2,0(a4)
|
||||
;; add a0,a2,a0
|
||||
;; li a2,0
|
||||
;; andi a7,a1,255
|
||||
;; sltu t4,zero,a7
|
||||
;; sub t1,zero,t4
|
||||
;; and a1,a2,t1
|
||||
;; not a2,t1
|
||||
;; and a4,a0,a2
|
||||
;; or a6,a1,a4
|
||||
;; lbu a0,0(a6)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -39,32 +39,44 @@
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4095
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; sb a1,0(t2)
|
||||
;; lui a3,65535
|
||||
;; addi a3,a3,4095
|
||||
;; ugt a3,a0,a3##ty=i64
|
||||
;; ld a2,0(a2)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; sb a1,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui t4,65535
|
||||
;; addi t4,t4,4095
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t1,1
|
||||
;; add t0,t0,t1
|
||||
;; li t1,0
|
||||
;; ugt t4,a0,t4##ty=i64
|
||||
;; selectif_spectre_guard t2,t1,t0##test=t4
|
||||
;; lbu a0,0(t2)
|
||||
;; lui a2,65535
|
||||
;; addi a2,a2,4095
|
||||
;; ugt a3,a0,a2##ty=i64
|
||||
;; ld a2,0(a1)
|
||||
;; add a2,a2,a0
|
||||
;; lui a4,1
|
||||
;; add a2,a2,a4
|
||||
;; li a4,0
|
||||
;; andi t4,a3,255
|
||||
;; sltu t1,zero,t4
|
||||
;; sub a0,zero,t1
|
||||
;; and a3,a4,a0
|
||||
;; not a4,a0
|
||||
;; and a6,a2,a4
|
||||
;; or t3,a3,a6
|
||||
;; lbu a0,0(t3)
|
||||
;; j label1
|
||||
;; block1:
|
||||
;; ret
|
||||
|
||||
@@ -4,6 +4,7 @@ set enable_llvm_abi_extensions=true
|
||||
target aarch64
|
||||
target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %select_spectre_guard_i8_eq(i8, i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: i8):
|
||||
|
||||
Reference in New Issue
Block a user