@@ -699,20 +699,10 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
699
699
700
700
fn prologue ( generated_asm : & mut String , arch : InlineAsmArch ) {
701
701
match arch {
702
- InlineAsmArch :: X86 => {
703
- generated_asm. push_str ( " push ebp\n " ) ;
704
- generated_asm. push_str ( " mov ebp,[esp+8]\n " ) ;
705
- }
706
702
InlineAsmArch :: X86_64 => {
707
703
generated_asm. push_str ( " push rbp\n " ) ;
708
704
generated_asm. push_str ( " mov rbp,rdi\n " ) ;
709
705
}
710
- InlineAsmArch :: RiscV32 => {
711
- generated_asm. push_str ( " addi sp, sp, -8\n " ) ;
712
- generated_asm. push_str ( " sw ra, 4(sp)\n " ) ;
713
- generated_asm. push_str ( " sw s0, 0(sp)\n " ) ;
714
- generated_asm. push_str ( " mv s0, a0\n " ) ;
715
- }
716
706
InlineAsmArch :: RiscV64 => {
717
707
generated_asm. push_str ( " addi sp, sp, -16\n " ) ;
718
708
generated_asm. push_str ( " sd ra, 8(sp)\n " ) ;
@@ -725,20 +715,10 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
725
715
726
716
fn epilogue ( generated_asm : & mut String , arch : InlineAsmArch ) {
727
717
match arch {
728
- InlineAsmArch :: X86 => {
729
- generated_asm. push_str ( " pop ebp\n " ) ;
730
- generated_asm. push_str ( " ret\n " ) ;
731
- }
732
718
InlineAsmArch :: X86_64 => {
733
719
generated_asm. push_str ( " pop rbp\n " ) ;
734
720
generated_asm. push_str ( " ret\n " ) ;
735
721
}
736
- InlineAsmArch :: RiscV32 => {
737
- generated_asm. push_str ( " lw s0, 0(sp)\n " ) ;
738
- generated_asm. push_str ( " lw ra, 4(sp)\n " ) ;
739
- generated_asm. push_str ( " addi sp, sp, 8\n " ) ;
740
- generated_asm. push_str ( " ret\n " ) ;
741
- }
742
722
InlineAsmArch :: RiscV64 => {
743
723
generated_asm. push_str ( " ld s0, 0(sp)\n " ) ;
744
724
generated_asm. push_str ( " ld ra, 8(sp)\n " ) ;
@@ -751,10 +731,10 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
751
731
752
732
fn epilogue_noreturn ( generated_asm : & mut String , arch : InlineAsmArch ) {
753
733
match arch {
754
- InlineAsmArch :: X86 | InlineAsmArch :: X86_64 => {
734
+ InlineAsmArch :: X86_64 => {
755
735
generated_asm. push_str ( " ud2\n " ) ;
756
736
}
757
- InlineAsmArch :: RiscV32 | InlineAsmArch :: RiscV64 => {
737
+ InlineAsmArch :: RiscV64 => {
758
738
generated_asm. push_str ( " ebreak\n " ) ;
759
739
}
760
740
_ => unimplemented ! ( "epilogue_noreturn for {:?}" , arch) ,
@@ -768,21 +748,11 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
768
748
offset : Size ,
769
749
) {
770
750
match arch {
771
- InlineAsmArch :: X86 => {
772
- write ! ( generated_asm, " mov [ebp+0x{:x}], " , offset. bytes( ) ) . unwrap ( ) ;
773
- reg. emit ( generated_asm, InlineAsmArch :: X86 , None ) . unwrap ( ) ;
774
- generated_asm. push ( '\n' ) ;
775
- }
776
751
InlineAsmArch :: X86_64 => {
777
752
write ! ( generated_asm, " mov [rbp+0x{:x}], " , offset. bytes( ) ) . unwrap ( ) ;
778
753
reg. emit ( generated_asm, InlineAsmArch :: X86_64 , None ) . unwrap ( ) ;
779
754
generated_asm. push ( '\n' ) ;
780
755
}
781
- InlineAsmArch :: RiscV32 => {
782
- generated_asm. push_str ( " sw " ) ;
783
- reg. emit ( generated_asm, InlineAsmArch :: RiscV32 , None ) . unwrap ( ) ;
784
- writeln ! ( generated_asm, ", 0x{:x}(s0)" , offset. bytes( ) ) . unwrap ( ) ;
785
- }
786
756
InlineAsmArch :: RiscV64 => {
787
757
generated_asm. push_str ( " sd " ) ;
788
758
reg. emit ( generated_asm, InlineAsmArch :: RiscV64 , None ) . unwrap ( ) ;
@@ -799,21 +769,11 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
799
769
offset : Size ,
800
770
) {
801
771
match arch {
802
- InlineAsmArch :: X86 => {
803
- generated_asm. push_str ( " mov " ) ;
804
- reg. emit ( generated_asm, InlineAsmArch :: X86 , None ) . unwrap ( ) ;
805
- writeln ! ( generated_asm, ", [ebp+0x{:x}]" , offset. bytes( ) ) . unwrap ( ) ;
806
- }
807
772
InlineAsmArch :: X86_64 => {
808
773
generated_asm. push_str ( " mov " ) ;
809
774
reg. emit ( generated_asm, InlineAsmArch :: X86_64 , None ) . unwrap ( ) ;
810
775
writeln ! ( generated_asm, ", [rbp+0x{:x}]" , offset. bytes( ) ) . unwrap ( ) ;
811
776
}
812
- InlineAsmArch :: RiscV32 => {
813
- generated_asm. push_str ( " lw " ) ;
814
- reg. emit ( generated_asm, InlineAsmArch :: RiscV32 , None ) . unwrap ( ) ;
815
- writeln ! ( generated_asm, ", 0x{:x}(s0)" , offset. bytes( ) ) . unwrap ( ) ;
816
- }
817
777
InlineAsmArch :: RiscV64 => {
818
778
generated_asm. push_str ( " ld " ) ;
819
779
reg. emit ( generated_asm, InlineAsmArch :: RiscV64 , None ) . unwrap ( ) ;
0 commit comments