#include <stdio.h> __attribute__((noinline)) int test_block_size1 () { int result = 1; __asm__ __volatile__( ".set noreorder" "\n\t" ".set nomacro" "\n\t" "b begin1" "\n\t" "nop" "\n\t" "begin1:" "\n\t" ".rept 56" "\n\t" ".word 0" "\n\t" ".endr" "\n\t" "li $4, 0" "\n\t" "j end1" "\n\t" "nop" "\n\t" "b label1" "\n\t" "nop" "\n\t" "label1:" "\n\t" "li $4, 1" "\n\t" "end1:" "\n\t" "move %0, $4" "\n\t" ".set reorder" "\n\t" ".set macro" "\n\t" : /*out*/ "=r" (result) : /*in*/ : /*trash*/ "$4"); return result; } __attribute__((noinline)) int test_block_size2 () { int result = 1; __asm__ __volatile__( ".set noreorder" "\n\t" ".set nomacro" "\n\t" "b begin2" "\n\t" "nop" "\n\t" "begin2:" "\n\t" ".rept 58" "\n\t" ".word 0" "\n\t" ".endr" "\n\t" "li $4, 1" "\n\t" "j end2" "\n\t" "li $4, 0" "\n\t" "end2:" "\n\t" "move %0, $4" "\n\t" ".set reorder" "\n\t" ".set macro" "\n\t" : /*out*/ "=r" (result) : /*in*/ : /*trash*/ "$4"); return result; } int main () { /*******************TEST1*******************/ if (test_block_size1() == 0) printf("test1 - PASS\n"); else printf("test1 - FAIL\n"); /*******************TEST2*******************/ if (test_block_size2() == 0) printf("test2 - PASS\n"); else printf("test2 - FAIL\n"); return 0; }