+2016-04-13  Antoine Tremblay  <antoine.tremblay@ericsson.com>
+
+       * linux-aarch64-low.c (aarch64_emit_add): Switch x1 and x0.
+       (aarch64_emit_sub): Likewise.
+
 2016-04-12  Pedro Alves  <palves@redhat.com>
 
        * utils.c (prepare_to_throw_exception): Delete.
 
   uint32_t *p = buf;
 
   p += emit_pop (p, x1);
-  p += emit_add (p, x0, x0, register_operand (x1));
+  p += emit_add (p, x0, x1, register_operand (x0));
 
   emit_ops_insns (buf, p - buf);
 }
   uint32_t *p = buf;
 
   p += emit_pop (p, x1);
-  p += emit_sub (p, x0, x0, register_operand (x1));
+  p += emit_sub (p, x0, x1, register_operand (x0));
 
   emit_ops_insns (buf, p - buf);
 }
 
+2016-04-13  Antoine Tremblay  <antoine.tremblay@ericsson.com>
+
+       * gdb.trace/trace-condition.exp (foreach): Fix emit_sub testcase.
+
 2016-04-13  Markus Metzger  <markus.t.metzger@intel.com>
 
        * gdb.btrace/instruction_history.c (loop): Add declaration.
 
 
     # Test various operations to cover as many opcodes as possible.
     test_tracepoints $trace_command "21 + 21 == 42" 10
-    test_tracepoints $trace_command "21 - 21 == 0" 10
+    test_tracepoints $trace_command "42 - 21 == 21" 10
     test_tracepoints $trace_command "21 * 2 == 42" 10
     test_tracepoints $trace_command "21 << 1 == 42" 10
     test_tracepoints $trace_command "42 >> 1 == 21" 10