#!/bin/bash | |
# This script generates an assembly function that jumps over blocks of size | |
# determined by its first argument. Number of such blocks is determined | |
# by the second argument. | |
PAGE_SIZE=$(( $1 )) | |
TLB_ENTRY_CNT=$(( $2 )) | |
function instruction_block { | |
for (( c=0; c < PAGE_SIZE ; c++ )) ; do | |
echo ' "nop\n\t"' | |
done | |
} | |
echo 'void iTLB_bechmark_function() {' | |
echo ' __asm__ (' | |
for (( i=0; i < TLB_ENTRY_CNT; i++ )) ; do | |
echo ' "1:jmp 1f\n\t"' | |
instruction_block | |
done | |
echo ' "1:nop\n\t"' | |
echo ' );' | |
echo '}' |