cogitARMv5.c

Created Diff never expires
13 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
554 lines
12 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
554 lines
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(