Ignore:
Timestamp:
Jan 8, 2009, 2:06:27 PM (15 years ago)
Author:
rosiere
Message:

1) Bug fix (Operation, Instruction)
2) Modif Return Address Stack
3) Add Soft Test
4) Add Soc Test

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore set to
      Makefile.flags
      Makefile.tools
      Makefile.tools_path
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h

    r97 r100  
    299299
    300300  // Exception Execution
    301 #  define EXCEPTION_IFETCH_NONE                    0x00       // Fetch Unit generate none exception
    302 #  define EXCEPTION_IFETCH_INSTRUCTION_TLB         0x0a       // ITLB miss
    303 #  define EXCEPTION_IFETCH_INSTRUCTION_PAGE        0x04       // No matching or page violation protection in pages tables
    304 #  define EXCEPTION_IFETCH_BUS_ERROR               0x02       // Access at a invalid physical address
    305 
    306 #  define EXCEPTION_DECOD_NONE                     0x00       // none exception
    307 #  define EXCEPTION_DECOD_ILLEGAL_INSTRUCTION      0x01       // Instruction is illegal (no implemented)
    308 #  define EXCEPTION_DECOD_SYSCALL                  0x02       // System Call
    309 //#define EXCEPTION_DECOD_TRAP                     0x0e       // L.trap or debug unit (note : must read SR !)
    310 #  define EXCEPTION_DECOD_INSTRUCTION_TLB          0x0a       // ITLB miss
    311 #  define EXCEPTION_DECOD_INSTRUCTION_PAGE         0x04       // No matching or page violation protection in pages tables
    312 #  define EXCEPTION_DECOD_BUS_ERROR                0x02       // Access at a invalid physical address
    313 
    314 #  define EXCEPTION_ALU_NONE                       0x00       // Functionnal unit generate none exception
    315 #  define EXCEPTION_ALU_RANGE                      0x0b       //
    316 #  define EXCEPTION_ALU_SPR_ACCESS_INVALID         0x12       // SPR     present in ALU but not compatible privilege
    317 #  define EXCEPTION_ALU_SPR_ACCESS_MUST_READ       0x13       // SPR not present in ALU
    318 #  define EXCEPTION_ALU_SPR_ACCESS_MUST_WRITE      0x14       // SPR not present in ALU
    319 
    320 #  define EXCEPTION_MEMORY_NONE                    0x00       // Load/Store generate none exception
    321 #  define EXCEPTION_MEMORY_ALIGNMENT               0x06       // Load/Store access is not aligned
    322 #  define EXCEPTION_MEMORY_DATA_TLB                0x09       // DTLB miss
    323 #  define EXCEPTION_MEMORY_DATA_PAGE               0x03       // No matching or page violation protection in pages tables
    324 #  define EXCEPTION_MEMORY_BUS_ERROR               0x02       // Access at a invalid physical address
    325 #  define EXCEPTION_MEMORY_MISS_SPECULATION        0x10       // Load miss speculation
    326 #  define EXCEPTION_MEMORY_LOAD_SPECULATIVE        0x11       // The load is speculative : write in register file, but don't commit
    327 
    328 #  define EXCEPTION_CUSTOM_NONE                    0x00       // Custom unit generate none exception
    329 #  define EXCEPTION_CUSTOM_CUST_0                  0x19       // Reserved for custom exceptions
    330 #  define EXCEPTION_CUSTOM_CUST_1                  0x1a       // Reserved for custom exceptions
    331 #  define EXCEPTION_CUSTOM_CUST_2                  0x1b       // Reserved for custom exceptions
    332 #  define EXCEPTION_CUSTOM_CUST_3                  0x1c       // Reserved for custom exceptions
    333 #  define EXCEPTION_CUSTOM_CUST_4                  0x1d       // Reserved for custom exceptions
    334 #  define EXCEPTION_CUSTOM_CUST_5                  0x1e       // Reserved for custom exceptions
    335 #  define EXCEPTION_CUSTOM_CUST_6                  0x1f       // Reserved for custom exceptions
    336 
    337 #  define EXCEPTION_USE_NONE                       0x00       //
    338 #  define EXCEPTION_USE_ILLEGAL_INSTRUCTION        0x01       // illegal_instruction
    339 #  define EXCEPTION_USE_RANGE                      0x02       // range
    340 #  define EXCEPTION_USE_MEMORY_WITH_ALIGNMENT      0x03       // TLB miss, page fault, bus error, alignment
    341 #  define EXCEPTION_USE_MEMORY_WITHOUT_ALIGNMENT   0x04       // TLB miss, page fault, bus error
    342 #  define EXCEPTION_USE_SYSCALL                    0x05       // syscall
    343 #  define EXCEPTION_USE_TRAP                       0x06       // trap
    344 #  define EXCEPTION_USE_CUSTOM_0                   0x07       //
    345 #  define EXCEPTION_USE_CUSTOM_1                   0x08       //
    346 #  define EXCEPTION_USE_CUSTOM_2                   0x09       //
    347 #  define EXCEPTION_USE_CUSTOM_3                   0x0a       //
    348 #  define EXCEPTION_USE_CUSTOM_4                   0x0b       //
    349 #  define EXCEPTION_USE_CUSTOM_5                   0x0c       //
    350 #  define EXCEPTION_USE_CUSTOM_6                   0x0d       //
     301#  define EXCEPTION_IFETCH_NONE                    0x00       //   Fetch Unit generate none exception
     302#  define EXCEPTION_IFETCH_INSTRUCTION_TLB         0x0a       //   ITLB miss
     303#  define EXCEPTION_IFETCH_INSTRUCTION_PAGE        0x04       //   No matching or page violation protection in pages tables
     304#  define EXCEPTION_IFETCH_BUS_ERROR               0x02       //   Access at a invalid physical address
     305                                                                   
     306#  define EXCEPTION_DECOD_NONE                     0x00       //   none exception
     307#  define EXCEPTION_DECOD_ILLEGAL_INSTRUCTION      0x01       //   Instruction is illegal (no implemented)
     308#  define EXCEPTION_DECOD_SYSCALL                  0x02       //   System Call
     309//#define EXCEPTION_DECOD_TRAP                     0x0e       //   L.trap or debug unit (note : must read SR !)
     310#  define EXCEPTION_DECOD_INSTRUCTION_TLB          0x0a       //   ITLB miss
     311#  define EXCEPTION_DECOD_INSTRUCTION_PAGE         0x04       //   No matching or page violation protection in pages tables
     312#  define EXCEPTION_DECOD_BUS_ERROR                0x02       //   Access at a invalid physical address
     313                                                                   
     314#  define EXCEPTION_ALU_NONE                       0x00       //   Functionnal unit generate none exception
     315#  define EXCEPTION_ALU_RANGE                      0x0b       //  
     316#  define EXCEPTION_ALU_SPR_ACCESS_INVALID         0x12       // * SPR     present in ALU but not compatible privilege
     317#  define EXCEPTION_ALU_SPR_ACCESS_MUST_READ       0x13       // * SPR not present in ALU
     318#  define EXCEPTION_ALU_SPR_ACCESS_MUST_WRITE      0x14       // * SPR not present in ALU
     319                                                                   
     320#  define EXCEPTION_MEMORY_NONE                    0x00       //   Load/Store generate none exception
     321#  define EXCEPTION_MEMORY_ALIGNMENT               0x06       //   Load/Store access is not aligned
     322#  define EXCEPTION_MEMORY_DATA_TLB                0x09       //   DTLB miss
     323#  define EXCEPTION_MEMORY_DATA_PAGE               0x03       //   No matching or page violation protection in pages tables
     324#  define EXCEPTION_MEMORY_BUS_ERROR               0x02       //   Access at a invalid physical address
     325#  define EXCEPTION_MEMORY_MISS_SPECULATION        0x10       // * Load miss speculation
     326#  define EXCEPTION_MEMORY_LOAD_SPECULATIVE        0x11       // * The load is speculative : write in register file, but don't commit
     327                                                                   
     328#  define EXCEPTION_CUSTOM_NONE                    0x00       //   Custom unit generate none exception
     329#  define EXCEPTION_CUSTOM_CUST_0                  0x19       //   Reserved for custom exceptions
     330#  define EXCEPTION_CUSTOM_CUST_1                  0x1a       //   Reserved for custom exceptions
     331#  define EXCEPTION_CUSTOM_CUST_2                  0x1b       //   Reserved for custom exceptions
     332#  define EXCEPTION_CUSTOM_CUST_3                  0x1c       //   Reserved for custom exceptions
     333#  define EXCEPTION_CUSTOM_CUST_4                  0x1d       //   Reserved for custom exceptions
     334#  define EXCEPTION_CUSTOM_CUST_5                  0x1e       //   Reserved for custom exceptions
     335#  define EXCEPTION_CUSTOM_CUST_6                  0x1f       //   Reserved for custom exceptions
     336                                                                   
     337#  define EXCEPTION_USE_NONE                       0x00       //  
     338#  define EXCEPTION_USE_ILLEGAL_INSTRUCTION        0x01       //   illegal_instruction
     339#  define EXCEPTION_USE_RANGE                      0x02       //   range
     340#  define EXCEPTION_USE_MEMORY_WITH_ALIGNMENT      0x03       //   TLB miss, page fault, bus error, alignment
     341#  define EXCEPTION_USE_MEMORY_WITHOUT_ALIGNMENT   0x04       //   TLB miss, page fault, bus error
     342#  define EXCEPTION_USE_SYSCALL                    0x05       //   syscall
     343#  define EXCEPTION_USE_TRAP                       0x06       //   trap
     344#  define EXCEPTION_USE_CUSTOM_0                   0x07       //  
     345#  define EXCEPTION_USE_CUSTOM_1                   0x08       //  
     346#  define EXCEPTION_USE_CUSTOM_2                   0x09       //  
     347#  define EXCEPTION_USE_CUSTOM_3                   0x0a       //  
     348#  define EXCEPTION_USE_CUSTOM_4                   0x0b       //  
     349#  define EXCEPTION_USE_CUSTOM_5                   0x0c       //  
     350#  define EXCEPTION_USE_CUSTOM_6                   0x0d       //  
    351351
    352352#  define exception_ifetch_to_exception_decod(x) x
Note: See TracChangeset for help on using the changeset viewer.