diff options
Diffstat (limited to 'cpu/base_cpu.cc')
-rw-r--r-- | cpu/base_cpu.cc | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/cpu/base_cpu.cc b/cpu/base_cpu.cc index 702a9afe8..3ee7a3892 100644 --- a/cpu/base_cpu.cc +++ b/cpu/base_cpu.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003 The Regents of The University of Michigan + * Copyright (c) 2002-2004 The Regents of The University of Michigan * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -209,7 +209,7 @@ BaseCPU::post_interrupt(int int_num, int index) if (int_num < 0 || int_num >= NumInterruptLevels) panic("int_num out of bounds\n"); - if (index < 0 || index >= sizeof(uint8_t) * 8) + if (index < 0 || index >= sizeof(uint64_t) * 8) panic("int_num out of bounds\n"); AlphaISA::check_interrupts = 1; @@ -225,7 +225,7 @@ BaseCPU::clear_interrupt(int int_num, int index) if (int_num < 0 || int_num >= NumInterruptLevels) panic("int_num out of bounds\n"); - if (index < 0 || index >= sizeof(uint8_t) * 8) + if (index < 0 || index >= sizeof(uint64_t) * 8) panic("int_num out of bounds\n"); interrupts[int_num] &= ~(1 << index); @@ -242,6 +242,21 @@ BaseCPU::clear_interrupts() intstatus = 0; } + +void +BaseCPU::serialize(std::ostream &os) +{ + SERIALIZE_ARRAY(interrupts, NumInterruptLevels); + SERIALIZE_SCALAR(intstatus); +} + +void +BaseCPU::unserialize(Checkpoint *cp, const std::string §ion) +{ + UNSERIALIZE_ARRAY(interrupts, NumInterruptLevels); + UNSERIALIZE_SCALAR(intstatus); +} + #endif // FULL_SYSTEM DEFINE_SIM_OBJECT_CLASS_NAME("BaseCPU", BaseCPU) |