This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 5/5] Altera Nios II: hexadecimal numbers in options
- From: Chung-Lin Tang <cltang at codesourcery dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Cc: Sandra Loosemore <sandra at codesourcery dot com>
- Date: Thu, 18 Apr 2013 21:49:54 +0800
- Subject: [PATCH 5/5] Altera Nios II: hexadecimal numbers in options
Altera has defined an FPU instruction set on top of the custom
instruction space provided in Nios II, but without specifying the exact
binary opcode mapping within the [0,255] space; that mapping is
specified by the user, through compiler options or target pragmas.
For ease of use in specifying the code on the command line, we are
proposing the attached patch to allow, for example '-mcustom-fadds=255'
to be written as '-mcustom-fadds=0xff'
2013-04-18 Chung-Lin Tang <cltang@codesourcery.com>
* opts-common.c (integral_argument): Add support for hexadecimal
command option integer arguments. Update comments.
Index: gcc/opts-common.c
===================================================================
--- gcc/opts-common.c (revision 407083)
+++ gcc/opts-common.c (revision 409063)
@@ -147,7 +147,7 @@
return match_wrong_lang;
}
-/* If ARG is a non-negative integer made up solely of digits, return its
+/* If ARG is a non-negative decimal or hexadecimal integer, return its
value, otherwise return -1. */
int
@@ -161,6 +161,15 @@
if (*p == '\0')
return atoi (arg);
+ /* It wasn't a decimal number - try hexadecimal. */
+ if (arg[0]=='0' && (arg[1]=='x' || arg[1]=='X'))
+ {
+ char *endp;
+ int val = strtol (arg, &endp, 16);
+ if (*endp == '\0')
+ return val;
+ }
+
return -1;
}