Brad Bishop | 286d45c | 2018-10-02 15:21:57 -0400 | [diff] [blame] | 1 | From 34049c9fcaa256befad032cbcd8aa74beecf13dc Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Sat, 26 Aug 2017 19:21:47 -0700 |
| 4 | Subject: [PATCH] Fix the calculation of high word in a long long 64-bit |
| 5 | |
| 6 | This patch will change the calculation of high word in a long long 64-bit. |
| 7 | Earlier to this patch the high word of long long word (0xF0000000ULL) is |
| 8 | coming to be 0xFFFFFFFF and low word is 0xF0000000. Instead the high word |
| 9 | should be 0x00000000 and the low word should be 0xF0000000. This patch |
| 10 | removes the condition of checking high word = 0 & low word < 0. |
| 11 | This check is not required for the correctness of calculating 32-bit high |
| 12 | and low words in a 64-bit long long. |
| 13 | |
| 14 | ChangeLog: |
| 15 | |
| 16 | 2016-03-01 Nagaraju Mekala <nagaraju.mekala@xilinx.com> |
| 17 | Ajit Agarwal <ajitkum@xilinx.com> |
| 18 | |
| 19 | * config/microblaze/microblaze.c (print_operand): Remove the |
| 20 | condition of checking high word = 0 & low word < 0. |
| 21 | * testsuite/gcc.target/microblaze/others/long.c: Add -O0 option. |
| 22 | |
| 23 | Signed-off-by: Nagaraju Mekala <nagaraju.mekala@xilinx.com> |
| 24 | Signed-off-by: Ajit Agarwal <ajitkum@xilinx.com> |
| 25 | Signed-off-by: Mahesh Bodapati <mbodapat@xilinx.com> |
| 26 | Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> |
| 27 | Upstream-Status: Pending |
| 28 | --- |
| 29 | gcc/config/microblaze/microblaze.c | 3 --- |
| 30 | 1 file changed, 3 deletions(-) |
| 31 | |
| 32 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 33 | index a41121264e..2ed64971fb 100644 |
| 34 | --- a/gcc/config/microblaze/microblaze.c |
| 35 | +++ b/gcc/config/microblaze/microblaze.c |
| 36 | @@ -2509,9 +2509,6 @@ print_operand (FILE * file, rtx op, int letter) |
| 37 | { |
| 38 | val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; |
| 39 | val[1] = INTVAL (op) & 0x00000000ffffffffLL; |
| 40 | - if (val[0] == 0 && val[1] < 0) |
| 41 | - val[0] = -1; |
| 42 | - |
| 43 | } |
| 44 | fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); |
| 45 | } |
| 46 | -- |
| 47 | 2.14.2 |
| 48 | |