Added alignment option
This commit is contained in:
parent
c18b91c70e
commit
f88932e368
|
@ -17,7 +17,6 @@ Changes
|
||||||
+ Forced alignment at the start of a page to prevent crossing cache line boundaries
|
+ Forced alignment at the start of a page to prevent crossing cache line boundaries
|
||||||
+ Simplifying instruction decode
|
+ Simplifying instruction decode
|
||||||
- Minimize compiled code size to reduce pressure on L1i cache
|
- Minimize compiled code size to reduce pressure on L1i cache
|
||||||
- Sound is no longer emulated during skip frames
|
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
=========
|
=========
|
||||||
|
|
|
@ -5,8 +5,7 @@ project('quickerNES','c','cpp',
|
||||||
)
|
)
|
||||||
|
|
||||||
# Getting page alignment
|
# Getting page alignment
|
||||||
getConfCommand = run_command('getconf', 'PAGESIZE', check: true)
|
pageSize = get_option('CPUFunctionAlignment')
|
||||||
pageSize = getConfCommand.stdout().strip()
|
|
||||||
|
|
||||||
# quickerNES Core sources
|
# quickerNES Core sources
|
||||||
|
|
||||||
|
@ -45,7 +44,7 @@ quickerNESCoreSrc = [
|
||||||
# quickerNES Core Configuration
|
# quickerNES Core Configuration
|
||||||
|
|
||||||
quickerNESCoreDependency = declare_dependency(
|
quickerNESCoreDependency = declare_dependency(
|
||||||
compile_args : [ '-Wfatal-errors', '-Wall', '-Werror', '-Wno-multichar', '-D_PAGE_SIZE="' + pageSize + '"'],
|
compile_args : [ '-Wfatal-errors', '-Wall', '-Werror', '-Wno-multichar', '-D_PAGE_SIZE="' + pageSize.to_string() + '"'],
|
||||||
include_directories : include_directories(['source', 'source/core', 'extern']),
|
include_directories : include_directories(['source', 'source/core', 'extern']),
|
||||||
sources : [ quickerNESCoreSrc, 'extern/metrohash128/metrohash128.cpp' ]
|
sources : [ quickerNESCoreSrc, 'extern/metrohash128/metrohash128.cpp' ]
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,3 +4,13 @@ option('buildTests',
|
||||||
description : 'Build test suite',
|
description : 'Build test suite',
|
||||||
yield: true
|
yield: true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
option('CPUFunctionAlignment',
|
||||||
|
type : 'integer',
|
||||||
|
min : 1,
|
||||||
|
value : 4096,
|
||||||
|
description : '''Indicates the alignment for the main emulator CPU function.
|
||||||
|
This is a large function that may cross page boundaries, which impacts performance.
|
||||||
|
We recommend setting this value for the architecture own page size.
|
||||||
|
This requires the GNU compiler to work.'''
|
||||||
|
)
|
Loading…
Reference in New Issue