@@ -518,7 +518,7 @@ static inline void setgdt(void *gdt, int size)
518
518
gdt_ptr .limit = size ;
519
519
gdt_ptr .base = (uintptr_t )gdt ;
520
520
521
- asm volatile ("lgdt %0" ::"m" (gdt_ptr ):"memory" );
521
+ __asm__ volatile ("lgdt %0" ::"m" (gdt_ptr ):"memory" );
522
522
}
523
523
524
524
static inline void setidt (void * idt , int size )
@@ -527,15 +527,15 @@ static inline void setidt(void *idt, int size)
527
527
idt_ptr .limit = size ;
528
528
idt_ptr .base = (uintptr_t )idt ;
529
529
530
- asm volatile ("lidt %0" ::"m" (idt_ptr ):"memory" );
530
+ __asm__ volatile ("lidt %0" ::"m" (idt_ptr ):"memory" );
531
531
}
532
532
533
533
static inline uint64_t rdtscp (void )
534
534
{
535
535
uint32_t lo ;
536
536
uint32_t hi ;
537
537
538
- asm volatile ("rdtscp" : "=a" (lo ), "=d" (hi )::"ecx" , "memory" );
538
+ __asm__ volatile ("rdtscp" : "=a" (lo ), "=d" (hi )::"ecx" , "memory" );
539
539
return (uint64_t )lo | (((uint64_t )hi ) << 32 );
540
540
}
541
541
@@ -544,29 +544,29 @@ static inline uint64_t rdtsc(void)
544
544
uint32_t lo ;
545
545
uint32_t hi ;
546
546
547
- asm volatile ("rdtsc" : "=a" (lo ), "=d" (hi )::"memory" );
547
+ __asm__ volatile ("rdtsc" : "=a" (lo ), "=d" (hi )::"memory" );
548
548
return (uint64_t )lo | (((uint64_t )hi ) << 32 );
549
549
}
550
550
551
551
static inline void set_pcid (uint64_t pcid )
552
552
{
553
- if (pcid < 4095 )
554
- {
555
- asm volatile ("mov %%cr3, %%rbx; andq $-4096, %%rbx; or %0, "
556
- "%%rbx; mov %%rbx, %%cr3;"
557
- ::"g" (pcid ):"memory" , "rbx" , "rax" );
558
- }
553
+ if (pcid < 4095 )
554
+ {
555
+ __asm__ volatile ("mov %%cr3, %%rbx; andq $-4096, %%rbx; or %0, "
556
+ "%%rbx; mov %%rbx, %%cr3;"
557
+ ::"g" (pcid ):"memory" , "rbx" , "rax" );
558
+ }
559
559
}
560
560
561
561
static inline void set_cr3 (uint64_t cr3 )
562
562
{
563
- asm volatile ("mov %0, %%cr3" : "=rm" (cr3 ) : : "memory" );
563
+ __asm__ volatile ("mov %0, %%cr3" : "=rm" (cr3 ) : : "memory" );
564
564
}
565
565
566
566
static inline uint64_t get_cr3 (void )
567
567
{
568
568
uint64_t cr3 ;
569
- asm volatile ("mov %%cr3, %0" : "=rm" (cr3 ) : : "memory" );
569
+ __asm__ volatile ("mov %%cr3, %0" : "=rm" (cr3 ) : : "memory" );
570
570
return cr3 ;
571
571
}
572
572
@@ -582,54 +582,54 @@ static inline unsigned long read_msr(unsigned int msr)
582
582
uint32_t low ;
583
583
uint32_t high ;
584
584
585
- asm volatile ("rdmsr" : "=a" (low ), "=d" (high ) : "c" (msr ));
585
+ __asm__ volatile ("rdmsr" : "=a" (low ), "=d" (high ) : "c" (msr ));
586
586
return low | ((unsigned long )high << 32 );
587
587
}
588
588
589
589
static inline void write_msr (unsigned int msr , unsigned long val )
590
590
{
591
- asm volatile ("wrmsr"
592
- : /* no output */
593
- : "c" (msr ), "a" (val ), "d" (val >> 32 )
594
- : "memory" );
591
+ __asm__ volatile ("wrmsr"
592
+ : /* no output */
593
+ : "c" (msr ), "a" (val ), "d" (val >> 32 )
594
+ : "memory" );
595
595
}
596
596
597
597
static inline uint64_t read_fsbase (void )
598
598
{
599
- uint64_t val ;
600
- asm volatile ("rdfsbase %0"
601
- : "=r" (val )
602
- : /* no output */
603
- : "memory" );
599
+ uint64_t val ;
600
+ __asm__ volatile ("rdfsbase %0"
601
+ : "=r" (val )
602
+ : /* no output */
603
+ : "memory" );
604
604
605
- return val ;
605
+ return val ;
606
606
}
607
607
608
608
static inline void write_fsbase (unsigned long val )
609
609
{
610
- asm volatile ("wrfsbase %0"
611
- : /* no output */
612
- : "r" (val )
613
- : "memory" );
610
+ __asm__ volatile ("wrfsbase %0"
611
+ : /* no output */
612
+ : "r" (val )
613
+ : "memory" );
614
614
}
615
615
616
616
static inline uint64_t read_gsbase (void )
617
617
{
618
- uint64_t val ;
619
- asm volatile ("rdgsbase %0"
620
- : "=r" (val )
621
- : /* no output */
622
- : "memory" );
618
+ uint64_t val ;
619
+ __asm__ volatile ("rdgsbase %0"
620
+ : "=r" (val )
621
+ : /* no output */
622
+ : "memory" );
623
623
624
- return val ;
624
+ return val ;
625
625
}
626
626
627
627
static inline void write_gsbase (unsigned long val )
628
628
{
629
- asm volatile ("wrgsbase %0"
630
- : /* no output */
631
- : "r" (val )
632
- : "memory" );
629
+ __asm__ volatile ("wrgsbase %0"
630
+ : /* no output */
631
+ : "r" (val )
632
+ : "memory" );
633
633
}
634
634
635
635
/* Return stack pointer */
@@ -638,7 +638,7 @@ static inline uint64_t up_getsp(void)
638
638
{
639
639
uint64_t regval ;
640
640
641
- asm volatile (
641
+ __asm__ volatile (
642
642
"\tmovq %%rsp, %0\n"
643
643
: "=rm" (regval )
644
644
:
@@ -652,7 +652,7 @@ static inline uint32_t up_getds(void)
652
652
{
653
653
uint32_t regval ;
654
654
655
- asm volatile (
655
+ __asm__ volatile (
656
656
"\tmov %%ds, %0\n"
657
657
: "=rm" (regval )
658
658
:
@@ -664,7 +664,7 @@ static inline uint32_t up_getcs(void)
664
664
{
665
665
uint32_t regval ;
666
666
667
- asm volatile (
667
+ __asm__ volatile (
668
668
"\tmov %%cs, %0\n"
669
669
: "=rm" (regval )
670
670
:
@@ -676,7 +676,7 @@ static inline uint32_t up_getss(void)
676
676
{
677
677
uint32_t regval ;
678
678
679
- asm volatile (
679
+ __asm__ volatile (
680
680
"\tmov %%ss, %0\n"
681
681
: "=rm" (regval )
682
682
:
@@ -688,7 +688,7 @@ static inline uint32_t up_getes(void)
688
688
{
689
689
uint32_t regval ;
690
690
691
- asm volatile (
691
+ __asm__ volatile (
692
692
"\tmov %%es, %0\n"
693
693
: "=rm" (regval )
694
694
:
@@ -700,7 +700,7 @@ static inline uint32_t up_getfs(void)
700
700
{
701
701
uint32_t regval ;
702
702
703
- asm volatile (
703
+ __asm__ volatile (
704
704
"\tmov %%fs, %0\n"
705
705
: "=rm" (regval )
706
706
:
@@ -712,7 +712,7 @@ static inline uint32_t up_getgs(void)
712
712
{
713
713
uint32_t regval ;
714
714
715
- asm volatile (
715
+ __asm__ volatile (
716
716
"\tmov %%gs, %0\n"
717
717
: "=rm" (regval )
718
718
:
@@ -735,7 +735,7 @@ static inline irqstate_t irqflags()
735
735
{
736
736
irqstate_t flags ;
737
737
738
- asm volatile (
738
+ __asm__ volatile (
739
739
"\tpushfq\n"
740
740
"\tpopq %0\n"
741
741
: "=rm" (flags )
@@ -763,14 +763,14 @@ static inline bool up_irq_enabled(irqstate_t flags)
763
763
764
764
static inline void up_irq_disable (void )
765
765
{
766
- asm volatile ("cli" : : :"memory" );
766
+ __asm__ volatile ("cli" : : :"memory" );
767
767
}
768
768
769
769
/* Enable interrupts unconditionally */
770
770
771
771
static inline void up_irq_enable (void )
772
772
{
773
- asm volatile ("sti" : : :"memory" );
773
+ __asm__ volatile ("sti" : : :"memory" );
774
774
}
775
775
776
776
/* Disable interrupts, but return previous interrupt state */
0 commit comments