A reference to a block of memory which contains a complete program. More...
#include <juce_LittleFootRunner.h>

Public Member Functions | |
| Program (const void *data, uint32 totalMemorySize) noexcept | |
| uint16 | calculateChecksum () const noexcept |
| bool | checksumMatches () const noexcept |
| void | dumpAllFunctions (juce::OutputStream &out) const |
| Calls dumpFunctionDisassembly() for all functions. More... | |
| void | dumpFunctionDisassembly (juce::OutputStream &out, uint32 functionIndex) const |
| Prints the assembly code for a given function. More... | |
| const uint8 * | getFunctionEndAddress (uint32 functionIndex) const noexcept |
| FunctionID | getFunctionID (uint32 functionIndex) const noexcept |
| const uint8 * | getFunctionStartAddress (uint32 functionIndex) const noexcept |
| uint16 | getHeapSizeBytes () const noexcept |
| Returns the number of bytes of heap space the program needs. More... | |
| uint32 | getNumFunctions () const noexcept |
| uint16 | getNumGlobals () const noexcept |
| Returns the number of global variables the program uses. More... | |
| juce::String | getOpDisassembly (const uint8 *&prog) const |
| uint32 | getProgramSize () const noexcept |
| uint16 | getStoredChecksum () const noexcept |
| uint32 | getTotalSpaceNeeded () const noexcept |
Static Public Member Functions | |
| static int32 | floatToInt (float value) noexcept |
| static uint8 | getNumExtraBytesForOpcode (OpCode op) noexcept |
| For a given op code, this returns the number of program bytes that follow it. More... | |
| static float | intToFloat (int32 value) noexcept |
| static int16 | readInt16 (const uint8 *d) noexcept |
| static int32 | readInt32 (const uint8 *d) noexcept |
| static void | writeInt16 (uint8 *d, int16 v) noexcept |
| static void | writeInt32 (uint8 *d, int32 v) noexcept |
Public Attributes | |
| const uint32 | maxProgramSize |
| const uint8 * | programStart = nullptr |
Static Public Attributes | |
| static constexpr uint32 | programHeaderSize = 10 |
Private Member Functions | |
| const uint8 * | getFunctionEntry (uint32 index) const noexcept |
Static Private Member Functions | |
| static void | copyFloatMem (void *dest, const void *src) noexcept |
A reference to a block of memory which contains a complete program.
Data format: 2 bytes - program checksum 2 bytes - program size 2 bytes - num functions 2 bytes - num globals 2 bytes - amount of heap space needed (bytes) 2 bytes - ID of function 1 2 bytes - byte offset of function 1 code 2 bytes - ID of function 2 2 bytes - byte offset of function 2 code etc.. ...function code...
{Blocks}
|
inlinenoexcept |
References jassert.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinestaticprivatenoexcept |
|
inline |
Calls dumpFunctionDisassembly() for all functions.
References DBG.
Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::reinitialiseProgramLayoutIfProgramHasChanged().
|
inline |
Prints the assembly code for a given function.
References int(), juce::newLine, and juce::String::toHexString().
Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::binaryOp(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::int32ToFloat(), and littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::pushArguments().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Returns the number of bytes of heap space the program needs.
Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::reinitialiseProgramLayoutIfProgramHasChanged().
For a given op code, this returns the number of program bytes that follow it.
References jassertfalse, littlefoot::LITTLEFOOT_OP, LITTLEFOOT_OP_INT16, LITTLEFOOT_OP_INT32, LITTLEFOOT_OP_INT8, and LITTLEFOOT_OPCODES.
|
inlinenoexcept |
|
inlinenoexcept |
Returns the number of global variables the program uses.
Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::reinitialiseProgramLayoutIfProgramHasChanged().
|
inline |
References littlefoot::LITTLEFOOT_OP, LITTLEFOOT_OP_INT16, LITTLEFOOT_OP_INT32, LITTLEFOOT_OP_INT8, LITTLEFOOT_OPCODES, juce::String::paddedLeft(), and juce::String::toHexString().
Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::dumpDebugTrace().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::binaryOp(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::floatToInt32(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::testGE_float(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::testGT_float(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::testLE_float(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::testLT_float(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::testNZ_float(), and littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::testZE_float().
| const uint32 littlefoot::Program::maxProgramSize |
|
static |
| const uint8* littlefoot::Program::programStart = nullptr |