diff options
author | Tom Stellard <tstellar@gmail.com> | 2011-01-01 18:57:53 -0800 |
---|---|---|
committer | Tom Stellard <tstellar@gmail.com> | 2011-01-01 18:57:53 -0800 |
commit | ad5d6ca73191d5d83513e123ede7ccf14f1906fc (patch) | |
tree | 902a036c0fcce103601c72658830fcca5cf2df07 | |
parent | 0a26190e3dcfc8909505fe017de4b710281b4879 (diff) |
emulator: Handle REGISTER_TYPE_NONE
-rw-r--r-- | emulator.cpp | 4 | ||||
-rw-r--r-- | register_address.cpp | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/emulator.cpp b/emulator.cpp index 565f3cc..f9bf38f 100644 --- a/emulator.cpp +++ b/emulator.cpp @@ -96,6 +96,7 @@ emulator::get_value(register_address addr) case REGISTER_TYPE_IMMEDIATE: return m_immediate_regs[index]->clone(); case REGISTER_TYPE_IN: return m_input_regs[index]->clone(); case REGISTER_TYPE_PRIVATE: return m_private_regs[index]->clone(); + case REGISTER_TYPE_NONE: return NULL; default: std::cerr << __FUNCTION__ << " unknown register type: " << addr.m_type << "\n"; @@ -124,6 +125,9 @@ emulator::set_value( delete m_private_regs[index]; m_private_regs[index] = val; break; + case REGISTER_TYPE_NONE: + /* Do nothing. */ + break; default: assert(0); } diff --git a/register_address.cpp b/register_address.cpp index afdb149..9f40c6c 100644 --- a/register_address.cpp +++ b/register_address.cpp @@ -82,6 +82,11 @@ register_address::to_int() case SWIZZLE_Y: swz_val = 1; break; case SWIZZLE_Z: swz_val = 2; break; case SWIZZLE_W: swz_val = 3; break; + case SWIZZLE_EMPTY: + if (m_type == REGISTER_TYPE_NONE) { + return 0; + } + /* Fall through */ default: std::cerr << __FUNCTION__ << ": unhandled swizzle: " << m_swizzle << "\n"; |