]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gas/
authorYufeng Zhang <yufeng.zhang@arm.com>
Mon, 13 May 2013 22:50:01 +0000 (22:50 +0000)
committerYufeng Zhang <yufeng.zhang@arm.com>
Mon, 13 May 2013 22:50:01 +0000 (22:50 +0000)
Backport from mainline:

2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
* config/tc-aarch64.c (parse_sys_reg): Allow the full range of CRn
for system registers.

gas/testsuite/

Backport from mainline:

2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/illegal.l: Delete the error message for
msr S3_1_C13_C15_1,x7.
* gas/aarch64/sysreg.s: Add new tests.
* gas/aarch64/sysreg.d: Update.

gas/ChangeLog
gas/config/tc-aarch64.c
gas/testsuite/ChangeLog
gas/testsuite/gas/aarch64/illegal.l
gas/testsuite/gas/aarch64/sysreg.d
gas/testsuite/gas/aarch64/sysreg.s

index 821acc980c50394f27ac21d8e48974bdb578e014..3d0979289ea48d22b758c89380493dd84b0b995a 100644 (file)
@@ -1,3 +1,11 @@
+2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+
+       Backport from mainline:
+
+       2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
+       * config/tc-aarch64.c (parse_sys_reg): Allow the full range of CRn
+       for system registers.
+
 2013-03-05  Yufeng Zhang  <yufeng.zhang@arm.com>
 
        * config/tc-aarch64.c (aarch64_imm_float_p): Rename 'e' to 'pattern';
index 162c8654bf2f832f303c7d176ecd0c3026b62da4..db28c71f813f611365642a2d279c1f73dffedfa0 100644 (file)
@@ -3243,10 +3243,14 @@ parse_sys_reg (char **str, struct hash_control *sys_regs, int imple_defined_p)
          unsigned int op0, op1, cn, cm, op2;
          if (sscanf (buf, "s%u_%u_c%u_c%u_%u", &op0, &op1, &cn, &cm, &op2) != 5)
            return PARSE_FAIL;
-         /* Register access is encoded as follows:
+         /* The architecture specifies the encoding space for implementation
+            defined registers as:
             op0  op1  CRn   CRm   op2
-            11   xxx  1x11  xxxx  xxx.  */
-         if (op0 != 3 || op1 > 7 || (cn | 0x4) != 0xf || cm > 15 || op2 > 7)
+            11   xxx  1x11  xxxx  xxx
+            For convenience GAS accepts a wider encoding space, as follows:
+            op0  op1  CRn   CRm   op2
+            11   xxx  xxxx  xxxx  xxx  */
+         if (op0 != 3 || op1 > 7 || cn > 15 || cm > 15 || op2 > 7)
            return PARSE_FAIL;
          value = (op0 << 14) | (op1 << 11) | (cn << 7) | (cm << 3) | op2;
        }
index d1ebc3bf95d1f1de2fa1f36afbeb309ac9f3a2a8..8ee06c8e9447878ce4a605fecf436d733a25bca8 100644 (file)
@@ -1,3 +1,13 @@
+2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+
+       Backport from mainline:
+
+       2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
+       * gas/aarch64/illegal.l: Delete the error message for
+       msr S3_1_C13_C15_1,x7.
+       * gas/aarch64/sysreg.s: Add new tests.
+       * gas/aarch64/sysreg.d: Update.
+
 2013-03-08  Christian Groessler  <chris@groessler.org>
 
        Backport from mainline:
index e17a1dea0142422ff5e5fa35ab52928fe80e071f..f7e4074f9826319a439e66fd781081e6f77429ca 100644 (file)
 [^:]*:496: Error: .*`str x1,page_table_count'
 [^:]*:498: Error: .*`prfm PLDL3KEEP,\[x9,x15,sxtx#2\]'
 [^:]*:500: Error: .*`mrs x5,S1_0_C13_C8_0'
-[^:]*:501: Error: .*`msr S3_1_C13_C15_1,x7'
 [^:]*:502: Error: .*`msr S3_1_C11_C15_-1,x7'
 [^:]*:503: Error: .*`msr S3_1_11_15_1,x7'
 [^:]*:506: Error: .*`movi w1,#15'
index b83b270684c34a23cd08a1b44d80c1fabe7727d9..c7cf00efe2b7364cced83912f7d742341fa03765 100644 (file)
@@ -23,3 +23,6 @@ Disassembly of section \.text:
   3c:  d5380260        mrs     x0, id_isar3_el1
   40:  d5380280        mrs     x0, id_isar4_el1
   44:  d53802a0        mrs     x0, id_isar5_el1
+  48:  d538cc00        mrs     x0, s3_0_c12_c12_0
+  4c:  d5384600        mrs     x0, s3_0_c4_c6_0
+  50:  d5184600        msr     s3_0_c4_c6_0, x0
index e6f770e7f6ddf631993374e69f48ff28ea79a8aa..328759446f3d27e062961c8b0a12151a48767e3e 100644 (file)
@@ -22,3 +22,7 @@
        mrs x0, id_isar3_el1
        mrs x0, id_isar4_el1
        mrs x0, id_isar5_el1
+
+       mrs x0, s3_0_c12_c12_0
+       mrs x0, s3_0_c4_c6_0
+       msr s3_0_c4_c6_0, x0