internal void MonoArrayTypeGetBounds(TargetMemoryAccess memory, TargetAddress data) { // // FIXME: Only check whether the low bounds are all zero // int num_sizes = memory.ReadByte(data + memory.TargetAddressSize + 1); if (num_sizes != 0) { throw new InternalError(); } int num_lobounds = memory.ReadByte(data + memory.TargetAddressSize + 2); if (num_lobounds == 0) { return; } TargetAddress array = memory.ReadAddress(data + 3 * memory.TargetAddressSize); TargetBinaryReader bounds = memory.ReadMemory(array, num_lobounds * 4).GetReader(); for (int i = 0; i < num_lobounds; i++) { int bound = bounds.ReadInt32(); if (bound != 0) { throw new InternalError(); } } }
internal override bool IsSyscallInstruction(TargetMemoryAccess memory, TargetAddress address) { try { return((memory.ReadByte(address - 2) == 0x0f) && (memory.ReadByte(address - 1) == 0x05)); } catch { return(false); } }
public int MonoArrayTypeGetNumLoBounds(TargetMemoryAccess memory, TargetAddress atype) { return(memory.ReadByte(atype + memory.TargetAddressSize + 2)); }
public int MonoArrayTypeGetRank(TargetMemoryAccess memory, TargetAddress atype) { return(memory.ReadByte(atype + memory.TargetAddressSize)); }
internal override bool IsSyscallInstruction(TargetMemoryAccess memory, TargetAddress address) { try { return (memory.ReadByte (address - 2) == 0x0f) && (memory.ReadByte (address - 1) == 0x05); } catch { return false; } }
internal override bool IsRetInstruction(TargetMemoryAccess memory, TargetAddress address) { return memory.ReadByte (address) == 0xc3; }
internal override bool IsRetInstruction(TargetMemoryAccess memory, TargetAddress address) { return(memory.ReadByte(address) == 0xc3); }
internal void MonoArrayTypeGetBounds(TargetMemoryAccess memory, TargetAddress data) { // // FIXME: Only check whether the low bounds are all zero // int num_sizes = memory.ReadByte (data + memory.TargetAddressSize + 1); if (num_sizes != 0) throw new InternalError (); int num_lobounds = memory.ReadByte (data + memory.TargetAddressSize + 2); if (num_lobounds == 0) return; TargetAddress array = memory.ReadAddress (data + 3 * memory.TargetAddressSize); TargetBinaryReader bounds = memory.ReadMemory (array, num_lobounds * 4).GetReader (); for (int i = 0; i < num_lobounds; i++) { int bound = bounds.ReadInt32 (); if (bound != 0) throw new InternalError (); } }
public int MonoArrayTypeGetRank(TargetMemoryAccess memory, TargetAddress atype) { return memory.ReadByte (atype + memory.TargetAddressSize); }
public int MonoArrayTypeGetNumLoBounds(TargetMemoryAccess memory, TargetAddress atype) { return memory.ReadByte (atype + memory.TargetAddressSize + 2); }