Skip to content
This repository was archived by the owner on Jan 10, 2025. It is now read-only.

Commit f6fa3a3

Browse files
committed
Use FunctionRegistry in BuiltinProgram too.
1 parent eea5748 commit f6fa3a3

21 files changed

+185
-178
lines changed

benches/elf_loader.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,23 @@ extern crate test;
1111
extern crate test_utils;
1212

1313
use solana_rbpf::{
14-
elf::Executable,
14+
elf::{Executable, FunctionRegistry},
1515
syscalls::bpf_syscall_u64,
1616
verifier::TautologyVerifier,
17-
vm::{BuiltinProgram, Config, TestContextObject},
17+
vm::{BuiltinFunction, BuiltinProgram, Config, TestContextObject},
1818
};
1919
use std::{fs::File, io::Read, sync::Arc};
2020
use test::Bencher;
2121

2222
fn loader() -> Arc<BuiltinProgram<TestContextObject>> {
23-
let mut loader = BuiltinProgram::new_loader(Config::default());
24-
loader
25-
.register_function(b"log_64", bpf_syscall_u64)
23+
let mut function_registry = FunctionRegistry::<BuiltinFunction<TestContextObject>>::default();
24+
function_registry
25+
.register_function_hashed(b"log_64", bpf_syscall_u64)
2626
.unwrap();
27-
Arc::new(loader)
27+
Arc::new(BuiltinProgram::new_loader(
28+
Config::default(),
29+
function_registry,
30+
))
2831
}
2932

3033
#[bench]

benches/jit_compile.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ extern crate test;
1212
use solana_rbpf::{
1313
elf::Executable,
1414
verifier::{RequisiteVerifier, TautologyVerifier},
15-
vm::{BuiltinProgram, Config, TestContextObject},
15+
vm::{BuiltinProgram, TestContextObject},
1616
};
1717
use std::{fs::File, io::Read, sync::Arc};
1818
use test::Bencher;
@@ -25,7 +25,7 @@ fn bench_init_vm(bencher: &mut Bencher) {
2525
file.read_to_end(&mut elf).unwrap();
2626
let executable = Executable::<TautologyVerifier, TestContextObject>::from_elf(
2727
&elf,
28-
Arc::new(BuiltinProgram::new_loader(Config::default())),
28+
Arc::new(BuiltinProgram::new_mock()),
2929
)
3030
.unwrap();
3131
let verified_executable =
@@ -52,7 +52,7 @@ fn bench_jit_compile(bencher: &mut Bencher) {
5252
file.read_to_end(&mut elf).unwrap();
5353
let executable = Executable::<TautologyVerifier, TestContextObject>::from_elf(
5454
&elf,
55-
Arc::new(BuiltinProgram::new_loader(Config::default())),
55+
Arc::new(BuiltinProgram::new_mock()),
5656
)
5757
.unwrap();
5858
let mut verified_executable =

benches/vm_execution.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ extern crate test;
1111

1212
use solana_rbpf::{
1313
ebpf,
14-
elf::Executable,
14+
elf::{Executable, FunctionRegistry},
1515
memory_region::MemoryRegion,
1616
verifier::{RequisiteVerifier, TautologyVerifier},
1717
vm::{BuiltinProgram, Config, TestContextObject},
@@ -27,7 +27,7 @@ fn bench_init_interpreter_execution(bencher: &mut Bencher) {
2727
file.read_to_end(&mut elf).unwrap();
2828
let executable = Executable::<TautologyVerifier, TestContextObject>::from_elf(
2929
&elf,
30-
Arc::new(BuiltinProgram::new_loader(Config::default())),
30+
Arc::new(BuiltinProgram::new_mock()),
3131
)
3232
.unwrap();
3333
let verified_executable =
@@ -56,7 +56,7 @@ fn bench_init_jit_execution(bencher: &mut Bencher) {
5656
file.read_to_end(&mut elf).unwrap();
5757
let executable = Executable::<TautologyVerifier, TestContextObject>::from_elf(
5858
&elf,
59-
Arc::new(BuiltinProgram::new_loader(Config::default())),
59+
Arc::new(BuiltinProgram::new_mock()),
6060
)
6161
.unwrap();
6262
let mut verified_executable =
@@ -88,7 +88,10 @@ fn bench_jit_vs_interpreter(
8888
) {
8989
let executable = solana_rbpf::assembler::assemble::<TestContextObject>(
9090
assembly,
91-
Arc::new(BuiltinProgram::new_loader(config)),
91+
Arc::new(BuiltinProgram::new_loader(
92+
config,
93+
FunctionRegistry::default(),
94+
)),
9295
)
9396
.unwrap();
9497
let mut verified_executable =

cli/src/main.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use solana_rbpf::{
33
aligned_memory::AlignedMemory,
44
assembler::assemble,
55
ebpf,
6-
elf::Executable,
6+
elf::{Executable, FunctionRegistry},
77
memory_region::{MemoryMapping, MemoryRegion},
88
static_analysis::Analysis,
99
verifier::{RequisiteVerifier, TautologyVerifier},
@@ -92,11 +92,15 @@ fn main() {
9292
)
9393
.get_matches();
9494

95-
let loader = Arc::new(BuiltinProgram::new_loader(Config {
96-
enable_instruction_tracing: matches.is_present("trace") || matches.is_present("profile"),
97-
enable_symbol_and_section_labels: true,
98-
..Config::default()
99-
}));
95+
let loader = Arc::new(BuiltinProgram::new_loader(
96+
Config {
97+
enable_instruction_tracing: matches.is_present("trace")
98+
|| matches.is_present("profile"),
99+
enable_symbol_and_section_labels: true,
100+
..Config::default()
101+
},
102+
FunctionRegistry::default(),
103+
));
100104
let executable = match matches.value_of("assembler") {
101105
Some(asm_file_name) => {
102106
let mut file = File::open(Path::new(asm_file_name)).unwrap();

examples/disassemble.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fn main() {
3131
0x00, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00,
3232
0x00, 0x00, 0x00, 0x00, 0x00,
3333
];
34-
let loader = Arc::new(BuiltinProgram::default());
34+
let loader = Arc::new(BuiltinProgram::new_mock());
3535
let executable = Executable::<TautologyVerifier, TestContextObject>::from_text_bytes(
3636
program,
3737
loader,

examples/to_json.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use std::sync::Arc;
3030
fn to_json(program: &[u8]) -> String {
3131
let executable = Executable::<TautologyVerifier, TestContextObject>::from_text_bytes(
3232
program,
33-
Arc::new(BuiltinProgram::default()),
33+
Arc::new(BuiltinProgram::new_mock()),
3434
SBPFVersion::V2,
3535
FunctionRegistry::default(),
3636
)

fuzz/fuzz_targets/dumb.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ fuzz_target!(|data: DumbFuzzData| {
3535
let mut mem = data.mem;
3636
let executable = Executable::<TautologyVerifier, TestContextObject>::from_text_bytes(
3737
&prog,
38-
std::sync::Arc::new(BuiltinProgram::new_loader(config)),
38+
std::sync::Arc::new(BuiltinProgram::new_loader(config, FunctionRegistry::default())),
3939
SBPFVersion::V2,
4040
function_registry,
4141
)

fuzz/fuzz_targets/smart.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ fuzz_target!(|data: FuzzData| {
3939
let mut mem = data.mem;
4040
let executable = Executable::<TautologyVerifier, TestContextObject>::from_text_bytes(
4141
prog.into_bytes(),
42-
std::sync::Arc::new(BuiltinProgram::new_loader(config)),
42+
std::sync::Arc::new(BuiltinProgram::new_loader(config, FunctionRegistry::default())),
4343
SBPFVersion::V2,
4444
function_registry,
4545
)

fuzz/fuzz_targets/smart_jit_diff.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ fuzz_target!(|data: FuzzData| {
4747
let mut jit_mem = data.mem;
4848
let mut executable = Executable::<TautologyVerifier, TestContextObject>::from_text_bytes(
4949
prog.into_bytes(),
50-
std::sync::Arc::new(BuiltinProgram::new_loader(config)),
50+
std::sync::Arc::new(BuiltinProgram::new_loader(config, FunctionRegistry::default())),
5151
SBPFVersion::V2,
5252
function_registry,
5353
)

fuzz/fuzz_targets/smarter_jit_diff.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ fuzz_target!(|data: FuzzData| {
4646
let mut jit_mem = data.mem;
4747
let mut executable = Executable::<TautologyVerifier, TestContextObject>::from_text_bytes(
4848
prog.into_bytes(),
49-
std::sync::Arc::new(BuiltinProgram::new_loader(config)),
49+
std::sync::Arc::new(BuiltinProgram::new_loader(config, FunctionRegistry::default())),
5050
SBPFVersion::V2,
5151
function_registry,
5252
)

0 commit comments

Comments
 (0)