summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/transitions/librm.S
diff options
context:
space:
mode:
authorMichael Brown2006-05-13 13:11:55 +0200
committerMichael Brown2006-05-13 13:11:55 +0200
commitf7b963da5141578c3769a89d0fa55b0155822e86 (patch)
tree8678c1229a5c532ea023f059dcaa227f04249247 /src/arch/i386/transitions/librm.S
parent(Redoing check-in lost by SourceForge's failure.) (diff)
downloadipxe-f7b963da5141578c3769a89d0fa55b0155822e86.tar.gz
ipxe-f7b963da5141578c3769a89d0fa55b0155822e86.tar.xz
ipxe-f7b963da5141578c3769a89d0fa55b0155822e86.zip
(Redoing check-in lost by SourceForge's failure.)
Use .text16.data section with "aw" attributes, to avoid section type conflicts when placing both code and data into .text16. Add __from_{text16,data16}.
Diffstat (limited to 'src/arch/i386/transitions/librm.S')
-rw-r--r--src/arch/i386/transitions/librm.S8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/arch/i386/transitions/librm.S b/src/arch/i386/transitions/librm.S
index daa2e12d..3dca53ab 100644
--- a/src/arch/i386/transitions/librm.S
+++ b/src/arch/i386/transitions/librm.S
@@ -19,7 +19,9 @@
#define SIZEOF_I386_ALL_REGS ( SIZEOF_REAL_MODE_REGS + SIZEOF_I386_FLAGS )
.arch i386
- .section ".text16", "awx", @progbits
+ .section ".text16", "ax", @progbits
+ .section ".text16.data", "aw", @progbits
+ .section ".data16", "aw", @progbits
/****************************************************************************
* Global descriptor table
@@ -45,7 +47,7 @@
#else
#define RM_LIMIT_16_19__AVL__SIZE__GRANULARITY 0x00
#endif
- .section ".data16", "aw", @progbits
+ .section ".data16"
.align 16
gdt:
gdt_limit: .word gdt_length - 1
@@ -308,7 +310,7 @@ p2r_jump_target:
p2r_jump_vector:
.word p2r_jump_target
rm_cs: .word 0
- .section ".text16"
+ .section ".text16.data"
rm_ds: .word 0
/****************************************************************************