cogitARMv5.c

Created Diff never expires
cogitARMv5.c 0ab0a27 [GOOD]
cogitARMv5.c 968ed91 [BAD]
/* Automatically generated by
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.2482 uuid: 7df020b4-6565-4768-9e4a-75bc5464ed95
CCodeGenerator VMMaker.oscog-nice.2501 uuid: 0a0e26d0-bfc0-8746-ae54-69aaafc3e6c8
from
from
StackToRegisterMappingCogit VMMaker.oscog-eem.2482 uuid: 7df020b4-6565-4768-9e4a-75bc5464ed95
StackToRegisterMappingCogit VMMaker.oscog-nice.2501 uuid: 0a0e26d0-bfc0-8746-ae54-69aaafc3e6c8
*/
*/
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.2482 uuid: 7df020b4-6565-4768-9e4a-75bc5464ed95 " __DATE__ ;
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-nice.2501 uuid: 0a0e26d0-bfc0-8746-ae54-69aaafc3e6c8 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
char *__cogitBuildInfo = __buildInfo;






#include <stddef.h>
#include <stddef.h>
#include "sq.h"
#include "sq.h"
#include "sqCogStackAlignment.h"
#include "sqCogStackAlignment.h"
#include "dispdbg.h"
#include "dispdbg.h"
#include "cogmethod.h"
#include "cogmethod.h"
#if COGMTVM
#if COGMTVM
#include "cointerpmt.h"
#include "cointerpmt.h"
#else
#else
#include "cointerp.h"
#include "cointerp.h"
#endif
#endif
#include "cogit.h"
#include "cogit.h"




/*** Constants ***/
/*** Constants ***/
#define AddCqR 101
#define AddCqR 101
#define AddCwR 109
#define AddCwR 109
#define AddOpcode 4
#define AddOpcode 4
#define AddRdRd 120
#define AddRdRd 120
#define AddRR 95
#define AddRR 95
#define AL 14
#define AL 14
#define AlignmentNops 3
#define AlignmentNops 3
#define AltBlockCreationBytecodeSize 3
#define AltBlockCreationBytecodeSize 3
#define AltFirstSpecialSelector 96
#define AltFirstSpecialSelector 96
#define AltNumSpecialSelectors 32
#define AltNumSpecialSelectors 32
#define AndCqR 103
#define AndCqR 103
#define AndCqRR 118
#define AndCqRR 118
#define AndCwR 111
#define AndCwR 111
#define AndOpcode 0
#define AndOpcode 0
#define AndRR 97
#define AndRR 97
#define AnnotationShift 5
#define AnnotationShift 5
#define Arg0Reg 3
#define Arg0Reg 3
#define Arg1Reg 4
#define Arg1Reg 4
#define ArithmeticShiftRightCqR 86
#define ArithmeticShiftRightCqR 86
#define ArithmeticShiftRightRR 87
#define ArithmeticShiftRightRR 87
#define BadRegisterSet 1
#define BadRegisterSet 1
#define BicOpcode 14
#define BicOpcode 14
#define BlockCreationBytecodeSize 4
#define BlockCreationBytecodeSize 4
#define BytecodeSetHasDirectedSuperSend 1
#define BytecodeSetHasDirectedSuperSend 1
#define CArg0Reg 0
#define CArg0Reg 0
#define CArg1Reg 1
#define CArg1Reg 1
#define CArg2Reg 2
#define CArg2Reg 2
#define CArg3Reg 3
#define CArg3Reg 3
#define Call 6
#define Call 6
#define CallerSavedRegisterMask 0x120C
#define CallerSavedRegisterMask 0x120C
#define CallFull 7
#define CallFull 7
#define CC 3
#define CC 3
#if !defined(CheckRememberedInTrampoline) /* Allow this to be overridden on the compiler command line */
#if !defined(CheckRememberedInTrampoline) /* Allow this to be overridden on the compiler command line */
# define CheckRememberedInTrampoline 0
# define CheckRememberedInTrampoline 0
#endif
#endif
#define ClassArray 7
#define ClassArray 7
#define ClassArrayCompactIndex 51
#define ClassArrayCompactIndex 51
#define ClassBlockClosureCompactIndex 37
#define ClassBlockClosureCompactIndex 37
#define ClassFloatCompactIndex 34
#define ClassFloatCompactIndex 34
#define ClassFullBlockClosureCompactIndex 38
#define ClassFullBlockClosureCompactIndex 38
#define ClassLargePositiveIntegerCompactIndex 33
#define ClassLargePositiveIntegerCompactIndex 33
#define ClassMethodContextCompactIndex 36
#define ClassMethodContextCompactIndex 36
#define ClassReg 2
#define ClassReg 2
#define ClosureFirstCopiedValueIndex 3
#define ClosureFirstCopiedValueIndex 3
#define ClosureIndex 4
#define ClosureIndex 4
#define ClosureNumArgsIndex 2
#define ClosureNumArgsIndex 2
#define ClosureOuterContextIndex 0
#define ClosureOuterContextIndex 0
#define ClosureStartPCIndex 1
#define ClosureStartPCIndex 1
#define CMBlock 3
#define CMBlock 3
#define CMClosedPIC 4
#define CMClosedPIC 4
#define CMFree 1
#define CMFree 1
#define CMMaxUsageCount 7
#define CMMaxUsageCount 7
#define CMMethod 2
#define CMMethod 2
#define CMOpenPIC 5
#define CMOpenPIC 5
#define CMPSMULL 152
#define CMPSMULL 152
#define CmpC32R 108
#define CmpC32R 108
#define CmpCqR 100
#define CmpCqR 100
#define CmpCwR 107
#define CmpCwR 107
#define CmpNotOpcode 11
#define CmpNotOpcode 11
#define CmpOpcode 10
#define CmpOpcode 10
#define CmpRdRd 119
#define CmpRdRd 119
#define CmpRR 94
#define CmpRR 94
#define CompletePrimitive 4
#define CompletePrimitive 4
#define ConcreteIPReg 12
#define ConcreteIPReg 12
#define ConcreteVarBaseReg 10
#define ConcreteVarBaseReg 10
#define ConstZero 1
#define ConstZero 1
#define ConvertRRd 133
#define ConvertRRd 133
#define CS 2
#define CS 2
#define Debug DEBUGVM
#define Debug DEBUGVM
#define DisplacementMask 0x1F
#define DisplacementMask 0x1F
#define DisplacementX2N 0
#define DisplacementX2N 0
#define DivRdRd 123
#define DivRdRd 123
#define DPFPReg0 0
#define DPFPReg0 0
#define DPFPReg1 1
#define DPFPReg1 1
#define DPFPReg2 2
#define DPFPReg2 2
#define DPFPReg3 3
#define DPFPReg3 3
#define DPFPReg4 4
#define DPFPReg4 4
#define DPFPReg5 5
#define DPFPReg5 5
#define DPFPReg6 6
#define DPFPReg6 6
#define DPFPReg7 7
#define DPFPReg7 7
#define EncounteredUnknownBytecode -6
#define EncounteredUnknownBytecode -6
#define EQ 0
#define EQ 0
#define Extra0Reg 7
#define Extra0Reg 7
#define Extra1Reg 8
#define Extra1Reg 8
#define Extra2Reg 9
#define Extra2Reg 9
#define Fill32 4
#define Fill32 4
#define FirstAnnotation 64
#define FirstAnnotation 64
#define FirstJump 12
#define FirstJump 12
#define FirstSpecialSelector 176
#define FirstSpecialSelector 176
#define FoxCallerSavedIP 4
#define FoxCallerSavedIP 4
#define FoxMethod -4
#define FoxMethod -4
#define FoxMFReceiver -12
#define FoxMFReceiver -12
#define FoxSavedFP 0
#define FoxSavedFP 0
#define FoxThisContext -8
#define FoxThisContext -8
#define FPReg 11
#define FPReg 11
#define FullClosureCompiledBlockIndex 1
#define FullClosureCompiledBlockIndex 1
#define FullClosureFirstCopiedValueIndex 4
#define FullClosureFirstCopiedValueIndex 4
#define FullClosureReceiverIndex 3
#define FullClosureReceiverIndex 3
#define GCModeBecome 8
#define GCModeBecome 8
#define GCModeFull 1
#define GCModeFull 1
#define GCModeNewSpace 2
#define GCModeNewSpace 2
#define GE 10
#define GE 10
#define GT 12
#define GT 12
#define HasBytecodePC 5
#define HasBytecodePC 5
#define HashMultiplyConstant 1664525
#define HashMultiplyConstant 1664525
#define HashMultiplyMask 0xFFFFFFF
#define HashMultiplyMask 0xFFFFFFF
#define HeaderIndex 0
#define HeaderIndex 0
#define HI 8
#define HI 8
#if !defined(IMMUTABILITY) /* Allow this to be overridden on the compiler command line */
#if !defined(IMMUTABILITY) /* Allow this to be overridden on the compiler command line */
# define IMMUTABILITY 1
# define IMMUTABILITY 1
#endif
#endif
#define InFullBlock 2
#define InFullBlock 2
#define InstanceSpecificationIndex 2
#define InstanceSpecificationIndex 2
#define InstructionPointerIndex 1
#define InstructionPointerIndex 1
#define InsufficientCodeSpace -2
#define InsufficientCodeSpace -2
#define InVanillaBlock 1
#define InVanillaBlock 1
#define IsAbsPCReference 3
#define IsAbsPCReference 3
#define IsAnnotationExtension 1
#define IsAnnotationExtension 1
#define IsDirectedSuperBindingSend 10
#define IsDirectedSuperBindingSend 10
#define IsDirectedSuperSend 9
#define IsDirectedSuperSend 9
#define IsDisplacementX2N 0
#define IsDisplacementX2N 0
#define IsNSDynamicSuperSend null
#define IsNSDynamicSuperSend null
#define IsNSSelfSend null
#define IsNSSelfSend null
#define IsNSSendCall null
#define IsNSSendCall null
#define IsObjectReference 2
#define IsObjectReference 2
#define IsRelativeCall 4
#define IsRelativeCall 4
#define IsSendCall 7
#define IsSendCall 7
#define IsSuperSend 8
#define IsSuperSend 8
#define Jump 16
#define Jump 16
#define JumpAbove 31
#define JumpAbove 31
#define JumpAboveOrEqual 30
#define JumpAboveOrEqual 30
#define JumpBelow 29
#define JumpBelow 29
#define JumpBelowOrEqual 32
#define JumpBelowOrEqual 32
#define JumpCarry 23
#define JumpCarry 23
#define JumpFPEqual 33
#define JumpFPEqual 33
#define JumpFPGreater 37
#define JumpFPGreater 37
#define JumpFPGreaterOrEqual 38
#define JumpFPGreaterOrEqual 38
#define JumpFPLess 35
#define JumpFPLess 35
#define JumpFPLessOrEqual 36
#define JumpFPLessOrEqual 36
#define JumpFPNotEqual 34
#define JumpFPNotEqual 34
#define JumpFPOrdered 39
#define JumpFPOrdered 39
#define JumpFPUnordered 40
#define JumpFPUnordered 40
#define JumpFull 12
#define JumpFull 12
#define JumpGreater 27
#define JumpGreater 27
#define JumpGreaterOrEqual 26
#define JumpGreaterOrEqual 26
#define JumpLess 25
#define JumpLess 25
#define JumpLessOrEqual 28
#define JumpLessOrEqual 28
#define JumpLong 13
#define JumpLong 13
#define JumpLongNonZero 15
#define JumpLongNonZero 15
#define JumpLongZero 14
#define JumpLongZero 14
#define JumpNegative 19
#define JumpNegative 19
#define JumpNoCarry 24
#define JumpNoCarry 24
#define JumpNonNegative 20
#define JumpNonNegative 20
#define JumpNonZero 18
#define JumpNonZero 18
#define JumpNoOverflow 22
#define JumpNoOverflow 22
#define JumpOverflow 21
#define JumpOverflow 21
#define JumpR 10
#define JumpR 10
#define JumpZero 17
#define JumpZero 17
#define Label 1
#define Label 1
#define LargeContextSlots 62
#define LargeContextSlots 62
#define LastJump 40
#define LastJump 40
#define LE 13
#define LE 13
#define LinkReg 14
#define LinkReg 14
#define Literal 2
#define Literal 2
#define LiteralStart 1
#define LiteralStart 1
#define LoadEffectiveAddressMwrR 83
#define LoadEffectiveAddressMwrR 83
#define LogicalShiftLeftCqR 90
#define LogicalShiftLeftCqR 90
#define LogicalShiftLeftRR 91
#define LogicalShiftLeftRR 91
#define LogicalShiftRightCqR 88
#define LogicalShiftRightCqR 88
#define LogicalShiftRightRR 89
#define LogicalShiftRightRR 89
#define LowcodeVM 0
#define LowcodeVM 0
#define LR 14
#define LR 14
#define LS 9
#define LS 9
#define LT 11
#define LT 11
#define MapEnd 0
#define MapEnd 0
#define MaxCompiledPrimitiveIndex 222
#define MaxCompiledPrimitiveIndex 222
#define MaxCPICCases 6
#define MaxCPICCases 6
#define MaxMethodSize 65535
#define MaxMethodSize 65535
#define MaxNegativeErrorCode -8
#define MaxNegativeErrorCode -8
#define MaxNumArgs 15
#define MaxNumArgs 15
#define MaxStackAllocSize 1572864
#define MaxStackAllocSize 1572864
#define MaxStackCheckOffset 0xFFF
#define MaxStackCheckOffset 0xFFF
#define MaxX2NDisplacement 992
#define MaxX2NDisplacement 992
#define MethodCacheClass 2
#define MethodCacheClass 2
#define MethodCacheMask 0xFFC
#define MethodCacheMask 0xFFC
#define MethodCacheMethod 3
#define MethodCacheMethod 3
#define MethodCacheSelector 1
#define MethodCacheSelector 1
#define MethodIndex 3
#define MethodIndex 3
#define MethodTooBig -4
#define MethodTooBig -4
#define MFMethodFlagHasContextFlag 1
#define MFMethodFlagHasContextFlag 1
#define MFMethodFlagIsBlockFlag 2
#define MFMethodFlagIsBlockFlag 2
#define MI 4
#define MI 4
#define MoveAbR 46
#define MoveAbR 46
#define MoveAwR 42
#define MoveAwR 42
#define MoveC32R 69
#define MoveC32R 69
#define MoveCqR 67
#define MoveCqR 67
#define MoveCwR 68
#define MoveCwR 68
#define MoveM16rR 55
#define MoveM16rR 55
#define MoveM64rRd 73
#define MoveM64rRd 73
#define MoveMbrR 63
#define MoveMbrR 63
#define MoveMwrR 48
#define MoveMwrR 48
#define MoveNotOpcode 15
#define MoveNotOpcode 15
#define MoveOpcode 13
#define MoveOpcode 13
#define MoveRAb 47
#define MoveRAb 47
#define MoveRAw 44
#define MoveRAw 44
#define MoveRdM64r 74
#define MoveRdM64r 74
#define MoveRdRd 72
#define MoveRdRd 72
#define MoveRM16r 56
#define MoveRM16r 56
#define MoveRMbr 64
#define MoveRMbr 64
#define MoveRMwr 49
#define MoveRMwr 49
#define MoveRR 41
#define MoveRR 41
#define MoveRXbrR 66
#define MoveRXbrR 66
#define MoveRXwrR 51
#define MoveRXwrR 51
#define MoveXbrRR 65
#define MoveXbrRR 65
#define MoveXwrRR 50
#define MoveXwrRR 50
#define MSR 146
#define MSR 146
#define MULTIPLEBYTECODESETS 1
#define MULTIPLEBYTECODESETS 1
#define MulRdRd 122
#define MulRdRd 122
#define NE 1
#define NE 1
#define NeedsMergeFixupFlag 2
#define NeedsMergeFixupFlag 2
#define NeedsNonMergeFixupFlag 1
#define NeedsNonMergeFixupFlag 1
#define NegateR 84
#define NegateR 84
#define NewspeakVM 0
#define NewspeakVM 0
#define Nop 5
#define Nop 5
#define NoReg -1
#define NoReg -1
#define NotFullyInitialized -1
#define NotFullyInitialized -1
#define NumObjRefsInRuntime 0
#define NumObjRefsInRuntime 0
#define NumOopsPerNSC 6
#define NumOopsPerNSC 6
#define NumSendTrampolines 4
#define NumSendTrampolines 4
#define NumSpecialSelectors 32
#define NumSpecialSelectors 32
#define NumStoreTrampolines 5
#define NumStoreTrampolines 5
#define NumTrampolines 74
#define NumTrampolines 74
#define OrCqR 104
#define OrCqR 104
#define OrCwR 112
#define OrCwR 112
#define OrOpcode 12
#define OrOpcode 12
#define OrRR 98
#define OrRR 98
#define PC 15
#define PC 15
#define PCReg 15
#define PCReg 15
#define PL 5
#define PL 5
#define PopLDM 148
#define PopLDM 148
#define PopR 78
#define PopR 78
#define PrefetchAw 82
#define PrefetchAw 82
#define PrimCallCollectsProfileSamples 16
#define PrimCallCollectsProfileSamples 16
#define PrimCallDoNotJIT 64
#define PrimCallDoNotJIT 64
#define PrimCallMayCallBack 4
#define PrimCallMayCallBack 4
#define PrimCallNeedsNewMethod 1
#define PrimCallNeedsNewMethod 1
#define PrimCallNeedsPrimitiveFunction 2
#define PrimCallNeedsPrimitiveFunction 2
#define PrimCallOnSmalltalkStack 8
#define PrimCallOnSmalltalkStack 8
#define PrimErrNoMemory 9
#define PrimErrNoMemory 9
#define PrimErrWritePastObject 17
#define PrimErrWritePastObject 17
#define PushCq 80
#define PushCq 80
#define PushCw 81
#define PushCw 81
#define PushR 79
#define PushR 79
#define PushSTM 149
#define PushSTM 149
#define R0 0
#define R0 0
#define ReceiverIndex 5
#define ReceiverIndex 5
#define ReceiverResultReg 5
#define ReceiverResultReg 5
#define RetN 9
#define RetN 9
#define RISCTempReg 12
#define RISCTempReg 12
#define RsbOpcode 3
#define RsbOpcode 3
#define SelectorCannotInterpret 34
#define SelectorCannotInterpret 34
#define SelectorDoesNotUnderstand 20
#define SelectorDoesNotUnderstand 20
#define SenderIndex 0
#define SenderIndex 0
#define SendNumArgsReg 6
#define SendNumArgsReg 6
#define ShouldNotJIT -8
#define ShouldNotJIT -8
#define SignExtend16RR 140
#define SignExtend16RR 140
#define SignExtend8RR 139
#define SignExtend8RR 139
#define SistaV1BytecodeSet 1
#define SistaV1BytecodeSet 1
#define SistaVM 0
#define SistaVM 0
#define SMULL 145
#define SMULL 145
#define SmallContextSlots 22
#define SmallContextSlots 22
#define SP 13
#define SP 13
#define SPReg 13
#define SPReg 13
#define SPURVM 1
#define SPURVM 1
#define SqrtRd 124
#define SqrtRd 124
#define SSBaseOffset 1
#define SSBaseOffset 1
#define SSConstant 2
#define SSConstant 2
#define SSRegister 3
#define SSRegister 3
#define SSSpill 4
#define SSSpill 4
#define StackPointerIndex 2
#define StackPointerIndex 2
#define Stop 11
#define Stop 11
#define SubCqR 102
#define SubCqR 102
#define SubCwR 110
#define SubCwR 110
#define SubOpcode 2
#define SubOpcode 2
#define SubRdRd 121
#define SubRdRd 121
#define SubRR 96
#define SubRR 96
#define TempReg 0
#define TempReg 0
#define TempVectReadBarrier 0
#define TempVectReadBarrier 0
#define TstCqR 105
#define TstCqR 105
#define TstOpcode 8
#define TstOpcode 8
#define UnfailingPrimitive 3
#define UnfailingPrimitive 3
#define UnimplementedPrimitive -7
#define UnimplementedPrimitive -7
#define ValueIndex 1
#define ValueIndex 1
#define VarBaseReg 10
#define VarBaseReg 10
#define VC 7
#define VC 7
#define VS 6
#define VS 6
#define XorCqR 106
#define XorCqR 106
#define XorCwR 113
#define XorCwR 113
#define XorOpcode 1
#define XorOpcode 1
#define XorRR 99
#define XorRR 99
#define YoungSelectorInPIC -5
#define YoungSelectorInPIC -5


typedef struct _AbstractInstruction {
typedef struct _AbstractInstruction {
unsigned char opcode;
unsigned char opcode;
unsigned char machineCodeSize;
unsigned char machineCodeSize;
unsigned char maxSize;
unsigned char maxSize;
unsigned char annotation;
unsigned char annotation;
unsigned char conditionOrNil;
unsigned char conditionOrNil;
usqInt operands [3];
usqInt operands [3];
usqInt address;
usqInt address;
struct _AbstractInstruction *dependent;
struct _AbstractInstruction *dependent;
unsigned int machineCode [5];
unsigned int machineCode [5];
} AbstractInstruction;
} AbstractInstruction;


#define CogOutOfLineLiteralsARMCompiler AbstractInstruction
#define CogOutOfLineLiteralsARMCompiler AbstractInstruction
#define CogARMCompiler AbstractInstruction
#define CogARMCompiler AbstractInstruction
#define CogAbstractInstruction AbstractInstruction
#define CogAbstractInstruction AbstractInstruction




typedef struct {
typedef struct {
AbstractInstruction *fakeHeader;
AbstractInstruction *fakeHeader;
AbstractInstruction *fillInstruction;
AbstractInstruction *fillInstruction;
sqInt numArgs;
sqInt numArgs;
sqInt numCopied;
sqInt numCopied;
sqInt numInitialNils;
sqInt numInitialNils;
sqInt startpc;
sqInt startpc;
AbstractInstruction *entryLabel;
AbstractInstruction *entryLabel;
AbstractInstruction *stackCheckLabel;
AbstractInstruction *stackCheckLabel;
sqInt span;
sqInt span;
sqInt hasInstVarRef;
sqInt hasInstVarRef;
} BlockStart;
} BlockStart;


#define CogBlockStart BlockStart
#define CogBlockStart BlockStart




typedef struct _BytecodeDescriptor {
typedef struct _BytecodeDescriptor {
sqInt (*generator )(void);
sqInt (*generator )(void);
sqInt NoDbgRegParms (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
sqInt NoDbgRegParms (*spanFunction )(struct _BytecodeDescriptor *,sqInt,sqInt,sqInt);
sqInt NoDbgRegParms (*needsFrameFunction )(sqInt);
sqInt NoDbgRegParms (*needsFrameFunction )(sqInt);
signed char stackDelta;
signed char stackDelta;
unsigned char opcode;
unsigned char opcode;
unsigned char numBytes;
unsigned char numBytes;
unsigned isBranchTrue : 1;
unsigned isBranchTrue : 1;
unsigned isBranchFalse : 1;
unsigned isBranchFalse : 1;
unsigned isReturn : 1;
unsigned isReturn : 1;
unsigned isBlockCreation : 1;
unsigned isBlockCreation : 1;
unsigned isMapped : 1;
unsigned isMapped : 1;
unsigned isMappedInBlock : 1;
unsigned isMappedInBlock : 1;
unsigned isExtension : 1;
unsigned isExtension : 1;
unsigned isInstVarRef : 1;
unsigned isInstVarRef : 1;
unsigned is1ByteInstVarStore : 1;
unsigned is1ByteInstVarStore : 1;
unsigned hasUnsafeJump : 1;
unsigned hasUnsafeJump : 1;
} BytecodeDescriptor;
} BytecodeDescriptor;


#define CogBytecodeDescriptor BytecodeDescriptor
#define CogBytecodeDescriptor BytecodeDescriptor




typedef struct {
typedef struct {
sqInt (*primitiveGenerator )(void);
sqInt (*primitiveGenerator )(void);
sqInt primNumArgs;
sqInt primNumArgs;
} PrimitiveDescriptor;
} PrimitiveDescriptor;


#define CogPrimitiveDescriptor PrimitiveDescriptor
#define CogPrimitiveDescriptor PrimitiveDescriptor




typedef struct {
typedef struct {
char type;
char type;
char spilled;
char spilled;
signed char liveRegister;
signed char liveRegister;
signed char registerr;
signed char registerr;
sqInt offset;
sqInt offset;
sqInt constant;
sqInt constant;
sqInt bcptr;
sqInt bcptr;
} SimStackEntry;
} SimStackEntry;


#define CogSimStackEntry SimStackEntry
#define CogSimStackEntry SimStackEntry




typedef struct {
typedef struct {
AbstractInstruction *targetInstruction;
AbstractInstruction *targetInstruction;
unsigned char simStackPtr;
unsigned char simStackPtr;
char isTargetOfBackwardBranch;
char isTargetOfBackwardBranch;
unsigned short instructionIndex;
unsigned short instructionIndex;
#if LowcodeVM
#if LowcodeVM
short simNativeStackPtr;
short simNativeStackPtr;
unsigned short simNativeStackSize;
unsigned short simNativeStackSize;
#endif
#endif
} BytecodeFixup;
} BytecodeFixup;


#define CogSSBytecodeFixup BytecodeFixup
#define CogSSBytecodeFixup BytecodeFixup
#define CogBytecodeFixup BytecodeFixup
#define CogBytecodeFixup BytecodeFixup




typedef struct {
typedef struct {
sqInt isReceiverResultRegLive;
sqInt isReceiverResultRegLive;
CogSimStackEntry *ssEntry;
CogSimStackEntry *ssEntry;
} CogSSOptStatus;
} CogSSOptStatus;






/*** Function Prototypes ***/
/*** Function Prototypes ***/




#if !PRODUCTION && defined(PlatformNoDbgRegParms)
#if !PRODUCTION && defined(PlatformNoDbgRegParms)
# define NoDbgRegParms PlatformNoDbgRegParms
# define NoDbgRegParms PlatformNoDbgRegParms
#endif
#endif


#if !defined(NoDbgRegParms)
#if !defined(NoDbgRegParms)
# define NoDbgRegParms /*empty*/
# define NoDbgRegParms /*empty*/
#endif
#endif






#if !defined(NeverInline)
#if !defined(NeverInline)
# define NeverInline /*empty*/
# define NeverInline /*empty*/
#endif
#endif


static AbstractInstruction * NoDbgRegParms addDependent(AbstractInstruction * self_in_addDependent, AbstractInstruction *anInstruction);
static AbstractInstruction * NoDbgRegParms addDependent(AbstractInstruction * self_in_addDependent, AbstractInstruction *anInstruction);
static sqInt NoDbgRegParms availableFloatRegisterOrNoneFor(AbstractInstruction * self_in_availableFloatRegisterOrNoneFor, sqInt liveRegsMask);
static sqInt NoDbgRegParms availableFloatRegisterOrNoneFor(AbstractInstruction * self_in_availableFloatRegisterOrNoneFor, sqInt liveRegsMask);
static AbstractInstruction * NoDbgRegParms cloneLiteralFrom(AbstractInstruction * self_in_cloneLiteralFrom, AbstractInstruction *existingLiteral);
static AbstractInstruction * NoDbgRegParms cloneLiteralFrom(AbstractInstruction * self_in_cloneLiteralFrom, AbstractInstruction *existingLiteral);
static AbstractInstruction * NoDbgRegParms genSwapRRScratch(AbstractInstruction * self_in_genSwapRRScratch, sqInt regA, sqInt regB, sqInt regTmp);
static AbstractInstruction * NoDbgRegParms genSwapRRScratch(AbstractInstruction * self_in_genSwapRRScratch, sqInt regA, sqInt regB, sqInt regTmp);
static AbstractInstruction * NoDbgRegParms genWriteCResultIntoReg(AbstractInstruction * self_in_genWriteCResultIntoReg, sqInt abstractRegister);
static AbstractInstruction * NoDbgRegParms genWriteCResultIntoReg(AbstractInstruction * self_in_genWriteCResultIntoReg, sqInt abstractRegister);
static AbstractInstruction * NoDbgRegParms initializeSharableLiteral(AbstractInstruction * self_in_initializeSharableLiteral, sqInt literal);
static AbstractInstruction * NoDbgRegParms initializeSharableLiteral(AbstractInstruction * self_in_initializeSharableLiteral, sqInt literal);
static AbstractInstruction * NoDbgRegParms initializeUniqueLiteral(AbstractInstruction * self_in_initializeUniqueLiteral, sqInt literal);
static AbstractInstruction * NoDbgRegParms initializeUniqueLiteral(AbstractInstruction * self_in_initializeUniqueLiteral, sqInt literal);
static sqInt NoDbgRegParms isAnInstruction(AbstractInstruction * self_in_isAnInstruction, AbstractInstruction *addressOrInstruction);
static sqInt NoDbgRegParms isAnInstruction(AbstractInstruction * self_in_isAnInstruction, AbstractInstruction *addressOrInstruction);
static sqInt NoDbgRegParms isJump(AbstractInstruction * self_in_isJump);
static sqInt NoDbgRegParms isJump(AbstractInstruction * self_in_isJump);
static sqInt NoDbgRegParms isWithinMwOffsetRange(AbstractInstruction * self_in_isWithinMwOffsetRange, sqInt anAddress);
static sqInt NoDbgRegParms isWithinMwOffsetRange(AbstractInstruction * self_in_isWithinMwOffsetRange, sqInt anAddress);
static AbstractInstruction * NoDbgRegParms jmpTarget(AbstractInstruction * self_in_jmpTarget, AbstractInstruction *anAbstractInstruction);
static AbstractInstruction * NoDbgRegParms jmpTarget(AbstractInstruction * self_in_jmpTarget, AbstractInstruction *anAbstractInstruction);
static sqInt NoDbgRegParms literal32BeforeFollowingAddress(AbstractInstruction * self_in_literal32BeforeFollowingAddress, sqInt followingAddress);
static sqInt NoDbgRegParms literal32BeforeFollowingAddress(AbstractInstruction * self_in_literal32BeforeFollowingAddress, sqInt followingAddress);
static AbstractInstruction * NoDbgRegParms relocateJumpLongBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongBeforeFollowingAddressby, sqInt pc, sqInt delta);
static AbstractInstruction * NoDbgRegParms relocateJumpLongBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongBeforeFollowingAddressby, sqInt pc, sqInt delta);
static AbstractInstruction * NoDbgRegParms relocateJumpLongConditionalBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongConditionalBeforeFollowingAddressby, sqInt pc, sqInt delta);
static AbstractInstruction * NoDbgRegParms relocateJumpLongConditionalBeforeFollowingAddressby(AbstractInstruction * self_in_relocateJumpLongConditionalBeforeFollowingAddressby, sqInt pc, sqInt delta);
static AbstractInstruction * NoDbgRegParms resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget);
static AbstractInstruction * NoDbgRegParms resolveJumpTarget(AbstractInstruction * self_in_resolveJumpTarget);
static sqInt NoDbgRegParms rewriteConditionalJumpLongAttarget(AbstractInstruction * self_in_rewriteConditionalJumpLongAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteConditionalJumpLongAttarget(AbstractInstruction * self_in_rewriteConditionalJumpLongAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
static sqInt NoDbgRegParms unalignedLongAt(AbstractInstruction * self_in_unalignedLongAt, sqInt byteAddress);
static sqInt NoDbgRegParms unalignedLongAtput(AbstractInstruction * self_in_unalignedLongAtput, sqInt byteAddress, sqInt aWord);
static sqInt NoDbgRegParms wantsNearAddressFor(AbstractInstruction * self_in_wantsNearAddressFor, sqInt anObject);
static sqInt NoDbgRegParms wantsNearAddressFor(AbstractInstruction * self_in_wantsNearAddressFor, sqInt anObject);
static sqInt NoDbgRegParms addsrnimmror(AbstractInstruction * self_in_addsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms addsrnimmror(AbstractInstruction * self_in_addsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms addrnimmror(AbstractInstruction * self_in_addrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms addrnimmror(AbstractInstruction * self_in_addrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms addrnrm(AbstractInstruction * self_in_addrnrm, sqInt destReg, sqInt srcReg, sqInt addReg);
static sqInt NoDbgRegParms addrnrm(AbstractInstruction * self_in_addrnrm, sqInt destReg, sqInt srcReg, sqInt addReg);
static usqInt NoDbgRegParms aeabiDivModFunctionAddr(AbstractInstruction * self_in_aeabiDivModFunctionAddr);
static usqInt NoDbgRegParms aeabiDivModFunctionAddr(AbstractInstruction * self_in_aeabiDivModFunctionAddr);
static sqInt NoDbgRegParms andsrnimmror(AbstractInstruction * self_in_andsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms andsrnimmror(AbstractInstruction * self_in_andsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms andrnimmror(AbstractInstruction * self_in_andrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms andrnimmror(AbstractInstruction * self_in_andrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms availableRegisterOrNoneFor(AbstractInstruction * self_in_availableRegisterOrNoneFor, sqInt liveRegsMask);
static sqInt NoDbgRegParms availableRegisterOrNoneFor(AbstractInstruction * self_in_availableRegisterOrNoneFor, sqInt liveRegsMask);
static sqInt NoDbgRegParms bicsrnimmror(AbstractInstruction * self_in_bicsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms bicsrnimmror(AbstractInstruction * self_in_bicsrnimmror, sqInt destReg, sqInt srcReg, sqInt immediate, sqInt rot);
static sqInt NoDbgRegParms bl(AbstractInstruction * self_in_bl, sqInt offset);
static sqInt NoDbgRegParms bl(AbstractInstruction * self_in_bl, sqInt offset);
static sqInt NoDbgRegParms b(AbstractInstruction * self_in_b, sqInt offset);
static sqInt NoDbgRegParms b(AbstractInstruction * self_in_b, sqInt offset);
static sqInt NoDbgRegParms callFullTargetFromReturnAddress(AbstractInstruction * self_in_callFullTargetFromReturnAddress, sqInt callSiteReturnAddress);
static sqInt NoDbgRegParms callInstructionByteSize(AbstractInstruction * self_in_callInstructionByteSize);
static sqInt NoDbgRegParms callInstructionByteSize(AbstractInstruction * self_in_callInstructionByteSize);
static sqInt NoDbgRegParms callTargetFromReturnAddress(AbstractInstruction * self_in_callTargetFromReturnAddress, sqInt callSiteReturnAddress);
static sqInt NoDbgRegParms callTargetFromReturnAddress(AbstractInstruction * self_in_callTargetFromReturnAddress, sqInt callSiteReturnAddress);
static sqInt NoDbgRegParms computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize);
static sqInt NoDbgRegParms computeMaximumSize(AbstractInstruction * self_in_computeMaximumSize);
static sqInt NoDbgRegParms concreteCalleeSavedRegisterMask(AbstractInstruction * self_in_concreteCalleeSavedRegisterMask);
static sqInt NoDbgRegParms concreteCalleeSavedRegisterMask(AbstractInstruction * self_in_concreteCalleeSavedRegisterMask);
static sqInt NoDbgRegParms concreteCallerSavedRegisterMask(AbstractInstruction * self_in_concreteCallerSavedRegisterMask);
static sqInt NoDbgRegParms concreteCallerSavedRegisterMask(AbstractInstruction * self_in_concreteCallerSavedRegisterMask);
static sqInt NoDbgRegParms concretizeAt(AbstractInstruction * self_in_concretizeAt, sqInt actualAddress);
static sqInt NoDbgRegParms concretizeAt(AbstractInstruction * self_in_concretizeAt, sqInt actualAddress);
static usqInt NoDbgRegParms concretizeCMPSMULL(AbstractInstruction * self_in_concretizeCMPSMULL);
static usqInt NoDbgRegParms concretizeCMPSMULL(AbstractInstruction * self_in_concretizeCMPSMULL);
static void NoDbgRegParms concretizeConditionalInstruction(AbstractInstruction * self_in_concretizeConditionalInstruction);
static void NoDbgRegParms concretizeConditionalInstruction(AbstractInstruction * self_in_concretizeConditionalInstruction);
static usqInt NoDbgRegParms concretizeFill32(AbstractInstruction * self_in_concretizeFill32);
static usqInt NoDbgRegParms concretizeFill32(AbstractInstruction * self_in_concretizeFill32);
static usqInt NoDbgRegParms concretizeMSR(AbstractInstruction * self_in_concretizeMSR);
static usqInt NoDbgRegParms concretizeMSR(AbstractInstruction * self_in_concretizeMSR);
static usqInt NoDbgRegParms concretizePushOrPopMultipleRegisters(AbstractInstruction * self_in_concretizePushOrPopMultipleRegisters, sqInt doPush);
static usqInt NoDbgRegParms concretizePushOrPopMultipleRegisters(AbstractInstruction * self_in_concretizePushOrPopMultipleRegisters, sqInt doPush);
static usqInt NoDbgRegParms concretizeSMULL(AbstractInstruction * self_in_concretizeSMULL);
static usqInt NoDbgRegParms concretizeSMULL(AbstractInstruction * self_in_concretizeSMULL);
static sqInt NoDbgRegParms conditionIsNotNever(AbstractInstruction * self_in_conditionIsNotNever, sqInt instr);
static sqInt NoDbgRegParms conditionIsNotNever(AbstractInstruction * self_in_conditionIsNotNever, sqInt instr);
static sqInt NoDbgRegParms dataOpTyperdrnrmlsr(AbstractInstruction * self_in_dataOpTyperdrnrmlsr, sqInt armOpcode, sqInt destReg, sqInt srcReg, sqInt addReg, sqInt shft);
static sqInt NoDbgRegParms dataOpTyperdrnrmlsr(AbstractInstruction * self_in_dataOpTyperdrnrmlsr, sqInt armOpcode, sqInt destReg, sqInt srcReg, sqInt addReg, sqInt shft);
static void NoDbgRegParms dispatchConcretize(AbstractInstruction * self_in_dispatchConcretize);
static void NoDbgRegParms dispatchConcretize(AbstractInstruction * self_in_dispatchConcretize);
static usqInt NoDbgRegParms fmsrFromto(AbstractInstruction * self_in_fmsrFromto, sqInt regA, sqInt regB);
static usqInt NoDbgRegParms fmsrFromto(AbstractInstruction * self_in_fmsrFromto, sqInt regA, sqInt regB);
static usqInt NoDbgRegParms fsitodFromto(AbstractInstruction * self_in_fsitodFromto, sqInt regA, sqInt regB);
static usqInt NoDbgRegParms fsitodFromto(AbstractInstruction * self_in_fsitodFromto, sqInt regA, sqInt regB);
static sqInt NoDbgRegParms fullCallsAreRelative(AbstractInstruction * self_in_fullCallsAreRelative);
static sqInt NoDbgRegParms fullCallsAreRelative(AbstractInstruction * self_in_fullCallsAreRelative);
static AbstractInstruction * NoDbgRegParms genDivRRQuoRem(AbstractInstruction * self_in_genDivRRQuoRem, sqInt abstractRegDivisor, sqInt abstractRegDividend, sqInt abstractRegQuotient, sqInt abstractRegRemainder);
static AbstractInstruction * NoDbgRegParms genDivRRQuoRem(AbstractInstruction * self_in_genDivRRQuoRem, sqInt abstractRegDivisor, sqInt abstractRegDividend, sqInt abstractRegQuotient, sqInt abstractRegRemainder);
static sqInt NoDbgRegParms genLoadCStackPointer(AbstractInstruction * self_in_genLoadCStackPointer);
static sqInt NoDbgRegParms genLoadCStackPointer(AbstractInstruction * self_in_genLoadCStackPointer);
static sqInt NoDbgRegParms genLoadCStackPointers(AbstractInstruction * self_in_genLoadCStackPointers);
static sqInt NoDbgRegParms genLoadCStackPointers(AbstractInstruction * self_in_genLoadCStackPointers);
static sqInt NoDbgRegParms genLoadStackPointers(AbstractInstruction * self_in_genLoadStackPointers);
static sqInt NoDbgRegParms genLoadStackPointers(AbstractInstruction * self_in_genLoadStackPointers);
static AbstractInstruction * NoDbgRegParms genMulRR(AbstractInstruction * self_in_genMulRR, sqInt regSource, sqInt regDest);
static AbstractInstruction * NoDbgRegParms genMulRR(AbstractInstruction * self_in_genMulRR, sqInt regSource, sqInt regDest);
static AbstractInstruction * NoDbgRegParms genPushRegisterArgsForAbortMissNumArgs(AbstractInstruction * self_in_genPushRegisterArgsForAbortMissNumArgs, sqInt numArgs);
static AbstractInstruction * NoDbgRegParms genPushRegisterArgsForAbortMissNumArgs(AbstractInstruction * self_in_genPushRegisterArgsForAbortMissNumArgs, sqInt numArgs);
static AbstractInstruction * NoDbgRegParms genPushRegisterArgsForNumArgsscratchReg(AbstractInstruction * self_in_genPushRegisterArgsForNumArgsscratchReg, sqInt numArgs, sqInt ignored);
static AbstractInstruction * NoDbgRegParms genPushRegisterArgsForNumArgsscratchReg(AbstractInstruction * self_in_genPushRegisterArgsForNumArgsscratchReg, sqInt numArgs, sqInt ignored);
static sqInt NoDbgRegParms genSaveStackPointers(AbstractInstruction * self_in_genSaveStackPointers);
static sqInt NoDbgRegParms genSaveStackPointers(AbstractInstruction * self_in_genSaveStackPointers);
static AbstractInstruction * NoDbgRegParms genSubstituteReturnAddress(AbstractInstruction * self_in_genSubstituteReturnAddress, sqInt retpc);
static AbstractInstruction * NoDbgRegParms genSubstituteReturnAddress(AbstractInstruction * self_in_genSubstituteReturnAddress, sqInt retpc);
static sqInt NoDbgRegParms instructionBeforeAddress(AbstractInstruction * self_in_instructionBeforeAddress, sqInt followingAddress);
static sqInt NoDbgRegParms instructionBeforeAddress(AbstractInstruction * self_in_instructionBeforeAddress, sqInt followingAddress);
static sqInt NoDbgRegParms instructionIsBLX(AbstractInstruction * self_in_instructionIsBLX, sqInt instr);
static sqInt NoDbgRegParms instructionIsBLX(AbstractInstruction * self_in_instructionIsBLX, sqInt instr);
static sqInt NoDbgRegParms instructionIsBL(AbstractInstruction * self_in_instructionIsBL, sqInt instr);
static sqInt NoDbgRegParms instructionIsBL(AbstractInstruction * self_in_instructionIsBL, sqInt instr);
static sqInt NoDbgRegParms instructionIsBX(AbstractInstruction * self_in_instructionIsBX, sqInt instr);
static sqInt NoDbgRegParms instructionIsBX(AbstractInstruction * self_in_instructionIsBX, sqInt instr);
static sqInt NoDbgRegParms instructionIsB(AbstractInstruction * self_in_instructionIsB, sqInt instr);
static sqInt NoDbgRegParms instructionIsB(AbstractInstruction * self_in_instructionIsB, sqInt instr);
static sqInt NoDbgRegParms instructionIsCMP(AbstractInstruction * self_in_instructionIsCMP, sqInt instr);
static sqInt NoDbgRegParms instructionIsCMP(AbstractInstruction * self_in_instructionIsCMP, sqInt instr);
static sqInt NoDbgRegParms instructionIsLDR(AbstractInstruction * self_in_instructionIsLDR, sqInt instr);
static sqInt NoDbgRegParms instructionIsLDR(AbstractInstruction * self_in_instructionIsLDR, sqInt instr);
static sqInt NoDbgRegParms instructionIsOR(AbstractInstruction * self_in_instructionIsOR, sqInt instr);
static sqInt NoDbgRegParms instructionIsOR(AbstractInstruction * self_in_instructionIsOR, sqInt instr);
static sqInt NoDbgRegParms instructionIsPush(AbstractInstruction * self_in_instructionIsPush, sqInt instr);
static sqInt NoDbgRegParms instructionIsPush(AbstractInstruction * self_in_instructionIsPush, sqInt instr);
static sqInt NoDbgRegParms instructionSizeAt(AbstractInstruction * self_in_instructionSizeAt, sqInt pc);
static sqInt NoDbgRegParms instructionSizeAt(AbstractInstruction * self_in_instructionSizeAt, sqInt pc);
static sqInt NoDbgRegParms inverseOpcodeFor(AbstractInstruction * self_in_inverseOpcodeFor, sqInt armOpcode);
static sqInt NoDbgRegParms inverseOpcodeFor(AbstractInstruction * self_in_inverseOpcodeFor, sqInt armOpcode);
static sqInt NoDbgRegParms isCallPrecedingReturnPC(AbstractInstruction * self_in_isCallPrecedingReturnPC, sqInt mcpc);
static sqInt NoDbgRegParms isCallPrecedingReturnPC(AbstractInstruction * self_in_isCallPrecedingReturnPC, sqInt mcpc);
static sqInt NoDbgRegParms isInImmediateJumpRange(AbstractInstruction * self_in_isInImmediateJumpRange, usqIntptr_t operand);
static sqInt NoDbgRegParms isInImmediateJumpRange(AbstractInstruction * self_in_isInImmediateJumpRange, usqIntptr_t operand);
static sqInt NoDbgRegParms isJumpAt(AbstractInstruction * self_in_isJumpAt, sqInt pc);
static sqInt NoDbgRegParms isJumpAt(AbstractInstruction * self_in_isJumpAt, sqInt pc);
static sqInt NoDbgRegParms isPCRelativeValueLoad(AbstractInstruction * self_in_isPCRelativeValueLoad, unsigned int instr);
static sqInt NoDbgRegParms isPCRelativeValueLoad(AbstractInstruction * self_in_isPCRelativeValueLoad, unsigned int instr);
static sqInt NoDbgRegParms jumpLongByteSize(AbstractInstruction * self_in_jumpLongByteSize);
static sqInt NoDbgRegParms jumpLongByteSize(AbstractInstruction * self_in_jumpLongByteSize);
static sqInt NoDbgRegParms jumpLongConditionalByteSize(AbstractInstruction * self_in_jumpLongConditionalByteSize);
static sqInt NoDbgRegParms jumpLongConditionalByteSize(AbstractInstruction * self_in_jumpLongConditionalByteSize);
static sqInt NoDbgRegParms jumpLongTargetBeforeFollowingAddress(AbstractInstruction * self_in_jumpLongTargetBeforeFollowingAddress, sqInt mcpc);
static sqInt NoDbgRegParms jumpLongTargetBeforeFollowingAddress(AbstractInstruction * self_in_jumpLongTargetBeforeFollowingAddress, sqInt mcpc);
static usqInt NoDbgRegParms jumpTargetPCAt(AbstractInstruction * self_in_jumpTargetPCAt, sqInt pc);
static usqInt NoDbgRegParms jumpTargetPCAt(AbstractInstruction * self_in_jumpTargetPCAt, sqInt pc);
static sqInt NoDbgRegParms ldrbrnplusimm(AbstractInstruction * self_in_ldrbrnplusimm, sqInt destReg, sqInt baseReg, sqInt u, sqInt immediate12bitValue);
static sqInt NoDbgRegParms ldrbrnplusimm(AbstractInstruction * self_in_ldrbrnplusimm, sqInt destReg, sqInt baseReg, sqInt u, sqInt immediate12bitValue);
static sqInt NoDbgRegParms ldrbrnrm(AbstractInstruction * self_in_ldrbrnrm, sqInt destReg, sqInt baseReg, sqInt offsetReg);
static sqInt NoDbgRegParms ldrbrnrm(AbstractInstruction * self_in_ldrbrnrm, sqInt destReg, sqInt baseReg, sqInt offsetReg);
static sqInt NoDbgRegParms ldrhrnplusimm(AbstractInstruction * self_in_ldrhrnplusimm, sqInt destReg, sqInt baseReg, sqInt u, sqInt immediate8bitValue);
static sqInt NoDbgRegParms ldrhrnplusimm(AbstractInstruction * self_in_ldrhrnplusimm, sqInt destReg, sqInt baseReg, sqInt u, sqInt immediate8bitValue);
static sqInt NoDbgRegParms ldrhrnrm(AbstractInstruction * self_in_ldrhrnrm, sqInt destReg, sqInt baseReg, sqInt offsetReg);
static sqInt NoDbgRegParms ldrhrnrm(AbstractInstruction * self_in_ldrhrnrm, sqInt destReg, sqInt baseReg, sqInt offsetReg);
static sqInt NoDbgRegParms ldrrnplusImm(AbstractInstruction * self_in_ldrrnplusImm, sqInt destReg, sqInt baseReg, sqInt immediate12bitValue);
static sqInt NoDbgRegParms ldrrnplusImm(AbstractInstruction * self_in_ldrrnplusImm, sqInt destReg, sqInt baseReg, sqInt immediate12bitValue);
static sqInt NoDbgRegParms ldrrnplusimm(AbstractInstruction * self_in_ldrrnplusimm, sqInt destReg, sqInt baseReg, sqInt u, sqInt immediate12bitValue);
static sqInt NoDbgRegParms ldrrnplusimm(AbstractInstruction * self_in_ldrrnplusimm, sqInt destReg, sqInt baseReg, sqInt u, sqInt immediate12bitValue);
static sqInt NoDbgRegParms ldrrnrm(AbstractInstruction * self_in_ldrrnrm, sqInt destReg, sqInt baseReg, sqInt offsetReg);
static sqInt NoDbgRegParms ldrrnrm(AbstractInstruction * self_in_ldrrnrm, sqInt destReg, sqInt baseReg, sqInt offsetReg);
static usqInt NoDbgRegParms loadCwInto(AbstractInstruction * self_in_loadCwInto, sqInt destReg);
static usqInt NoDbgRegParms loadCwInto(AbstractInstruction * self_in_loadCwInto, sqInt destReg);
static sqInt NoDbgRegParms loadPICLiteralByteSize(AbstractInstruction * self_in_loadPICLiteralByteSize);
static sqInt NoDbgRegParms loadPICLiteralByteSize(AbstractInstruction * self_in_loadPICLiteralByteSize);
static sqInt NoDbgRegParms machineCodeBytes(AbstractInstruction * self_in_machineCodeBytes);
static sqInt NoDbgRegParms machineCodeBytes(AbstractInstruction * self_in_machineCodeBytes);
static sqInt NoDbgRegParms machineCodeWords(AbstractInstruction * self_in_machineCodeWords);
static sqInt NoDbgRegParms machineCodeWords(AbstractInstruction * self_in_machineCodeWords);
static sqInt NoDbgRegParms memM16xrregbasepuwloffset(AbstractInstruction * self_in_memM16xrregbasepuwloffset, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt weirdstuff, sqInt loadstore, sqInt offset8);
static sqInt NoDbgRegParms memM16xrregbasepuwloffset(AbstractInstruction * self_in_memM16xrregbasepuwloffset, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt weirdstuff, sqInt loadstore, sqInt offset8);
static sqInt NoDbgRegParms memM16xrregbasepuwlrm(AbstractInstruction * self_in_memM16xrregbasepuwlrm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt weirdstuff, sqInt loadstore, sqInt offsetReg);
static sqInt NoDbgRegParms memM16xrregbasepuwlrm(AbstractInstruction * self_in_memM16xrregbasepuwlrm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt weirdstuff, sqInt loadstore, sqInt offsetReg);
static sqInt NoDbgRegParms memMxrregbasepubwlimm(AbstractInstruction * self_in_memMxrregbasepubwlimm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt byteword, sqInt weirdstuff, sqInt loadstore, sqInt offset);
static sqInt NoDbgRegParms memMxrregbasepubwlimm(AbstractInstruction * self_in_memMxrregbasepubwlimm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt byteword, sqInt weirdstuff, sqInt loadstore, sqInt offset);
static sqInt NoDbgRegParms memMxrregbasepubwlrmLsl2(AbstractInstruction * self_in_memMxrregbasepubwlrmLsl2, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt byteword, sqInt weirdstuff, sqInt loadstore, sqInt offsetReg);
static sqInt NoDbgRegParms memMxrregbasepubwlrmLsl2(AbstractInstruction * self_in_memMxrregbasepubwlrmLsl2, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt byteword, sqInt weirdstuff, sqInt loadstore, sqInt offsetReg);
static sqInt NoDbgRegParms memMxrregbasepubwlrm(AbstractInstruction * self_in_memMxrregbasepubwlrm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt byteword, sqInt weirdstuff, sqInt loadstore, sqInt offsetReg);
static sqInt NoDbgRegParms memMxrregbasepubwlrm(AbstractInstruction * self_in_memMxrregbasepubwlrm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt postpreoffset, sqInt updown, sqInt byteword, sqInt weirdstuff, sqInt loadstore, sqInt offsetReg);
static sqInt NoDbgRegParms memMxrregbaseublimm(AbstractInstruction * self_in_memMxrregbaseublimm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt updown, sqInt byteword, sqInt loadstore, sqInt immediate12bitValue);
static sqInt NoDbgRegParms memMxrregbaseublimm(AbstractInstruction * self_in_memMxrregbaseublimm, sqInt cond, sqInt destReg, sqInt baseReg, sqInt updown, sqInt byteword, sqInt loadstore, sqInt immediate12bitValue);
static sqInt NoDbgRegParms movsrn(AbstractInstruction * self_in_movsrn, sqInt destReg, sqInt srcReg);
static sqInt NoDbgRegParms movsrn(AbstractInstruction * self_in_movsrn, sqInt destReg, sqInt srcReg);
static sqInt NoDbgRegParms movimmror(AbstractInstruction * self_in_movimmror, sqInt destReg, sqInt immediate8bitValue, sqInt rot);
static sqInt NoDbgRegParms movimmror(AbstractInstruction * self_in_movimmror, sqInt destReg, sqInt immediate8bitValue, sqInt rot);
static sqInt NoDbgRegParms movrn(AbstractInstruction * self_in_movrn, sqInt destReg, sqInt srcReg);
static sqInt NoDbgRegParms movrn(AbstractInstruction * self_in_movrn, sqInt destReg, sqInt srcReg);
static sqInt NoDbgRegParms msr(AbstractInstruction * self_in_msr, sqInt flags);
static sqInt NoDbgRegParms msr(AbstractInstruction * self_in_msr, sqInt flags);
static sqInt NoDbgRegParms mvnimmror(AbstractInstruction * self_in_mvnimmror, sqInt destReg, sqInt immediate8bitValue, sqInt rot);
static sqInt NoDbgRegParms mvnimmror(AbstractInstruction * self_in_mvnimmror, sqInt destReg, sqInt immediate8bitValue, sqInt rot);
static sqInt NoDbgRegParms numIntRegArgs(AbstractInstruction * self_in_numIntRegArgs);
static sqInt NoDbgRegParms numIntRegArgs(AbstractInstruction * self_in_numIntRegArgs);
static sqInt NoDbgRegParms orrimmror(AbstractInstruction * self_in_orrimmror, sqInt destReg, sqInt immediate8bitValue, sqInt rot);
static sqInt NoDbgRegParms orrimmror(AbstractInstruction * self_in_orrimmror, sqInt destReg, sqInt immediate8bitValue, sqInt rot);
static AbstractInstruction * NoDbgRegParms padIfPossibleWithStopsFromto(AbstractInstruction * self_in_padIfPossibleWithStopsFromto, sqInt startAddr, sqInt endAddr);
static AbstractInstruction * NoDbgRegParms padIfPossibleWithStopsFromto(AbstractInstruction * self_in_padIfPossibleWithStopsFromto, sqInt startAddr, sqInt endAddr);
static sqInt NoDbgRegParms popR(AbstractInstruction * self_in_popR, sqInt dstReg);
static sqInt NoDbgRegParms popR(AbstractInstruction * self_in_popR, sqInt dstReg);
static sqInt NoDbgRegParms pushLinkRegisterByteSize(AbstractInstruction * self_in_pushLinkRegisterByteSize);
static sqInt NoDbgRegParms pushLinkRegisterByteSize(AbstractInstruction * self_in_pushLinkRegisterByteSize);
static sqInt NoDbgRegParms pushR(AbstractInstruction * self_in_pushR, sqInt srcReg);
static sqInt NoDbgRegParms pushR(AbstractInstruction * self_in_pushR, sqInt srcReg);
static AbstractInstruction * NoDbgRegParms relocateCallBeforeReturnPCby(AbstractInstruction * self_in_relocateCallBeforeReturnPCby, sqInt retpc, sqInt delta);
static AbstractInstruction * NoDbgRegParms relocateCallBeforeReturnPCby(AbstractInstruction * self_in_relocateCallBeforeReturnPCby, sqInt retpc, sqInt delta);
static sqInt NoDbgRegParms rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteCallAttarget(AbstractInstruction * self_in_rewriteCallAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteCallFullAttarget(AbstractInstruction * self_in_rewriteCallFullAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteCallFullAttarget(AbstractInstruction * self_in_rewriteCallFullAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteJumpFullAttarget(AbstractInstruction * self_in_rewriteJumpFullAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteJumpFullAttarget(AbstractInstruction * self_in_rewriteJumpFullAttarget, sqInt callSiteReturnAddress, sqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteJumpLongAttarget(AbstractInstruction * self_in_rewriteJumpLongAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteJumpLongAttarget(AbstractInstruction * self_in_rewriteJumpLongAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteTransferAttarget(AbstractInstruction * self_in_rewriteTransferAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
static sqInt NoDbgRegParms rewriteTransferAttarget(AbstractInstruction * self_in_rewriteTransferAttarget, usqInt callSiteReturnAddress, usqInt callTargetAddress);
static sqInt NoDbgRegParms setsConditionCodesFor(AbstractInstruction * self_in_setsConditionCodesFor, sqInt aConditionalJumpOpcode);
static sqInt NoDbgRegParms setsConditionCodesFor(AbstractInstruction * self_in_setsConditionCodesFor, sqInt aConditionalJumpOpcode);
static sqInt NoDbgRegParms shiftSetsConditionCodesFor(AbstractInstruction * self_in_shiftSetsConditionCodesFor, sqInt aConditionalJumpOpcode);
static sqInt NoDbgRegParms shiftSetsCondition
static sqInt NoDbgRegParms stackPageInterruptHeadroomBytes(AbstractInstruction * self_in_stackPageInterruptHeadroomBytes);
static AbstractInstruction * NoDbgRegParms stopsFromto(AbstractInstruction * self_in_stopsFromto, sqInt startAddr, sqInt endAddr);
static sqInt NoDbgRegParms strbrnplusimm(