|
@@ -328,7 +328,7 @@ fn test_jit_call_memfrob() {
|
|
|
//0x4f, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
|
//0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
//];
|
|
|
- //let mut vm = rbpf::EbpfVmNoData::new(&prog);
|
|
|
+ //let mut vm = rbpf::EbpfVmNoData::new(prog);
|
|
|
//vm.register_helper(2, helpers::trash_registers);
|
|
|
//vm.jit_compile();
|
|
|
//unsafe { assert_eq!(vm.prog_exec_jit(), 0x4321); }
|
|
@@ -492,7 +492,7 @@ fn test_jit_err_mod_by_zero_reg() {
|
|
|
// 0x72, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
|
// 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
// ];
|
|
|
-// let mut vm = rbpf::EbpfVmNoData::new(&prog);
|
|
|
+// let mut vm = rbpf::EbpfVmNoData::new(prog);
|
|
|
// vm.jit_compile();
|
|
|
// unsafe { vm.prog_exec_jit(); }
|
|
|
// }
|
|
@@ -671,12 +671,12 @@ fn test_jit_jset_reg() {
|
|
|
fn test_jit_jsge_imm() {
|
|
|
let prog = assemble("
|
|
|
mov32 r0, 0
|
|
|
- mov r1, 0xfffffffe
|
|
|
- jsge r1, 0xffffffff, +5
|
|
|
+ mov r1, -2
|
|
|
+ jsge r1, -1, +5
|
|
|
jsge r1, 0, +4
|
|
|
mov32 r0, 1
|
|
|
- mov r1, 0xffffffff
|
|
|
- jsge r1, 0xffffffff, +1
|
|
|
+ mov r1, -1
|
|
|
+ jsge r1, -1, +1
|
|
|
mov32 r0, 2
|
|
|
exit").unwrap();
|
|
|
let mut vm = rbpf::EbpfVmNoData::new(&prog);
|
|
@@ -688,8 +688,8 @@ fn test_jit_jsge_imm() {
|
|
|
fn test_jit_jsge_reg() {
|
|
|
let prog = assemble("
|
|
|
mov32 r0, 0
|
|
|
- mov r1, 0xfffffffe
|
|
|
- mov r2, 0xffffffff
|
|
|
+ mov r1, -2
|
|
|
+ mov r2, -1
|
|
|
mov32 r3, 0
|
|
|
jsge r1, r2, +5
|
|
|
jsge r1, r3, +4
|
|
@@ -707,11 +707,11 @@ fn test_jit_jsge_reg() {
|
|
|
fn test_jit_jsgt_imm() {
|
|
|
let prog = assemble("
|
|
|
mov32 r0, 0
|
|
|
- mov r1, 0xfffffffe
|
|
|
- jsgt r1, 0xffffffff, +4
|
|
|
+ mov r1, -2
|
|
|
+ jsgt r1, -1, +4
|
|
|
mov32 r0, 1
|
|
|
mov32 r1, 0
|
|
|
- jsgt r1, 0xffffffff, +1
|
|
|
+ jsgt r1, -1, +1
|
|
|
mov32 r0, 2
|
|
|
exit").unwrap();
|
|
|
let mut vm = rbpf::EbpfVmNoData::new(&prog);
|
|
@@ -723,8 +723,8 @@ fn test_jit_jsgt_imm() {
|
|
|
fn test_jit_jsgt_reg() {
|
|
|
let prog = assemble("
|
|
|
mov32 r0, 0
|
|
|
- mov r1, 0xfffffffe
|
|
|
- mov r2, 0xffffffff
|
|
|
+ mov r1, -2
|
|
|
+ mov r2, -1
|
|
|
jsgt r1, r2, +4
|
|
|
mov32 r0, 1
|
|
|
mov32 r1, 0
|
|
@@ -1092,7 +1092,7 @@ fn test_jit_mod32() {
|
|
|
#[test]
|
|
|
fn test_jit_mod64() {
|
|
|
let prog = assemble("
|
|
|
- mov32 r0, 0xb1858436
|
|
|
+ mov32 r0, -1316649930
|
|
|
lsh r0, 32
|
|
|
or r0, 0x100dc5c8
|
|
|
mov32 r1, 0xdde263e
|
|
@@ -1185,7 +1185,7 @@ fn test_jit_mul_loop() {
|
|
|
jeq r1, 0x0, +4
|
|
|
mov r0, 0x7
|
|
|
mul r0, 0x7
|
|
|
- add r1, 0xffffffff
|
|
|
+ add r1, -1
|
|
|
jne r1, 0x0, -3
|
|
|
exit").unwrap();
|
|
|
let mut vm = rbpf::EbpfVmNoData::new(&prog);
|
|
@@ -1360,7 +1360,7 @@ fn test_jit_string_stack() {
|
|
|
mov r1, 0x79636261
|
|
|
stxw [r10-16], r1
|
|
|
mov r1, r10
|
|
|
- add r1, 0xfffffff8
|
|
|
+ add r1, -8
|
|
|
mov r2, r1
|
|
|
call 0x4
|
|
|
mov r1, r0
|
|
@@ -1369,9 +1369,9 @@ fn test_jit_string_stack() {
|
|
|
rsh r1, 0x20
|
|
|
jne r1, 0x0, +11
|
|
|
mov r1, r10
|
|
|
- add r1, 0xfffffff8
|
|
|
+ add r1, -8
|
|
|
mov r2, r10
|
|
|
- add r2, 0xfffffff0
|
|
|
+ add r2, -16
|
|
|
call 0x4
|
|
|
mov r1, r0
|
|
|
lsh r1, 0x20
|
|
@@ -1500,7 +1500,7 @@ fn test_jit_stxb_chain() {
|
|
|
#[test]
|
|
|
fn test_jit_stxdw() {
|
|
|
let prog = assemble("
|
|
|
- mov r2, 0x88776655
|
|
|
+ mov r2, -2005440939
|
|
|
lsh r2, 32
|
|
|
or r2, 0x44332211
|
|
|
stxdw [r1+2], r2
|