mirror of
https://github.com/italicsjenga/agb.git
synced 2024-12-27 18:21:34 +11:00
38 lines
820 B
C
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
|