X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-mips.c;h=723357a8706fbf2e7b59aeeeeb3e0f7852205937;hb=a19d8eb03e2cf8ba0bf15f98e4f5b1e7d693b6f3;hp=d2fdca7d34261c0315755756a7bac418d25f188d;hpb=2bd7f1f332946c3baeef11111d1dfb1994ce9942;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index d2fdca7d34..723357a870 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -11436,6 +11436,36 @@ static procS cur_proc; static procS *cur_proc_ptr; static int numprocs; +/* When we align code in the .text section of mips16, use the correct two + byte nop pattern of 0x6500 (move $0,$0) */ + +int +mips_do_align (n, fill, len, max) + int n; + const char *fill; + int len; + int max; +{ + if (fill == NULL + && subseg_text_p (now_seg) + && n > 1 + && mips_opts.mips16) + { + static const unsigned char be_nop[] = { 0x65, 0x00 }; + static const unsigned char le_nop[] = { 0x00, 0x65 }; + + frag_align (1, 0, 0); + + if (target_big_endian) + frag_align_pattern (n, be_nop, 2, max); + else + frag_align_pattern (n, le_nop, 2, max); + return 1; + } + + return 0; +} + static void md_obj_begin () {