Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/eigenform/perfect
/ functions
Functions
580 in github.com/eigenform/perfect
⨍
Functions
580
◇
Types & classes
167
Method
default_zen2
()
perfect/src/harness/config.rs:102
Method
default_zen3
()
perfect/src/harness/config.rs:120
Method
desc
(&self)
perfect/src/experiments.rs:41
Function
disas
( buf: &ExecutableBuffer, offset: AssemblyOffset, max_inst: Option<usize>, )
perfect/src/util.rs:423
Method
disas
Print disassembly for the entire harness.
perfect/src/harness.rs:126
Method
drop
(&mut self)
perfect/src/asm.rs:401
Method
dump_gpr
(mut self, x: bool)
perfect/src/harness/config.rs:174
Method
dynamic_label
(&mut self, id: DynamicLabel)
perfect/src/asm.rs:464
Method
dynamic_relocation
(&mut self, id: DynamicLabel, target_offset: isize, field_offset: u8, ref_offset: u8, kind:
perfect/src/asm.rs:484
Method
efl
(&self)
perfect/src/harness/signal.rs:51
Method
emit
(&self, f: &mut X64Assembler)
perfect/src/ir.rs:184
Method
emit
( opts: MispredictedReturnOptions<I>, input: I, user_fn: fn(&mut X64Assembler, I),
perfect/src/experiments/template.rs:381
Method
emit
Create a [PerfectHarness] using this configuration.
perfect/src/harness/config.rs:233
Method
emit_add_r64_imm
(&mut self, dst: u8, imm: i32)
perfect/src/asm.rs:619
Method
emit_add_r64_r64
(&mut self, dst: u8, src: u8)
perfect/src/asm.rs:592
Method
emit_and_r64_imm
(&mut self, dst: u8, imm: i32)
perfect/src/asm.rs:625
Method
emit_and_r64_r64
(&mut self, dst: u8, src: u8)
perfect/src/asm.rs:598
Method
emit_aperf_nofence_end
(&mut self, scratch: u8, result: u8)
perfect/src/asm.rs:762
Method
emit_aperf_nofence_start
(&mut self, scratch: u8)
perfect/src/asm.rs:754
Method
emit_attacker
Emit the 'attacker' function.
perfect-zen2/src/bin/flush-reload.rs:189
Method
emit_attacker_target
Emit the "attacker" target function.
perfect-zen2/src/bin/btb.rs:293
Method
emit_body
(f: &mut X64Assembler, i: usize)
perfect-tremont/src/bin/rename.rs:9
Method
emit_call_indirect
(&mut self, reg: u8)
perfect/src/asm.rs:639
Method
emit_call_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:663
Method
emit_clflush_base
(&mut self, base: u8)
perfect/src/asm.rs:561
Method
emit_clflush_base_imm
(&mut self, base: u8, imm: i32)
perfect/src/asm.rs:564
Method
emit_cmp_r64_imm
(&mut self, dst: u8, imm: i32)
perfect/src/asm.rs:616
Method
emit_dec_r64
(&mut self, dst: u8)
perfect/src/asm.rs:608
Method
emit_dis_pad_i1f4
(&mut self)
perfect/src/asm.rs:700
Method
emit_dis_pad_i5
(&mut self)
perfect/src/asm.rs:697
Method
emit_div
Emitter measuring a DIV instruction
perfect-zen3/src/bin/div.rs:181
Method
emit_floor
Emitter measuring the APERF floor
perfect-zen3/src/bin/div.rs:202
Method
emit_gadget_conditional_direct
(f: &mut X64Assembler)
perfect-zen2/src/bin/zenbleed.rs:436
Method
emit_gadget_indirect
( f: &mut X64Assembler, opts: MispredictedReturnOptions<I>, input: I, user_fn:
perfect/src/experiments/template.rs:194
Method
emit_gadget_ret
( f: &mut X64Assembler, opts: MispredictedReturnOptions<I>, input: I, user_fn:
perfect/src/experiments/template.rs:278
Method
emit_gadget_sls_direct
(f: &mut X64Assembler)
perfect-zen2/src/bin/zenbleed.rs:408
Method
emit_gadget_sls_indirect
(f: &mut X64Assembler)
perfect-zen2/src/bin/zenbleed.rs:373
Method
emit_handler
Emit a signal handler (used for catching exceptions).
perfect/src/harness.rs:131
Method
emit_imm
Emit the test [with immediate addressing]
perfect-zen2/src/bin/stlf.rs:168
Method
emit_inc_r64
(&mut self, dst: u8)
perfect/src/asm.rs:611
Method
emit_indir_brn
Emit some kind of indirect branch at virtual address `addr`. NOTE: We're using this to emit both the victim/attacker branches.
perfect-zen2/src/bin/btb.rs:215
Method
emit_instr
(f: &mut X64Assembler, input: [u8; S])
perfect-zen2/src/bin/specdec.rs:151
Method
emit_je_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:645
Method
emit_je_nopad
(brn_addr: usize, tgt_addr: usize)
perfect/src/experiments/branch.rs:109
Method
emit_jge_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:657
Method
emit_jle_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:660
Method
emit_jmp_indirect
(&mut self, reg: u8)
perfect/src/asm.rs:636
Method
emit_jmp_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:642
Method
emit_jmp_rel32
(&mut self, tgt: usize)
perfect/src/asm.rs:388
Method
emit_jmp_sled
(&mut self, n: usize)
perfect/src/asm.rs:687
Method
emit_jne_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:648
Method
emit_jnz_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:654
Method
emit_jz_label
(&mut self, lab: DynamicLabel)
perfect/src/asm.rs:651
Method
emit_lea_r64_label
(&mut self, dst: u8, lab: DynamicLabel)
perfect/src/asm.rs:667
Method
emit_leak_probe_1
Fill the vector PRF with probe values. Notes ===== These notes are from experiments with the following parameters: - No SMT, booting with 'isolcpus=
perfect-zen2/src/bin/zenbleed.rs:265
Method
emit_leak_spec_rax
Speculatively leak RAX into the vector PRF. > *This place is not a place of honor.* \ > *No highly esteemed deed is commemorated here.* \ > *What is
perfect-zen2/src/bin/zenbleed.rs:298
Method
emit_load_r64_base
(&mut self, dst: u8, base: u8)
perfect/src/asm.rs:569
Method
emit_load_r64_base_imm
(&mut self, dst: u8, base: u8, imm: i32)
perfect/src/asm.rs:572
Method
emit_measure
Emit the tested loop. When calling emitted code, be aware that: - RSI the number of loop iterations - RDI is a pointer to an array for storing measu
perfect-zen2/src/bin/opcache.rs:136
Method
emit_measure
Emit the experiment. Input arguments to this function during runtime are: - `RDI`, virtual address A - `RSI`, virtual address B
perfect-zen2/src/bin/dcache.rs:347
Method
emit_measure
Emit the function used to measure the colliding load.
perfect-zen3/src/bin/collide-probe.rs:229
Method
emit_measure_floor
()
perfect-zen3/src/bin/collide-probe.rs:239
Method
emit_mfence
(&mut self)
perfect/src/asm.rs:559
Method
emit_mov_r64_i32
(&mut self, dst: u8, imm: i32)
perfect/src/asm.rs:585
Method
emit_mov_r64_i64
(&mut self, dst: u8, qword: i64)
perfect/src/asm.rs:588
Method
emit_mov_r64_r64
(&mut self, dst: u8, src: u8)
perfect/src/asm.rs:582
Method
emit_or_r64_imm
(&mut self, dst: u8, imm: i32)
perfect/src/asm.rs:628
Method
emit_or_r64_r64
(&mut self, dst: u8, src: u8)
perfect/src/asm.rs:601
Method
emit_probe
Emit the code we want to measure with the PMCs
perfect-zen2/src/bin/prefetch.rs:108
Method
emit_probe
Emit the code used to measure the PREFETCH instruction. The emitted function takes the target virtual address in RDI and returns the difference betwe
perfect-zen2/src/bin/entrybleed.rs:132
Method
emit_probe
Emit a gadget for timing a single load with RDTSC (which returns the observed value in RAX).
perfect-zen2/src/bin/flush-reload.rs:60
Method
emit_random_instr
(f: &mut X64Assembler, input: [u8; SIZE])
perfect-zen2/src/bin/specdec.rs:44
Method
emit_rdpmc_end64
(&mut self, counter: i32, scratch: u8, result: u8)
perfect/src/asm.rs:844
Method
emit_rdpmc_start64
(&mut self, counter: i32, scratch: u8)
perfect/src/asm.rs:831
Method
emit_rdtsc_end
(&mut self, scratch: u8, result: u8)
perfect/src/asm.rs:717
Method
emit_rdtsc_start
(&mut self, scratch: u8)
perfect/src/asm.rs:704
Method
emit_reg
Emit the test [with base register addressing]
perfect-zen2/src/bin/stlf.rs:193
Method
emit_store_base_imm_r64
(&mut self, base: u8, imm: i32, src: u8)
perfect/src/asm.rs:578
Method
emit_store_base_r64
(&mut self, base: u8, src: u8)
perfect/src/asm.rs:575
Method
emit_sub_r64_imm
(&mut self, dst: u8, imm: i32)
perfect/src/asm.rs:622
Method
emit_sub_r64_r64
(&mut self, dst: u8, src: u8)
perfect/src/asm.rs:595
Method
emit_test
Emit the code for a particular test. FIXME: For now, the target locations are fixed. Although presumably, this doesn't actually matter here?
perfect-zen2/src/bin/btb.rs:316
Method
emit_trampoline
()
perfect-zen2/src/bin/bp.rs:163
Method
emit_victim
Emit the 'victim' function and the address of the victim's branch.
perfect-zen2/src/bin/flush-reload.rs:151
Method
emit_victim_target
Emit the "victim" target function.
perfect-zen2/src/bin/btb.rs:277
Method
emit_victim_v1
Variation 1. Two paths with different loads to different addresses
perfect-zen2/src/bin/flush-reload.rs:82
Method
emit_victim_v2
Variation 2. Two paths leading to the same load, but different addresses [depending on different registers]
perfect-zen2/src/bin/flush-reload.rs:108
Method
emit_victim_v3
Variation 3. Two paths leading to the same load, but different addresses [depending on another load eligible for renaming/forwarding]
perfect-zen2/src/bin/flush-reload.rs:128
Method
emit_xor_r64_r64
(&mut self, dst: u8, src: u8)
perfect/src/asm.rs:604
Method
enable_handler
(&mut self)
perfect/src/harness.rs:153
Method
err
(&self)
perfect/src/harness/signal.rs:54
Method
event_id
Return the PMC event ID associated with these results.
perfect/src/stats.rs:148
Method
event_mask
Return the PMC event mask associated with these results.
perfect/src/stats.rs:150
Method
exclusive
(&self)
perfect/src/util/pagemap.rs:10
Method
fd
Return the raw file descriptor.
perfect-zen3/src/lib.rs:37
Method
first_mut
(&mut self)
perfect/src/ir/branch.rs:88
Function
flush_btb
()
perfect/src/util.rs:534
Method
flush_btb
(mut self, x: usize)
perfect/src/harness/config.rs:214
Method
flush_cache
()
perfect-zen2/src/bin/opcache.rs:194
Method
flush_probe
()
perfect-zen2/src/bin/btb.rs:203
← previous
next →
201–300 of 580, ranked by callers