cell: align instruction buffers to 8-byte, not 32-byte boundary
This commit is contained in:
parent
b5303446a8
commit
bac5900a14
|
@ -706,8 +706,8 @@ main(main_param_t speid, main_param_t argp)
|
|||
|
||||
ASSERT(sizeof(tile_t) == TILE_SIZE * TILE_SIZE * 4);
|
||||
ASSERT(sizeof(struct cell_command_render) % 8 == 0);
|
||||
ASSERT(((unsigned long) &spu.fragment_ops_code) % 32 == 0);
|
||||
ASSERT(((unsigned long) &spu.fragment_program_code) % 32 == 0);
|
||||
ASSERT(((unsigned long) &spu.fragment_ops_code) % 8 == 0);
|
||||
ASSERT(((unsigned long) &spu.fragment_program_code) % 8 == 0);
|
||||
|
||||
one_time_init();
|
||||
|
||||
|
|
|
@ -143,13 +143,13 @@ struct spu_global
|
|||
ubyte ctile_status[MAX_HEIGHT/TILE_SIZE][MAX_WIDTH/TILE_SIZE] ALIGN16_ATTRIB;
|
||||
ubyte ztile_status[MAX_HEIGHT/TILE_SIZE][MAX_WIDTH/TILE_SIZE] ALIGN16_ATTRIB;
|
||||
|
||||
/** Current fragment ops machine code, at 32-byte boundary */
|
||||
uint fragment_ops_code[SPU_MAX_FRAGMENT_OPS_INSTS] ALIGN32_ATTRIB;
|
||||
/** Current fragment ops machine code, at 8-byte boundary */
|
||||
uint fragment_ops_code[SPU_MAX_FRAGMENT_OPS_INSTS] ALIGN8_ATTRIB;
|
||||
/** Current fragment ops function */
|
||||
spu_fragment_ops_func fragment_ops;
|
||||
|
||||
/** Current fragment program machine code, at 32-byte boundary */
|
||||
uint fragment_program_code[SPU_MAX_FRAGMENT_PROGRAM_INSTS] ALIGN32_ATTRIB;
|
||||
/** Current fragment program machine code, at 8-byte boundary */
|
||||
uint fragment_program_code[SPU_MAX_FRAGMENT_PROGRAM_INSTS] ALIGN8_ATTRIB;
|
||||
/** Current fragment ops function */
|
||||
spu_fragment_program_func fragment_program;
|
||||
|
||||
|
|
|
@ -144,12 +144,12 @@ typedef unsigned char boolean;
|
|||
#define ALIGN16_DECL(TYPE, NAME, SIZE) TYPE NAME##___aligned[SIZE] __attribute__(( aligned( 16 ) ))
|
||||
#define ALIGN16_ASSIGN(NAME) NAME##___aligned
|
||||
#define ALIGN16_ATTRIB __attribute__(( aligned( 16 ) ))
|
||||
#define ALIGN32_ATTRIB __attribute__(( aligned( 32 ) ))
|
||||
#define ALIGN8_ATTRIB __attribute__(( aligned( 8 ) ))
|
||||
#else
|
||||
#define ALIGN16_DECL(TYPE, NAME, SIZE) TYPE NAME##___unaligned[SIZE + 1]
|
||||
#define ALIGN16_ASSIGN(NAME) align16(NAME##___unaligned)
|
||||
#define ALIGN16_ATTRIB
|
||||
#define ALIGN32_ATTRIB
|
||||
#define ALIGN8_ATTRIB
|
||||
#endif
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue