agb/mgba-test-runner/c/include/mgba/internal/arm/decoder-inlines.h
2021-04-19 22:47:43 +01:00

38 lines
820 B
C

/* Copyright (c) 2013-2014 Jeffrey Pfau
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef ARM_DECODER_INLINES_H
#define ARM_DECODER_INLINES_H
#include "decoder.h"
#include "arm.h"
#include <stdio.h>
#include <string.h>
#define LOAD_CYCLES \
info->iCycles = 1; \
info->nDataCycles = 1;
#define STORE_CYCLES \
info->sInstructionCycles = 0; \
info->nInstructionCycles = 1; \
info->nDataCycles = 1;
static inline bool ARMInstructionIsBranch(enum ARMMnemonic mnemonic) {
switch (mnemonic) {
case ARM_MN_B:
case ARM_MN_BL:
case ARM_MN_BX:
// TODO: case: ARM_MN_BLX:
return true;
default:
return false;
}
}
#endif