Re: [PATCH kvm-unit-tests] x86: fix build (macro R interpreted as raw string)

2015-03-18 Thread Marcelo Tosatti
On Fri, Mar 13, 2015 at 05:48:04PM +0100, Radim Krčmář wrote:
 GCC 5.0.0 enables raw strings by default and they have higher priority
 than macros, thus R[...] is interpreted incorrectly:
 
   lib/x86/isr.c:112:30: error: invalid character ')' in raw string delimiter
   lib/x86/isr.c:112:8: error: stray ‘R’ in program
   lib/x86/isr.c:112:26: error: expected ‘:’ or ‘)’ before string constant
   orl $0x200, (%%Rsp)\n\t
 
 Fix it by putting a space between macro R and a string literal.
 (We already do that somewhere.)
 
 Signed-off-by: Radim Krčmář rkrc...@redhat.com

Applied, thanks.

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH kvm-unit-tests] x86: fix build (macro R interpreted as raw string)

2015-03-13 Thread Radim Krčmář
GCC 5.0.0 enables raw strings by default and they have higher priority
than macros, thus R[...] is interpreted incorrectly:

  lib/x86/isr.c:112:30: error: invalid character ')' in raw string delimiter
  lib/x86/isr.c:112:8: error: stray ‘R’ in program
  lib/x86/isr.c:112:26: error: expected ‘:’ or ‘)’ before string constant
  orl $0x200, (%%Rsp)\n\t

Fix it by putting a space between macro R and a string literal.
(We already do that somewhere.)

Signed-off-by: Radim Krčmář rkrc...@redhat.com
---
 I think it would be better to replace
   [...]R ax [...]
 with
   [...] ASM_AX [...]

 lib/x86/desc.c | 16 
 lib/x86/isr.c  |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/lib/x86/desc.c b/lib/x86/desc.c
index 7fbe77455430..32377780c86b 100644
--- a/lib/x86/desc.c
+++ b/lib/x86/desc.c
@@ -114,22 +114,22 @@ asm (.pushsection .text \n\t
  push %r15; push %r14; push %r13; push %r12 \n\t
  push %r11; push %r10; push %r9; push %r8 \n\t
 #endif
- push %Rdi; push %Rsi; push %Rbp; sub $S, %Rsp \n\t
- push %Rbx; push %Rdx; push %Rcx; push %Rax \n\t
+ push %R di; push %R si; push %R bp; sub $S, %R sp \n\t
+ push %R bx; push %R dx; push %R cx; push %R ax \n\t
 #ifdef __x86_64__
- mov %Rsp, %Rdi \n\t
+ mov %R sp, %R di \n\t
 #else
- mov %Rsp, %Rax \n\t
+ mov %R sp, %R ax \n\t
 #endif
  call do_handle_exception \n\t
- pop %Rax; pop %Rcx; pop %Rdx; pop %Rbx \n\t
- add $S, %Rsp; pop %Rbp; pop %Rsi; pop %Rdi \n\t
+ pop %R ax; pop %R cx; pop %R dx; pop %R bx \n\t
+ add $S, %R sp; pop %R bp; pop %R si; pop %R di \n\t
 #ifdef __x86_64__
  pop %r8; pop %r9; pop %r10; pop %r11 \n\t
  pop %r12; pop %r13; pop %r14; pop %r15 \n\t
 #endif
- add $S, %Rsp \n\t
- add $S, %Rsp \n\t
+ add $S, %R sp \n\t
+ add $S, %R sp \n\t
  iretW \n\t
  .popsection);
 
diff --git a/lib/x86/isr.c b/lib/x86/isr.c
index 833564ad5862..9b1d5054801e 100644
--- a/lib/x86/isr.c
+++ b/lib/x86/isr.c
@@ -109,7 +109,7 @@ void handle_external_interrupt(int vector)
 push %[sp]\n\t
 #endif
 pushf\n\t
-orl $0x200, (%%Rsp)\n\t
+orl $0x200, (%%R sp)\n\t
 push $%c[cs]\n\t
 call *%[entry]\n\t
 :
-- 
2.3.2

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html